Deckhouse Platform (DP) запускает виртуальные машины (ВМ) в том же кластере, что и контейнерные нагрузки, и управляет ими декларативно, через ресурсы Kubernetes. Машины работают на тех же узлах, в тех же сетях и хранилищах, что и остальные нагрузки, поэтому администратор настраивает их привычными средствами DP.

DP позволяет:

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

Установка и настройка

Виртуализация предъявляет к узлам собственные требования: аппаратная поддержка виртуализации, одинаковая версия ядра, хранилище под диски и образы, отдельные подсети для машин. Они перечислены в разделе «Дополнительные требования для виртуализации», а порядок включения и размещение компонентов по узлам — в разделе «Установка виртуализации».

Параметры, которые задаются в ресурсе ModuleConfig, описаны в справочнике настроек модуля, а особенности обновления компонентов — в разделе «Обновление виртуализации».

В качестве гостевых DP поддерживает операционные системы на архитектурах x86 и x86-64. Для работы в режиме паравиртуализации в гостевой системе устанавливают драйверы VirtIO. Машины с Linux удобнее готовить из образов с поддержкой cloud-init, а машины с Windows — с файлом ответов autounattend.

Хранение образов и дисков

Образы и диски машин занимают место в кластере, и их хранение настраивает администратор.

Загруженные образы DP держит в собственном хранилище DVCR. Его размер, класс хранения и расписание очистки от неактуальных данных описаны в разделе «Хранилище образов виртуальных машин». Классы хранения, из которых проекты создают диски и образы, перечислены в разделе «Хранилища для дисков и образов виртуальных машин».

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

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

Класс определяет, какой процессор увидит гостевая система, на каких узлах запустится машина и какие сочетания ядер и памяти ей доступны. Владелец проекта выбирает класс из подготовленных администратором, поэтому именно классами DP ограничивает параметры машин в кластере.

Устройство ресурса VirtualMachineClass и назначение класса по умолчанию описаны в разделе «Классы виртуальных машин». Дальше каждой группе настроек отведён свой раздел: «Виртуальный процессор виртуальных машин», «Размещение виртуальных машин по узлам» и «Политика сайзинга виртуальных машин». Отдельно вынесена «Переподписка на CPU для виртуальных машин» — доля физического ядра, которую машина получает гарантированно.

Проброс устройств

Машине можно отдать устройство узла: USB-устройство, GPU или PCI-устройство. У каждого типа свои требования к узлу и свой порядок подготовки, поэтому им отведены отдельные разделы.

Эксплуатация кластера с виртуальными машинами

Работающие машины затрагивают и другие области настройки DP:

Как виртуализация устроена внутри, описано в разделе «Подсистема Virtualization», полный список ресурсов и их параметров — в справочнике. Владельцу проекта адресован раздел «Виртуальные машины».

Дополнительные ресурсы