Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля
cloud-provider-zvirtв конфигурации Deckhouse. Иначе, если control plane кластера размещен в облаке, cloud-провайдер использует структуру ZvirtClusterConfiguration для настройки.
ZvirtClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Zvirt.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
d8 system edit provider-cluster-configuration
После изменения параметров узлов необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.
Пример:
apiVersion: deckhouse.io/v1
kind: ZvirtClusterConfiguration
layout: Standard
clusterID: b46372e7-0d52-40c7-9bbf-fda31e187088
masterNodeGroup:
replicas: 1
instanceClass:
numCPUs: 4
memory: 8192
template: debian-bookworm
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
storageDomainID: c4bf82a5-b803-40c3-9f6c-b9398378f424
nodeGroups:
- name: worker
replicas: 1
instanceClass:
numCPUs: 4
memory: 8192
template: debian-bookworm
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
provider:
server: "<SERVER>"
username: "<USERNAME>"
password: "<PASSWORD>"
insecure: true
- строкаapiVersion
Обязательный параметр
Допустимые значения:
deckhouse.io/v1 - строкаclusterID
Обязательный параметр
ID кластера с общими доменами хранения и ЦП одного типа для создания виртуальны машин.
Шаблон:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Пример:
clusterID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86 - строкаkind
Обязательный параметр
Допустимые значения:
ZvirtClusterConfiguration - строкаlayout
Обязательный параметр
Название схемы размещения.
Подробнее о возможных схемах размещения провайдера.
- объектmasterNodeGroup
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Чтобы изменения вступили в силу, после изменения параметров секции
masterNodeGroupвыполните командуdhctl converge.- объектmasterNodeGroup.instanceClass
Обязательный параметр
Частичное содержимое полей ZvirtInstanceClass.
- целочисленныйmasterNodeGroup.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
По умолчанию:
10Пример:
etcdDiskSizeGb: 10 - целочисленныйmasterNodeGroup.instanceClass.memory
Обязательный параметр
Память в MiB для выделения виртуальным машинам.
Допустимые значения:
1 <= XПример:
memory: 8192 - целочисленныйmasterNodeGroup.instanceClass.numCPUs
Обязательный параметр
Количество vCPU, выделяемых виртуальным машинам.
Допустимые значения:
1 <= XПример:
numCPUs: 2 - целочисленныйmasterNodeGroup.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in zVirt VirtualMachines.
По умолчанию:
50Пример:
rootDiskSizeGb: 50 - строкаmasterNodeGroup.instanceClass.storageDomainID
Обязательный параметр
ID домена хранения.
Шаблон:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Пример:
storageDomainID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86 - строкаmasterNodeGroup.instanceClass.template
Обязательный параметр
Имя шаблона, который будет использован при заказе виртуальных машин.
Пример:
template: debian-bookworm - строкаmasterNodeGroup.instanceClass.vnicProfileID
Обязательный параметр
ID профиля vNIC.
Шаблон:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Пример:
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- целочисленныйmasterNodeGroup.replicas
Обязательный параметр
Количество создаваемых master-узлов. Для обеспечения кворума важно, чтобы оно было нечетным.
Допустимые значения:
1 <= X
- массив объектовnodeGroups
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- целочисленныйnodeGroups.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
По умолчанию:
10Пример:
etcdDiskSizeGb: 10 - целочисленныйnodeGroups.instanceClass.memory
Обязательный параметр
Память в MiB для выделения виртуальным машинам.
Допустимые значения:
1 <= XПример:
memory: 8192 - целочисленныйnodeGroups.instanceClass.numCPUs
Обязательный параметр
Количество vCPU, выделяемых виртуальным машинам.
Допустимые значения:
1 <= XПример:
numCPUs: 2 - целочисленныйnodeGroups.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in zVirt VirtualMachines.
По умолчанию:
50Пример:
rootDiskSizeGb: 50 - строкаnodeGroups.instanceClass.storageDomainID
ID домена хранения.
Шаблон:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Пример:
storageDomainID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86 - строкаnodeGroups.instanceClass.template
Обязательный параметр
Имя шаблона, который будет использован при заказе виртуальных машин.
Пример:
template: debian-bookworm - строкаnodeGroups.instanceClass.vnicProfileID
Обязательный параметр
ID профиля vNIC.
Шаблон:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Пример:
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- строка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
Обязательный параметр
Количество узлов.
- объектprovider
Обязательный параметр
Параметры для подключения к Zvirt.
- строкаprovider.caBundle
CA сертификат закодированный base64.
По умолчанию:
- булевыйprovider.insecure
Установите значение
true, если Zvirt имеет самоподписанный сертификат.По умолчанию:
false - строкаprovider.password
Обязательный параметр
Пароль.
- строкаprovider.server
Обязательный параметр
Хост или IP-адрес zvirt сервера.
- строкаprovider.username
Обязательный параметр
Логин.
- строкаsshPublicKey
Обязательный параметр
Публичный ключ для доступа на узлы.