Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля cloud-provider-dynamix в конфигурации Deckhouse. Если control plane кластера размещен в облаке, cloud-провайдер использует структуру DynamixClusterConfiguration для настройки.
DynamixClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Базис.DynamiX.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
d8 system 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Обязательный параметр Количество узлов. 
 
- строкаnodeNetworkCIDRIP 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Обязательный параметр Публичный ключ для доступа на узлы.