Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля cloud-provider-dynamix в конфигурации Deckhouse. Если control plane кластера размещен в облаке, cloud-провайдер использует структуру DynamixClusterConfiguration для настройки.

DynamixClusterConfiguration

Version: deckhouse.io/v1

Описывает конфигурацию облачного кластера в Базис.DynamiX.

Используется облачным провайдером, если управляющий слой (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: 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
      объект

      Обязательный параметр

      Частичное содержимое полей DynamixInstanceClass.

      • 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
    строка

    Обязательный параметр

    Публичный ключ для доступа на узлы.