Экспериментальная версия. Функциональность может сильно измениться. Совместимость с будущими версиями не гарантируется.
DVPClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Deckhouse Virtualization Platform (DVP).
Используется облачным провайдером, если управляющий слой (control plane) кластера размещён в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
kubectl -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller edit provider-cluster-configuration
Чтобы изменения вступили в силу, после изменения параметров узлов выполните команду
dhctl converge
.
Пример:
apiVersion: deckhouse.io/v1
kind: DVPClusterConfiguration
layout: Standard
sshPublicKey: "<SSH_PUBLIC_KEY>"
zones:
- zone-a
- zone-b
- zone-c
region: r1
masterNodeGroup:
replicas: 3
zones:
- zone-a
- zone-b
- zone-c
instanceClass:
virtualMachine:
cpu:
cores: 1
coreFraction: 100%
memory:
size: 4Gi
virtualMachineClassName: generic
ipAddresses:
- 10.66.30.100
- 10.66.30.101
- 10.66.30.102
additionalLabels:
additional-vm-label: label-value
additionalAnnotations:
additional-vm-annotation: annotation-value
tolerations:
- key: dedicated.deckhouse.io
operator: Equal
value: system
nodeSelector:
beta.kubernetes.io/os: linux
rootDisk:
size: 10Gi
storageClass: linstor-thin-r1
image:
kind: ClusterVirtualImage
name: ubuntu-2204
etcdDisk:
size: 10Gi
storageClass: linstor-thin-r1
nodeGroups:
- name: worker
zones:
- zone-a
- zone-b
- zone-c
replicas: 1
instanceClass:
virtualMachine:
cpu:
cores: 4
coreFraction: 100%
memory:
size: 8Gi
virtualMachineClassName: generic
rootDisk:
size: 10Gi
image:
kind: ClusterVirtualImage
name: ubuntu-2204
provider:
kubeconfigDataBase64: ZXhhbXBsZQo=
namespace: default
- apiVersion
Обязательный параметр
Допустимые значения:
deckhouse.io/v1
- kind
Обязательный параметр
Допустимые значения:
DVPClusterConfiguration
- layout
Обязательный параметр
Название схемы размещения.
Допустимые значения:
Standard
- masterNodeGroup
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Чтобы изменения вступили в силу, после изменения параметров секции
masterNodeGroup
выполните командуdhctl converge
.- masterNodeGroup.instanceClass
Обязательный параметр
Параметры виртуальной машины и ее дисков для созданного master-узла.
- masterNodeGroup.instanceClass.additionalLabels
Дополнительные метки.
Пример:
project: cms-production severity: critical
- masterNodeGroup.instanceClass.etcdDisk
Обязательный параметр
Указание настроек для диска данных etcd.
- masterNodeGroup.instanceClass.etcdDisk.size
Обязательный параметр
Размер диска etcd.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
size: 10Gi
- masterNodeGroup.instanceClass.etcdDisk.storageClass
Имя существующего StorageClass будет использоваться для создания диска данных etcd.
- masterNodeGroup.instanceClass.rootDisk
Обязательный параметр
Указывает настройки для корневого диска виртуальной машины.
- masterNodeGroup.instanceClass.rootDisk.image
Обязательный параметр
Параметры образа, который будет использоваться для создания корневого диска виртуальной машины.
- masterNodeGroup.instanceClass.rootDisk.image.kind
Обязательный параметр
Тип источника изображения.
Допустимые значения:
ClusterVirtualImage
,VirtualImage
- masterNodeGroup.instanceClass.rootDisk.image.name
Обязательный параметр
Имя образа, который будет использоваться для создания корневого диска.
Для установки требуются образы ОС Linux с предустановленным cloud-init.
- masterNodeGroup.instanceClass.rootDisk.size
Обязательный параметр
Размер корневого диска.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
size: 10Gi
- masterNodeGroup.instanceClass.rootDisk.storageClass
Имя существующего StorageClass будет использоваться для создания корневого диска виртуальной машины.
- masterNodeGroup.instanceClass.virtualMachine
Обязательный параметр
Настройки виртуальной машины для созданного master-узла.
- masterNodeGroup.instanceClass.virtualMachine.additionalAnnotations
Дополнительные аннотации для ресурса виртуальной машины.
Пример:
cluster-owner: user
- masterNodeGroup.instanceClass.virtualMachine.additionalLabels
Дополнительные метки для ресурса виртуальной машины.
Пример:
cluster-owner: user
- masterNodeGroup.instanceClass.virtualMachine.bootloader
Определяет загрузчик для виртуальной машины.
BIOS
— используется BIOS;EFI
— используется Unified Extensible Firmware (EFI/UEFI);EFIWithSecureBoot
— используется UEFI/EFI c поддержкой Secure Boot.
По умолчанию:
"EFI"
Допустимые значения:
BIOS
,EFI
,EFIWithSecureBoot
- masterNodeGroup.instanceClass.virtualMachine.cpu
Обязательный параметр
Настройки процессора для виртуальной машины.
- masterNodeGroup.instanceClass.virtualMachine.cpu.coreFraction
Процент гарантированной доли CPU, которая будет выделена для виртуальной машины.
По умолчанию:
"100%"
Допустимые значения:
5%
,10%
,25%
,50%
,100%
Пример:
coreFraction: 100%
- masterNodeGroup.instanceClass.virtualMachine.cpu.cores
Обязательный параметр
Количество ядер процессора для виртуальной машины.
Допустимые значения:
1 <= X
- masterNodeGroup.instanceClass.virtualMachine.ipAddresses
Статические IP-адреса, назначаемые сетевым интерфейсам виртуальных машин. Количество адресов должно соответствовать числу создаваемых реплик — каждый IP-адрес будет закреплён за конкретной репликой. Например, если задано 3 реплики и указаны IP-адреса: ip1, ip2, ip3, то ip1 будет назначен первой реплике, ip2 — второй, а ip3 — третьей.
Эти адреса должны принадлежать диапазону адресов, указанному в конфигурации модуля виртуализации в параметре
virtualMachineCIDRs
.- Элемент массива
Шаблон:
^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(Auto)$
- masterNodeGroup.instanceClass.virtualMachine.memory
Обязательный параметр
Определяет параметры памяти для виртуальной машины.
- masterNodeGroup.instanceClass.virtualMachine.memory.size
Обязательный параметр
Количество ресурсов памяти, разрешенных для виртуальной машины.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
size: 4Gi
- masterNodeGroup.instanceClass.virtualMachine.nodeSelector
Позволяет назначить виртуальную машину на указанные узлы DVP. Подробнее — как в параметре
spec.nodeSelector
подов в Kubernetes. - masterNodeGroup.instanceClass.virtualMachine.priorityClassName
Подробнее — как в параметре
spec.priorityClassName
подов в Kubernetes. - masterNodeGroup.instanceClass.virtualMachine.tolerations
Позволяет установить допуски для виртуальной машины для узла DVP. Подробнее — как в параметре
spec.tolerations
подов в Kubernetes;- masterNodeGroup.instanceClass.virtualMachine.tolerations.effect
- masterNodeGroup.instanceClass.virtualMachine.tolerations.key
- masterNodeGroup.instanceClass.virtualMachine.tolerations.operator
- masterNodeGroup.instanceClass.virtualMachine.tolerations.tolerationSeconds
- masterNodeGroup.instanceClass.virtualMachine.tolerations.value
- masterNodeGroup.instanceClass.virtualMachine.virtualMachineClassName
Обязательный параметр
Имя VirtualMachineClass.
Предназначен для централизованной конфигурации предпочтительных параметров виртуальных машин. Ресурс позволяет задавать инструкции CPU, политики конфигурации ресурсов CPU и памяти для виртуальных машин, а также устанавливать соотношения этих ресурсов.
- masterNodeGroup.replicas
Обязательный параметр
Количество создаваемых master-узлов.
Для обеспечения кворума важно, чтобы оно было нечетным.
Допустимые значения:
1 <= X
- masterNodeGroup.zones
Набор зон, в которых могут быть созданы узлы.
Чтобы использовать эту настройку, на узлах DVP должена быть установлена метка
topology.kubernetes.io/zone
. Подробнее о топологических метках.Чтобы установить требуемую метку для узла DVP, обратитесь к документации по NodeGroup.
- nodeGroups
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- nodeGroups.instanceClass
Обязательный параметр
Параметры виртуальной машины и диска для созданного статического узла.
- nodeGroups.instanceClass.rootDisk
Обязательный параметр
Указывает настройки для корневого диска виртуальной машины.
- nodeGroups.instanceClass.rootDisk.image
Обязательный параметр
Параметры образа, который будет использоваться для создания корневого диска виртуальной машины.
- nodeGroups.instanceClass.rootDisk.image.kind
Обязательный параметр
Тип источника изображения.
Допустимые значения:
ClusterVirtualImage
,VirtualImage
- nodeGroups.instanceClass.rootDisk.image.name
Обязательный параметр
Имя образа, который будет использоваться для создания корневого диска.
Для установки требуются образы ОС Linux с предустановленным cloud-init.
- nodeGroups.instanceClass.rootDisk.size
Обязательный параметр
Размер корневого диска.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
size: 10Gi
- nodeGroups.instanceClass.rootDisk.storageClass
Имя существующего StorageClass будет использоваться для создания корневого диска виртуальной машины.
- nodeGroups.instanceClass.virtualMachine
Обязательный параметр
Настройки виртуальной машины для созданного master-узла.
- nodeGroups.instanceClass.virtualMachine.additionalAnnotations
Дополнительные аннотации для ресурса виртуальной машины.
Пример:
cluster-owner: user
- nodeGroups.instanceClass.virtualMachine.additionalLabels
Дополнительные метки для ресурса виртуальной машины.
Пример:
cluster-owner: user
- nodeGroups.instanceClass.virtualMachine.bootloader
Определяет загрузчик для виртуальной машины.
BIOS
— используется BIOS;EFI
— используется Unified Extensible Firmware (EFI/UEFI);EFIWithSecureBoot
— используется UEFI/EFI c поддержкой Secure Boot.
По умолчанию:
"EFI"
Допустимые значения:
BIOS
,EFI
,EFIWithSecureBoot
- nodeGroups.instanceClass.virtualMachine.cpu
Обязательный параметр
Настройки процессора для виртуальной машины.
- nodeGroups.instanceClass.virtualMachine.cpu.coreFraction
Процент гарантированной доли CPU, которая будет выделена для виртуальной машины.
По умолчанию:
"100%"
Допустимые значения:
5%
,10%
,25%
,50%
,100%
Пример:
coreFraction: 100%
- nodeGroups.instanceClass.virtualMachine.cpu.cores
Обязательный параметр
Количество ядер процессора для виртуальной машины.
Допустимые значения:
1 <= X
- nodeGroups.instanceClass.virtualMachine.ipAddresses
Статические IP-адреса, назначаемые сетевым интерфейсам виртуальных машин. Количество адресов должно соответствовать числу создаваемых реплик — каждый IP-адрес будет закреплён за конкретной репликой. Например, если задано 3 реплики и указаны IP-адреса: ip1, ip2, ip3, то ip1 будет назначен первой реплике, ip2 — второй, а ip3 — третьей.
Эти адреса должны принадлежать диапазону адресов, указанному в конфигурации модуля виртуализации в параметре
virtualMachineCIDRs
.- Элемент массива
Шаблон:
^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(Auto)$
- nodeGroups.instanceClass.virtualMachine.memory
Обязательный параметр
Определяет параметры памяти для виртуальной машины.
- nodeGroups.instanceClass.virtualMachine.memory.size
Обязательный параметр
Количество ресурсов памяти, разрешенных для виртуальной машины.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
Пример:
size: 4Gi
- nodeGroups.instanceClass.virtualMachine.nodeSelector
Позволяет назначить виртуальную машину на указанные узлы DVP. Подробнее — как в параметре
spec.nodeSelector
подов в Kubernetes. - nodeGroups.instanceClass.virtualMachine.priorityClassName
Подробнее — как в параметре
spec.priorityClassName
подов в Kubernetes. - nodeGroups.instanceClass.virtualMachine.tolerations
Позволяет установить допуски для виртуальной машины для узла DVP. Подробнее — как в параметре
spec.tolerations
подов в Kubernetes;- nodeGroups.instanceClass.virtualMachine.tolerations.effect
- nodeGroups.instanceClass.virtualMachine.tolerations.key
- nodeGroups.instanceClass.virtualMachine.tolerations.operator
- nodeGroups.instanceClass.virtualMachine.tolerations.tolerationSeconds
- nodeGroups.instanceClass.virtualMachine.tolerations.value
- nodeGroups.instanceClass.virtualMachine.virtualMachineClassName
Обязательный параметр
Имя VirtualMachineClass.
Предназначен для централизованной конфигурации предпочтительных параметров виртуальных машин. Ресурс позволяет задавать инструкции CPU, политики конфигурации ресурсов CPU и памяти для виртуальных машин, а также устанавливать соотношения этих ресурсов.
- nodeGroups.name
Обязательный параметр
Имя NodeGroup, которое будет использоваться для генерации имен узлов.
- nodeGroups.nodeTemplate
Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узлов.
- nodeGroups.nodeTemplate.annotations
Аналогично стандартному полю
metadata.annotations
.Пример:
annotations: ai.fleet.com/discombobulate: "true"
- nodeGroups.nodeTemplate.labels
Список лейблов, которые будут прикреплены ко всем ресурсам кластера (если ресурсы это поддерживают).
Аналогично стандартному полю
metadata.labels
.Если вы меняете лейблы в рабочем кластере, после применения изменений пересоздайте все машины.
Пример:
labels: environment: production app: warp-drive-ai
- nodeGroups.nodeTemplate.taints
Аналогично полю
.spec.taints
из объекта Node.Доступны только поля
effect
,key
,values
.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- nodeGroups.nodeTemplate.taints.effect
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- nodeGroups.nodeTemplate.taints.key
- nodeGroups.nodeTemplate.taints.value
- nodeGroups.replicas
Обязательный параметр
Количество узлов.
- nodeGroups.zones
Набор зон, в которых могут быть созданы узлы.
Чтобы использовать эту настройку, на узлах DVP должна быть установлена метка
topology.kubernetes.io/zone
. Подробнее о топологических метках.Чтобы установить требуемую метку для узла DVP, обратитесь к документации по NodeGroup.
- provider
Обязательный параметр
Содержит настройки для подключения к API Deckhouse Kubernetes Platform.
- provider.kubeconfigDataBase64
Обязательный параметр
Kubeconfig для подключения к Deckhouse Kubernetes Platform API в кодировке Base64.
Шаблон:
^[A-Za-z0-9+/]+[=]{0,2}$
- provider.namespace
Обязательный параметр
Пространство имён, в котором будут созданы ресурсы кластера DKP.
Если не указано явно, будет использоваться пространство имён по умолчанию для kubeconfig.
- region
Название региона.
Чтобы использовать эту настройку, на узлах DVP должна быть установлена метка
topology.kubernetes.io/region
. Подробнее о топологических меткахЧтобы установить требуемую метку для узла DVP, следуйте документации по NodeGroup.
- sshPublicKey
Обязательный параметр
Публичный ключ для доступа на узлы.
- zones
Набор зон, в которых могут быть созданы узлы.
Чтобы использовать эту настройку, на узлах DVP должна быть установлена метка
topology.kubernetes.io/zone
. Подробнее о топологических метках.Чтобы установить требуемую метку для узла DVP, обратитесь к документации по NodeGroup.