Доступно с ограничениями в редакциях:  CE

Доступно без ограничений в редакциях:  SE+, EE

Общедоступная версия. Готово к использованию в production-средах.

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

Для управления ресурсами кластера используется утилита командной строки d8.

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

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

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

  • Создание кластеров DKP.

Если вы планируете использовать virtualization в production-среде, рекомендуется использовать кластер, развёрнутый на физических (bare-metal) серверах. Допускается в целях тестирования использовать модуль в кластере, развёрнутом на виртуальных машинах, но при этом на них должна быть включена вложенная виртуализация (nested virtualization).

Архитектура

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

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

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

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

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

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

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