Система управления виртуальными машинами с использованием стандартных сетевых политик и сервисов Kubernetes
Виртуализация в Deckhouse Kubernetes Platform

Единая инфраструктура для виртуальных машин и контейнеров
Создание виртуальных машин и образов и управление ими
Жизненным циклом виртуальных машин (ВМ) и их ресурсами можно управлять декларативно, как объектами Kubernetes, через стандартные манифесты

Автоматизация развёртывания ВМ и сервисов
Мы используем подход Infrastructure as Code — полное управление ВМ, сетями (включая VLAN и балансировщики) и дисками доступно через единый API с поддержкой Terraform и GitOps

Нативная работа ВМ и контейнеров в одном окружении
Виртуализация в Deckhouse Kubernetes Platform (DKP) строится на базе KubeVirt и обеспечивает работу ВМ и контейнеров в едином контуре без разделения инфраструктуры с общими стандартами сети, безопасности и управления

Балансировка нагрузки для ВМ и контейнеров
Входящий сетевой трафик распределяется автоматически между несколькими ВМ или контейнерами, что обеспечивает высокую доступность и отказоустойчивость

Гибкое управление и контроль использования ресурсов
Ресурсы управляются и контролируются через механизмы квот и лимитов, гарантирующих приоритетность нагрузок и максимальную эффективность использования инфраструктуры

Встроенный аудит и регистрация событий безопасности
Полный аудит всех операций с ВМ выполняется на основе готовой ролевой модели с детальной регистрацией событий безопасности. Также доступны гибкая настройка правил контроля и автоматическая отправка уведомлений о критических инцидентах

Как работает виртуализация в DKP
Виртуализация интегрирована в DKP на всех уровнях: к ВМ применяются политики Cilium, используется стандартная балансировка через Kubernetes Service, а все операции отражаются в общей системе мониторинга

Модуль виртуализации включает три компонента:
- Ядро на базе KubeVirt, использующее QEMU/KVM и libvirtd для запуска ВМ с аппаратной производительностью и стабильностью
- DVCR — специализированный реестр для хранения и кеширования образов ВМ
- Virtualization API — контроллер для управления виртуальными машинами как стандартными объектами Kubernetes
Все операции с виртуальными машинами выполняются декларативно через YAML‑манифесты:
- Создание ВМ, дисков и образов как стандартных Kubernetes‑объектов
- Использование шаблонов для быстрого развёртывания инфраструктуры
- Единая модель работы с сетью и хранилищем — ВМ используют те же PVC/PV и сетевые политики, что и контейнеры
Пользователи взаимодействуют с ВМ через единый безопасный контур платформы:
- Подключение к запущенным виртуальным машинам через SSH, VNC или веб‑консоль
- Сетевой трафик ВМ подчиняется тем же политикам безопасности, что и трафик контейнеров
- Поддержка живой миграции позволяет перемещать ВМ между узлами без остановки
Запуск модуля виртуализации в кластере
Веб-интерфейс DKP позволяет отслеживать состояние виртуальных машин, управлять ресурсами и распределять их, а также диагностировать сбои кластера
Возможности виртуализации в DKP
Виртуализация доступна как модуль, интегрированный в редакции Deckhouse Kubernetes Platform — Community Edition, Standard Edition+, Enterprise Edition, Certified Security Edition Pro*
| Редакции | |||||
|---|---|---|---|---|---|
| Community Edition | Standard Edition+ | Enterprise Edition | Certified Security Edition Lite | Certified Security Edition Pro* | |
| Интерфейсы управления | |||||
| Управление всеми ресурсами через API, CLI и веб-интерфейс | |||||
| Декларативное создание всех ресурсов (порядок неважен, система автоматически разрешает зависимости между объектами) | |||||
| Отображение состояния ресурса и связанных с ним проблем в его статусе в реальном времени | |||||
| GitOps и IaC | |||||
| Полноценная поддержка GitOps-подхода: хранение конфигурации ВМ, дисков и прочих ресурсов в Git | |||||
| Поддержка интеграции с Terraform для описания и автоматического создания инфраструктуры | |||||
| Поддержка интеграции для работы с Ansible | |||||
| Поддерживаемые окружения | |||||
| Запуск виртуальных машин с x86-64-совместимыми операционными системами | |||||
| Совместное использование ВМ и контейнеризованных приложений в одном кластере Kubernetes | |||||
| Поддержка вложенной виртуализации (nested virtualization) для тестовых и лабораторных сценариев | |||||
| Образы виртуальных машин | |||||
| Автоматическое скачивание, хранение и контроль доступности образов во встроенном реестре образов (DVCR) | |||||
| Автоматическая очистка неиспользуемых образов DVCR | |||||
| Уровни видимости образов: — Проектные образы (для отдельного пространства имен / проекта) — Кластерные образы (общие для всего кластера) | |||||
| Источники образов: — Загрузка образов из HTTP-источников — Загрузка из Docker — Загрузка из локальных файлов через CLI или веб-интерфейс — Возможность создания образов из существующих дисков или снимков дисков | |||||
| Поддерживаемые форматы: — Форматы образов: qcow2, vmdk, raw, iso, vdi, включая сжатые варианты (gz, xz) — Автоматическое определение формата образа при загрузке | |||||
| Диски виртуальных машин | |||||
| Автоматический выбор оптимальной конфигурации диска в зависимости от используемого класса хранения (storage class) | |||||
| Изменение класса хранения hotplug-дисков ВМ | |||||
| Создание и управление дисками: — Создание дисков из образов — Создание пустых дисков заданного размера — Загрузка из локальных файлов через CLI или веб-интерфейс — Автоматическое определение размера диска при создании из образа (по содержимому образа) | |||||
| Снимки и восстановление: — Создание консистентных снимков дисков — Восстановление дисков из ранее созданных снимков | |||||
| Экспорт дисков и снимков дисков для переноса или бэкапа (доступно при использовании дополнительного модуля storage-volume-data-manager) | |||||
| Конфигурирование классов ВМ | |||||
| Централизованное управление параметрами ВМ через классы виртуальных машин | |||||
| Настройка типа CPU для ВМ | |||||
| Автоматическое создание универсального CPU на основе общих инструкций выбранных узлов | |||||
| Политики сайзинга ресурсов (CPU / Память / гарантированная доля CPU) | |||||
| Гарантированная доля CPU по умолчанию на уровне класса ВМ | |||||
| Управление размещением ВМ по узлам | |||||
| Изменение количества vCPU работающей ВМ | |||||
| Изменение объёма памяти работающей ВМ | |||||
| Конфигурация ВМ | |||||
| Конфигурация ресурсов ВМ: — Настройка количества ядер (vCPU) — Задание гарантированной доли процессорного времени (аналог переподписки CPU) — Автоматическая конфигурация топологии CPU (расчёт сокетов и ядер) для лучшей совместимости с гостевыми ОС — Настройка объёма оперативной памяти | |||||
| ОС и кастомизация: — Выбор типа загрузчика: BIOS, EFI, EFI с Secure Boot — Поддержка паравиртуализации — Выбор оптимизированного профиля ОС (Windows / Generic) для автоматической настройки драйверов и параметров — Кастомизация ВМ при первом запуске с помощью cloud-init или Sysprep | |||||
| Подключаемые блочные устройства: — Подключение дисков к ВМ на лету (hotplug) — Увеличение размера диска без перезагрузки ВМ — Подключение образа к ВМ на лету (hotplug) — Подключение к ВМ до 16 блочных устройств: постоянные диски, hotplug-диски, образы | |||||
| Подключение USB-устройств к ВМ | |||||
| Живая миграция между системами хранения данных для работающих ВМ | |||||
| Миграция ВМ с hotplug-дисками локальных хранилищ | |||||
| Политики размещения и жизненный цикл | |||||
| Планирование и размещение: — Автоматическое планирование ВМ на узлах в зависимости от доступных ресурсов (CPU, память, диски) — Настройка правил размещения по отношению к узлам или другим ВМ (Affinity/AntiAffinity) — Поддержка размещения ВМ на заданных группах узлов — Перебалансировка ВМ в зависимости от загрузки узла (требуется модуль descheduler) | |||||
| Политики запуска: — Политики запуска ВМ — Политики автоматического применения изменений, которые требуют перезагрузки ВМ | |||||
| Настройка приоритета ВМ по отношению к другим нагрузкам в кластере | |||||
| Доступ и подключение к ВМ | |||||
| Подключение к ВМ через VNC | |||||
| Подключение через последовательный порт (serial console) | |||||
| Подключение к ВМ по произвольному порту напрямую через API-прокси | |||||
| Подключение по SSH напрямую через API, без необходимости прямого сетевого доступа до узлов | |||||
| Операции с ВМ | |||||
| Базовые операции управления ВМ: запуск, остановка, перезагрузка, миграция | |||||
| Автоматическая очистка (сборщик мусора) завершившихся и неуспешных подов ВМ | |||||
| Снимки и клоны ВМ | |||||
| Создание консистентных снимков ВМ | |||||
| Восстановление ВМ из снимка | |||||
| Создание новой ВМ на основе снимка | |||||
| Клонирование ВМ: создание клона из снимка ВМ | |||||
| Клонирование ВМ: создание клона из другой ВМ | |||||
| Сетевая конфигурация | |||||
| Автоматическое или статическое назначение IP-адреса для default-сети | |||||
| Резервирование IP-адреса default-сети для ВМ на всё время её существования | |||||
| Автоматическое создание MAC-адресов для дополнительных сетевых интерфейсов | |||||
| Подключение ВМ к дополнительным сетям: — Подключение дополнительных проектных или кластерных сетей для ВМ (при использовании модуля SDN) — Возможность подключения ВМ как к виртуальной сети (прямое подключение), так и к изолированным VLAN | |||||
| Запуск виртуальных машин без сети Main | |||||
| Доступ к ВМ через стандартные объекты Kubernetes: — ClusterIP — NodePort — LoadBalancer — Ingress — Headless Service | |||||
| Микросегментация доступа к ВМ с использованием сетевых политик | |||||
| Живая миграция | |||||
| Живая миграция ВМ между узлами без простоя сервиса (downtime 100ms) | |||||
| Таргетированная миграция виртуальных машин на выбранный узел | |||||
| Живая миграция ВМ с подключенными USB-устройствами | |||||
| Настраиваемая политика живой миграции для автоматического снижения нагрузки на ВМ при необходимости для успешного завершения миграции | |||||
| Возможность отменить миграцию ВМ в процессе выполнения | |||||
| Автоматическая миграция ВМ при: — Обновлениях узлов — Эвакуации узлов (drain, плановые работы) — Изменении параметров размещения ВМ | |||||
| Автоматическая балансировка нагрузки: — Миграция ВМ при перегрузке отдельных узлов — Выравнивание потребления CPU/памяти между узлами | |||||
| Мониторинг и диагностика | |||||
| Готовые дашборды для мониторинга: — Отдельных ВМ — Групп ВМ в рамках проектов/пространств имен — Информация о подах ВМ — C обзором состояния платформы виртуализации | |||||
| Подробные метрики ВМ | |||||
| Контроль плоскости управления: — Метрики компонентов плоскости управления — Готовые алерты для ключевых компонентов | |||||
| Безопасность | |||||
| Готовые наборы ролей (RBAC) для различных категорий пользователей | |||||
| Тонкая настройка прав доступа: — На создание и изменение ресурсов (ВМ, диски, образы) — На подключение к ВМ (консоль, SSH, VNC) — На операции по управлению состоянием ВМ (старт, стоп, миграция и прочее) | |||||
| Безопасность платформы: — Все основные компоненты используют distroless-образы — Регулярное устранение уязвимостей и обновление компонентов в составе модуля — Отсутствие внешних зависимостей — Полный контроль над цепочкой сборки и поставки | |||||
* Функциональные возможности редакции станут доступны после получения сертификата ФСТЭК России





