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

Deckhouse Virtualization Platform позволяет декларативно создавать, запускать и управлять виртуальными машинами и их ресурсами.

Сценарии использования

  • Запуск виртуальных машин с x86_64 совместимой ОС.

  • Запуска виртуальных машин и контейнеризованных приложений в одном окружении.

Если вы планируете использовать Deckhouse Virtualization Platform в production-среде, рекомендуется разворачивать его на физических серверах. Развертывание Deckhouse Virtualization Platform на виртуальных машинах также возможно, но в этом случае необходимо включить nested-виртуализацию.

Для работы виртуализации требуется кластер Deckhouse Kubernetes Platform. Пользователям редакции Enterprise Edition доступна возможность управления ресурсами через графический интерфейс (UI).

Для подключения к виртуальным машинам с использованием последовательного порта, VNC или по протоколу ssh используется утилита командной строки d8.

Архитектура

Платформа включает в себя следующие компоненты:

  • Ядро платформы (CORE), основанное на проекте KubeVirt и использующее QEMU/KVM + libvirtd для запуска виртуальных машин.
  • Deckhouse Virtualization Container Registry (DVCR) — репозиторий для хранения и кэширования образов виртуальных машин.
  • Virtualization-API (API) — контроллер, реализующий API пользователя для создания и управления ресурсами виртуальных машин.
  • Контроллер маршрутизации (ROUTER) - контроллер, управляющий маршрутами для обеспечения сетевой связности виртуальных машин.

Перечень контроллеров и операторов, разворачивающихся в неймспейсе d8-virtualization после включения модуля

Название Компонент Комментарий
cdi-operator-* CORE Компонент ядра виртуализации для управления дисками и образами.
cdi-apiserver-* CORE Компонент ядра виртуализации для управления дисками и образами.
cdi-deployment-* CORE Компонент ядра виртуализации для управления дисками и образами.
dvcr-* DVCR Реестр для хранения образов.
virt-api-* CORE Компонент ядра виртуализации для управления дисками и образами.
virt-controller-* CORE Компонент ядра виртуализации для управления дисками и образами.
virt-exportproxy-* CORE Компонент ядра виртуализации для управления дисками и образами.
virt-handler-* CORE Компонент ядра виртуализации для управления дисками и образами. Должен присутствовать на всех узлах кластера, где будут запускается ВМ.
virt-operator-* CORE Компонент ядра виртуализации для управления дисками и образами.
virtualization-api-* API API для создания и управления ресурсами модуля (образы, диски, ВМ, ..)
virtualization-controller-* API API для создания и управления ресурсами модуля (образы, диски, ВМ, ..)
vm-route-forge-* ROUTER Роутер, для настройки маршрутов до ВМ. Должен присутствовать на всех узлах кластера, где буду запускается ВМ.

API предоставляет возможности для декларативного создания, модификации и удаления следующих ресурсов:

  • образы виртуальных машин и загрузочные образы;
  • диски виртуальных машин;
  • классы виртуальных машин;
  • виртуальные машины;
  • операции над виртуальными машинами.

Ролевая модель

Для управления ресурсами предусмотрены следующие роли пользователей:

  • Пользователь (User)
  • Привилегированный пользователь (PrivilegedUser)
  • Редактор (Editor)
  • Администратор (Admin)
  • Редактор кластера (ClusterEditor)
  • Администратор кластера (ClusterAdmin)

Далее таблице представлены матрица доступа для данных ролей

Resource User PrivilegedUser Editor Admin ClusterEditor ClusterAdmin
virtualmachines R R CRUD CRUD CRUD CRUD
virtualdisks R R CRUD CRUD CRUD CRUD
virtualimages R R R CRUD CRUD CRUD
clustervirtualimages R R R R CRUD CRUD
virtualmachineblockdeviceattachments R R CRUD CRUD CRUD CRUD
virtualmachineoperations R CR CRUD CRUD CRUD CRUD
virtualmachineipaddresses R R CRUD CRUD CRUD CRUD
virtualmachineipaddressleases - - - R R CRUD
virtualmachineclasses R R R R CRUD CRUD

Команды доступные для операций с утилитой командной строки d8

d8 cli User PrivilegedUser Editor Admin ClusterEditor ClusterAdmin
d8 v console N Y Y Y Y Y
d8 v ssh / scp / port-forward N Y Y Y Y Y
d8 v vnc N Y Y Y Y Y

Перечень сокращений

Сокращение Операция Соответствующая операция Kubernetes
C создать create
R читать get,list,watch
U изменить patch, update
D удалить delete, deletecollection