Функциональность модуля может измениться, но основные возможности сохранятся. Совместимость с будущими версиями обеспечивается, но может потребовать дополнительных действий по миграции.

Программное обеспечение Deckhouse Virtualization Platform предназначено для запуска и управления виртуальными машинами и их ресурсами на платформе Deckhouse Kubernetes Platform.

Deckhouse Virtualization Platform позволяет:

  • создавать и управлять виртуальными машинами и их ресурсами;
  • запускать приложения, которые нельзя или сложно запустить в контейнере;
  • запускать виртуальные машины и контейнеризованные приложения в одном окружении;
  • интегрироваться с экосистемой Deckhouse, позволяя использовать ее возможности для виртуальных машин.

Основные функциональные характеристики Deckhouse Virtualization Platform включают:

Название функции Результат
Управление образами виртуальных машин: создание новых виртуальных машин на основе предварительно настроенных и сконфигурированных образов, загрузка образов как с внешних, так и с локальных источников. Управление и хранение образов виртуальных машин из разных источников для быстрого создания преднастроенных и сконфигурированных ВМ.
Управление дисками виртуальных машин: возможность создания как пустого диска, так и из заранее созданного образа. Изменение их размера без необходимости остановки виртуальной машины. Создание новых дисков из образов и шаблонов, изменение их конфигурации, хранение и управление.
Виртуальные машины: создание виртуальной машины и управления ее жизненным циклом. Управление конфигурацией и параметрами виртуальных машин. При переводе узла кластера в режим обслуживания, работающая виртуальная машина будет автоматически перемещена на другой подходящий узел с помощью механизма «живой миграции». Создание и управление жизненным циклом, параметрами и политиками запуска виртуальных машин.
Классы виртуальных машин: конфигурация типа процессоров виртуальных машин, управление размещением, настройка ресурсов для более оптимального планирования и размещения виртуальных машин по узлам платформы. Оптимизация процессов планирования размещения виртуальных машин в инфраструктуре.
Операции над виртуальными машинами: позволяет выполнять следующие действия над виртуальными машинами: Запуск (Start), Остановка (Stop), Рестарт (Restart). Декларативное управление изменением состояния виртуальных машин.

Образы виртуальных машин и загрузочные образы

Образы представляют собой неизменяемые ресурсы, которые позволяют создавать новые виртуальные машины на основе предварительно настроенных и сконфигурированных образов. В зависимости от типа, образы могут быть в форматах raw, qcow2, vmdk и других для образов дисков виртуальных машин, а также в формате iso для установочных образов.

Для загрузки образов можно использовать внешние источники, такие как HTTP-сервер, container registry, а также загрузить локальный файл через командную строку (cli).

Образы, которые могут быть подключены к виртуальной машине:

  • ISO-образы — как cdrom-устройства и всегда доступны только в режиме для чтения (ReadOnly).
  • Образы дисков виртуальных машин — как эфемерные диски, после рестарта машины все записанные на них данные будут утеряны

Образы бывают двух типов:

  • кластерные ClusterVirtualImage, которые доступны для всех пользователей платформы;
  • ограниченные по пространству имен VirtualImage, которые доступны только для пользователей namespace, в котором они созданы.

Все образы хранятся в DVCR.

Диски виртуальных машин

Создание дисков для виртуальных машины обеспечивает ресурс VirtualDisk. Диски используются в виртуальной машине в качестве основного носителя для хранения данных. Диски могут быть созданы из внешних источников, ранее созданных образов (VirtualImage или ClusterVirtualImage) или могут быть созданы пустыми.

Одной из ключевых особенностей дисков является возможность изменения их размера без необходимости остановки виртуальной машины. Важно отметить, что поддерживается только возможность увеличения размера диска, в то время как уменьшение недоступно.

Более того, диски могут быть подключены к виртуальным машинам во время их работы, что обеспечивает гибкость в управлении хранилищем данных. Для этой задачи используется ресурс VirtualMachineBlockDeviceAttachment.

Для хранения дисков используется хранилище, предоставляемое платформой (PVC).

Классы виртуальных машин

Класс виртуальной машины предназначен для:

  • конфигурации типа процессоров виртуальных машин;
  • управления размещением виртуальных машин по узлам платформы;
  • настройки ресурсов виртуальной машины (процессор, память) более оптимального планирования и размещения виртуальных машин по узлам платформы.

Класс виртуальной машины настраивается с использованием ресурса VirtualMachineClass.

Виртуальные машины

Ресурс VirtualMachine отвечает за создание виртуальной машины и управления её жизненным циклом. Через конфигурацию VirtualMachine можно определить параметры виртуальной машины, такие как количество процессоров, объем оперативной памяти, подключаемые образы и диски, а также правила размещения на узлах платформы, аналогично тому, как это делается для подов.

Политика запуска виртуальной машины определяет ее состояние. Она может быть всегда включена, выключена или управление состоянием может осуществляться вручную.

При переводе узла кластера в режим обслуживания, работающая виртуальная машина будет автоматически перемещена на другой подходящий узел с помощью механизма «живой миграции».

Виртуальная машина запускается внутри пода, что позволяет управлять виртуальными машинами как обычными ресурсами Kubernetes и использовать все возможности платформы, включая балансировщики нагрузки, сетевые политики, средства автоматизации и т. д.

Операции над виртуальными машинами

Ресурс VirtualMachineOperations предназначен для декларативного изменения состояния виртуальной машины. Ресурс позволяет выполнять следующие действия над виртуальными машинами: Запуск (Start), Остановка (Stop), Рестарт (Restart).