Deckhouse Kubernetes Platform интегрируется с инфраструктурой VMware vSphere и использует ресурсы VsphereInstanceClass для описания характеристик виртуальных машин, создаваемых в составе кластера Kubernetes.
Основные возможности:
- Заказ и удаление виртуальных машин через vCenter API;
- Размещение узлов кластера в разных кластерах (
zones) и датацентрах (region); - Использование шаблонов виртуальных машин с
cloud-init; - Поддержка сетей с DHCP, статической адресацией и дополнительными интерфейсами;
- Работа с хранилищем: заказ root-дисков и PVC на базе Datastore или CNS-дисков;
- Поддержка механизмов балансировки входящего трафика:
- через внешние балансировщики;
- через MetalLB (в режиме BGP).
DKP поддерживает гибридную интеграцию с VMware vSphere. Подробнее о настройке можно узнать в разделе «Гибридный кластер с vSphere».
Управление ресурсами vSphere
Удаление CloudPermanent-узлов в vSphere
Узлы типа CloudPermanent создаются на основании конфигурации групп узлов, заданной в секции nodeGroups ресурса VsphereClusterConfiguration.
Параметр replicas определяет необходимое количество виртуальных машин в группе. После изменения конфигурации необходимо выполнить команду dhctl converge для запуска Terraform и актуализации состояния виртуальных машин в VMware vSphere в соответствии с указанным количеством реплик.
Чтобы уменьшить количество узлов в группе, уменьшите значение replicas и выполните dhctl converge.
Не удаляйте описание группы из секции nodeGroups, пока значение параметра replicas больше нуля.
Если удалить описание группы до уменьшения количества реплик до нуля, состояние Terraform может рассинхронизироваться с состоянием виртуальных машин и дисков в VMware vSphere. В результате последующее выполнение dhctl converge может завершиться ошибкой и потребовать ручного восстановления состояния.
Уменьшение количества узлов
Чтобы уменьшить количество узлов в группе CloudPermanent:
-
Откройте конфигурацию vSphere для редактирования:
d8 system edit provider-cluster-configuration -
В секции
nodeGroupsнайдите необходимую группу и уменьшите значение параметраreplicasдо требуемого количества узлов.Например, чтобы уменьшить количество узлов в группе
workerс трёх до двух, установитеreplicas: 2:nodeGroups: - name: worker replicas: 2 zones: - zone-a instanceClass: numCPUs: 4 memory: 8192 template: Templates/ubuntu-24.04 datastore: datastore-1 mainNetwork: network-1Сохраните изменения.
-
В установочном контейнере DKP примените изменённую конфигурацию:
dhctl converge \ --ssh-host <IP-АДРЕС_MASTER-УЗЛА> \ --ssh-user <ИМЯ_ПОЛЬЗОВАТЕЛЯ> \ --ssh-agent-private-keys /tmp/.ssh/<ИМЯ_ПРИВАТНОГО_SSH-КЛЮЧА>Используйте установочный контейнер той же редакции и версии, что и в кластере.
-
Дождитесь завершения
dhctl convergeи проверьте количество узлов в группе:d8 k get nodes -l node.deckhouse.io/group=<ИМЯ_ГРУППЫ>
Полное удаление группы узлов
Полное удаление группы CloudPermanent выполняется в два этапа. Сначала необходимо уменьшить количество реплик до нуля и дождаться удаления узлов и виртуальных машин. После этого можно удалить описание группы из конфигурации vSphere.
Чтобы полностью удалить группу CloudPermanent:
-
Откройте конфигурацию vSphere для редактирования:
d8 system edit provider-cluster-configuration -
В секции
nodeGroupsнайдите удаляемую группу и установите для неё значениеreplicas: 0. Не удаляйте описание группы на этом этапе. Например:nodeGroups: - name: worker replicas: 0 zones: - zone-a instanceClass: numCPUs: 4 memory: 8192 template: Templates/ubuntu-24.04 datastore: datastore-1 mainNetwork: network-1Сохраните изменения.
-
В установочном контейнере DKP примените изменённую конфигурацию:
dhctl converge \ --ssh-host <IP-АДРЕС_MASTER-УЗЛА> \ --ssh-user <ИМЯ_ПОЛЬЗОВАТЕЛЯ> \ --ssh-agent-private-keys /tmp/.ssh/<ИМЯ_ПРИВАТНОГО_SSH-КЛЮЧА> -
Дождитесь успешного завершения
dhctl convergeи убедитесь, что в группе не осталось узлов:d8 k get nodes -l node.deckhouse.io/group=<ИМЯ_ГРУППЫ>Команда не должна возвращать узлы удаляемой группы.
Также убедитесь с помощью vSphere Client, что связанные с группой виртуальные машины удалены.
-
Повторно откройте конфигурацию vSphere:
d8 system edit provider-cluster-configuration -
Удалите описание группы из секции
nodeGroupsи сохраните изменения. -
Повторно примените конфигурацию:
dhctl converge \ --ssh-host <IP-АДРЕС_MASTER-УЗЛА> \ --ssh-user <ИМЯ_ПОЛЬЗОВАТЕЛЯ> \ --ssh-agent-private-keys /tmp/.ssh/<ИМЯ_ПРИВАТНОГО_SSH-КЛЮЧА> -
Убедитесь, что объект NodeGroup удалён:
d8 k get nodegroup <ИМЯ_ГРУППЫ>Команда должна завершиться сообщением о том, что запрашиваемый ресурс не найден.