Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля cloud-provider-dynamix в конфигурации Deckhouse. Если control plane кластера размещен в облаке, cloud-провайдер использует структуру DynamixClusterConfiguration для настройки.
DynamixClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Базис.DynamiX.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
d8 p edit provider-cluster-configuration
После изменения параметров узлов необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.
Пример:
apiVersion: deckhouse.io/v1
kind: DynamixClusterConfiguration
layout: StandardWithInternalNetwork
sshPublicKey: ssh-rsa AAAA
location: dynamix
account: acc_user
nodeNetworkCIDR: 10.241.32.0/24
nameservers:
- 10.0.0.10
provider:
controllerUrl: "<controller url>"
oAuth2Url: "<oAuth2 url>"
appId: "<app id>"
appSecret: "<app secret>"
insecure: true
masterNodeGroup:
replicas: 1
instanceClass:
numCPUs: 6
memory: 16384
rootDiskSizeGb: 50
imageName: "<image name>"
storageEndpoint: "<storage endpoint>"
pool: "<pool>"
externalNetwork: "<external network>"
nodeGroups:
- name: worker
replicas: 1
instanceClass:
numCPUs: 6
memory: 16384
rootDiskSizeGb: 50
imageName: "<image name>"
externalNetwork: "<external network>"
- строкаaccount
Обязательный параметр
Имя аккаунта.
- строкаapiVersion
Обязательный параметр
Допустимые значения:
deckhouse.io/v1 - строкаkind
Обязательный параметр
Допустимые значения:
DynamixClusterConfiguration - строкаlayout
Обязательный параметр
Название схемы размещения. Подробнее о возможных схемах размещения провайдера.
- строкаlocation
Обязательный параметр
Имя места установки кластера.
- объектmasterNodeGroup
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Чтобы изменения вступили в силу, после изменения параметров секции
masterNodeGroupвыполните командуdhctl converge.- объектmasterNodeGroup.instanceClass
Обязательный параметр
Частичное содержимое полей DynamixInstanceClass.
- целочисленныйmasterNodeGroup.instanceClass.etcdDiskSizeGb
Размер диска для хранения данных etcd в GiB.
По умолчанию:
15Пример:
etcdDiskSizeGb: 15 - строкаmasterNodeGroup.instanceClass.externalNetwork
Обязательный параметр
Имя внешней сети.
Пример:
externalNetwork: extnet_vlan_1700 - строкаmasterNodeGroup.instanceClass.imageName
Обязательный параметр
Имя образа ОС, используемое для развертывания ВМ.
Пример:
imageName: '1' - целочисленныйmasterNodeGroup.instanceClass.memory
Обязательный параметр
Память в MiB для выделения виртуальным машинам.
Допустимые значения:
1 <= XПример:
memory: 8192 - целочисленныйmasterNodeGroup.instanceClass.numCPUs
Обязательный параметр
Количество vCPU, выделяемых виртуальным машинам.
Допустимые значения:
1 <= XПример:
numCPUs: 2 - строкаmasterNodeGroup.instanceClass.pool
Обязательный параметр
Имя пула хранения.
Пример:
pool: pool_a - целочисленныйmasterNodeGroup.instanceClass.rootDiskSizeGb
Размер корневого диска в GiB для использования в виртуальных машинах.
По умолчанию:
50Пример:
rootDiskSizeGb: 50 - строкаmasterNodeGroup.instanceClass.storageEndpoint
Обязательный параметр
Имя хранилища.
Пример:
storageEndpoint: SharedTatlin_G1_SEP
- целочисленныйmasterNodeGroup.replicas
Обязательный параметр
Количество создаваемых master-узлов. Для обеспечения кворума важно, чтобы оно было нечетным.
Допустимые значения:
1 <= X
- массив строкnameservers
Список IP-адресов DNS-серверов.
По умолчанию:
[] - массив объектовnodeGroups
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- целочисленныйnodeGroups.instanceClass.etcdDiskSizeGb
Размер диска для хранения данных etcd в GiB.
По умолчанию:
15Пример:
etcdDiskSizeGb: 15 - строкаnodeGroups.instanceClass.externalNetwork
Обязательный параметр
Имя внешней сети.
Пример:
externalNetwork: extnet_vlan_1700 - строкаnodeGroups.instanceClass.imageName
Обязательный параметр
Имя образа ОС, используемое для развертывания ВМ.
Пример:
imageName: '1' - целочисленныйnodeGroups.instanceClass.memory
Обязательный параметр
Память в MiB для выделения виртуальным машинам.
Допустимые значения:
1 <= XПример:
memory: 8192 - целочисленныйnodeGroups.instanceClass.numCPUs
Обязательный параметр
Количество vCPU, выделяемых виртуальным машинам.
Допустимые значения:
1 <= XПример:
numCPUs: 2 - строкаnodeGroups.instanceClass.pool
Имя пула хранения.
Пример:
pool: pool_a - целочисленныйnodeGroups.instanceClass.rootDiskSizeGb
Размер корневого диска в GiB для использования в виртуальных машинах.
По умолчанию:
50Пример:
rootDiskSizeGb: 50 - строкаnodeGroups.instanceClass.storageEndpoint
Имя хранилища.
Пример:
storageEndpoint: SharedTatlin_G1_SEP
- строка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
Обязательный параметр
Количество узлов.
- строкаnodeNetworkCIDR
IP CIDR, который будет назначен внутреннему сегменту этой ViNS.
- объектprovider
Обязательный параметр
Параметры для подключения к Базис.DynamiX.
- строкаprovider.appId
Обязательный параметр
ID приложения.
- строкаprovider.appSecret
Обязательный параметр
Секрет приложения.
- строкаprovider.controllerUrl
Обязательный параметр
URL-адрес конечной точки API Базис.DynamiX.
- булевыйprovider.insecure
Установите значение
true, если Базис.DynamiX имеет самоподписанный сертификат.По умолчанию:
false - строкаprovider.oAuth2Url
Обязательный параметр
URL-адрес конечной точки SSO Базис.DynamiX API.
- строкаsshPublicKey
Обязательный параметр
Публичный ключ для доступа на узлы.