Доступно только в Enterprise Edition.
Функциональность модуля может сильно измениться. Совместимость с будущими версиями не гарантируется

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

VCDClusterConfiguration

Version: deckhouse.io/v1

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

Используется поставщиком облачных услуг, если управляющий слой кластера размещен в облаке.

Выполните следующую команду, чтобы изменить конфигурацию в запущенном кластере:

kubectl -n d8-system exec -ti deploy/deckhouse -- deckhouse-controller edit provider-cluster-configuration

Пример:

apiVersion: deckhouse.io/v1
kind: VCDClusterConfiguration
sshPublicKey: "<SSH_PUBLIC_KEY>"
organization: My_Org
virtualDataCenter: My_Org
virtualApplicationName: Cloud
mainNetwork: internal
layout: Standard
internalNetworkCIDR: 172.16.2.0/24
masterNodeGroup:
  replicas: 1
  instanceClass:
    template: Templates/ubuntu-focal-20.04
    sizingPolicy: 4cpu8ram
    rootDiskSizeGb: 20
    etcdDiskSizeGb: 20
    storageProfile: nvme
nodeGroups:
- name: worker
  replicas: 1
  instanceClass:
    template: Templates/ubuntu-focal-20.04
    sizingPolicy: 16cpu32ram
    storageProfile: ssd
provider:
  server: "<SERVER>"
  username: "<USERNAME>"
  password: "<PASSWORD>"
  insecure: true
  • apiVersionстрока

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

    Допустимые значения: deckhouse.io/v1

  • internalNetworkCIDRстрока

    Адресация для внутренней сети узлов кластера.

    Адреса распределяются начиная с десятого адреса. Например, если у вас подсеть 192.168.199.0/24, адреса будут распределяться, начиная с 192.168.199.10.

    Шаблон: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$

  • kindстрока

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

    Допустимые значения: VCDClusterConfiguration

  • layoutстрока

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

    Способ размещения ресурсов в облаке.

    Подробнее о возможных вариантах размещения.

  • mainNetworkстрока

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

    Путь до сети, которая будет подключена к виртуальной машине как основная (шлюз по умолчанию).

    Пример:

    mainNetwork: internal
    
  • masterNodeGroupобъект

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

    Спецификация для описания NodeGroup master-узлов.

    Внимание! После изменения параметров секции masterNodeGroup необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.

    • masterNodeGroup.instanceClassобъект

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

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

      • masterNodeGroup.instanceClass.etcdDiskSizeGbцелочисленный

        Размер диска etcd. Значение указывается в гигабайтах.

        По умолчанию: 10

        Пример:

        etcdDiskSizeGb: 10
        
      • masterNodeGroup.instanceClass.mainNetworkIPAddressesмассив строк

        Список статических IP-адресов (с префиксом CIDR), последовательно распределенных по узлам в mainNetwork.

        По умолчанию DHCP-клиент включен.

        Пример:

        mainNetworkIPAddresses:
        - 10.1.14.20
        - 10.1.4.21
        
        • Элемент массивастрока

          IP-адрес с префиксом CIDR.

          Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

      • masterNodeGroup.instanceClass.placementPolicyстрока

        PlacementPolicy, которая будет использоваться на данном компьютере.

        Если PlacementPolicy не указана, для создания узлов будет использоваться PlacementPolicy по умолчанию.

        Пример:

        placementPolicy: Hypervisor1
        
      • masterNodeGroup.instanceClass.rootDiskSizeGbцелочисленный

        Размер root-диска. Значение указывается в гигабайтах.

        По умолчанию: 20

        Пример:

        rootDiskSizeGb: 20
        
      • masterNodeGroup.instanceClass.sizingPolicyстрока

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

        SizingPolicy, которая будет использоваться на данном компьютере.

        Если SizingPolicy не указана, для создания узлов будет использоваться SizingPolicy по умолчанию.

        Пример:

        sizingPolicy: 4Cpu8Memory
        
      • masterNodeGroup.instanceClass.storageProfileстрока

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

        StorageProfile, который будет использоваться на данном компьютере.

        Пример:

        storageProfile: ssd
        
      • masterNodeGroup.instanceClass.templateстрока

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

        Путь к шаблону OVA, который будет использоваться. Состоит из каталога и пути к шаблону.

        Пример:

        template: Linux/ubuntu2204-cloud-ova
        
    • masterNodeGroup.replicasцелочисленный

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

      Количество создаваемых master-узлов. Для обеспечения кворума важно, чтобы оно было нечетным.

      Допустимые значения: 1 <= X

  • nodeGroupsмассив объектов

    Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).

    • nodeGroups.instanceClassобъект

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

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

      • nodeGroups.instanceClass.mainNetworkIPAddressesмассив строк

        Список статических IP-адресов (с префиксом CIDR), последовательно распределенных по узлам в mainNetwork.

        По умолчанию DHCP-клиент включен.

        Пример:

        mainNetworkIPAddresses:
        - 10.1.14.20
        - 10.1.4.21
        
        • Элемент массивастрока

          IP-адрес с префиксом CIDR.

          Шаблон: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$

      • nodeGroups.instanceClass.placementPolicyстрока

        PlacementPolicy, которая будет использоваться на данном компьютере.

        Если PlacementPolicy не указана, для создания узлов будет использоваться PlacementPolicy по умолчанию.

        Пример:

        placementPolicy: Hypervisor1
        
      • nodeGroups.instanceClass.rootDiskSizeGbцелочисленный

        Размер root-диска. Значение указывается в гигабайтах.

        По умолчанию: 20

        Пример:

        rootDiskSizeGb: 20
        
      • nodeGroups.instanceClass.sizingPolicyстрока

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

        SizingPolicy, которая будет использоваться на данном компьютере.

        Если SizingPolicy не указана, для создания узлов будет использоваться SizingPolicy по умолчанию.

        Пример:

        sizingPolicy: 4Cpu8Memory
        
      • nodeGroups.instanceClass.storageProfileстрока

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

        StorageProfile, который будет использоваться на данном компьютере.

        Пример:

        storageProfile: ssd
        
      • nodeGroups.instanceClass.templateстрока

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

        Путь к шаблону OVA, который будет использоваться. Состоит из каталога и пути к шаблону.

        Пример:

        template: Linux/ubuntu2204-cloud-ova
        
    • 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целочисленный

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

      Количество узлов.

  • organizationстрока

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

    Имя VMware Cloud Director Organization.

  • providerобъект

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

    Параметры для подключения к VCD.

    • provider.insecureбулевый

      Устанавливается в true, VCD имеет self-signed-сертификат.

      По умолчанию: false

    • provider.passwordстрока

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

      Пароль пользователя.

    • provider.serverстрока

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

      Хост или IP-адрес VCD-сервера.

    • provider.usernameстрока

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

      Имя пользователя с полными правами на проект.

  • sshPublicKeyстрока

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

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

  • virtualApplicationNameстрока

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

    Имя VMware Cloud Director Virtual Application (принадлежащее Virtual Data Center).

    Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

  • virtualDataCenterстрока

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

    Имя VMware Cloud Director Virtual Data Center (принадлежащее Organization).