Если control plane кластера размещен на виртуальных машинах или bare-metal-серверах, cloud-провайдер использует настройки модуля
cloud-provider-vcdв конфигурации Deckhouse. Иначе, если control plane кластера размещен в облаке, cloud-провайдер использует структуру VCDClusterConfiguration для настройки.
VCDClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в VCD.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в запущенном кластере:
d8 p edit provider-cluster-configuration
После изменения параметров узлов необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.
Пример:
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: Org/Templates/ubuntu-focal-20.04
sizingPolicy: 16cpu32ram
storageProfile: ssd
provider:
server: "<SERVER>"
username: "<USERNAME>"
password: "<PASSWORD>"
insecure: true
- строкаapiVersion
Обязательный параметр
Допустимые значения:
deckhouse.io/v1 - объектbastion
Параметры конфигурации бастион-хоста, используемого для обеспечения административного доступа к узлам кластера.
- объектbastion.instanceClass.additionalMetadata
Пользовательские строковые пары ключ-значение, которые будут добавлены в раздел метаданных (Metadata) каждой виртуальной машины master-узлов. Это позволяет более эффективно организовывать и классифицировать виртуальные машины в вашей системе виртуализации.
Свойства из этого поля будут объединены с уже существующими метаданными, хранящимися в поле
metadataв корне спецификации. В случае совпадения ключей значения из этого поля имеют приоритет. - строкаbastion.instanceClass.mainNetworkIPAddress
IP-адрес бастион-хоста в
mainNetwork.По умолчанию DHCP-клиент включен.
Шаблон:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ - строкаbastion.instanceClass.placementPolicy
Политика размещения (PlacementPolicy), которая будет применяться к данному хосту.
Если политика размещения не указана, будет использована политика размещения по умолчанию для создания хостов.
Длина:
1..128 - целочисленныйbastion.instanceClass.rootDiskSizeGb
Размер root-диска. Значение указывается в гигабайтах.
По умолчанию:
50Допустимые значения:
0 <= XПример:
rootDiskSizeGb: 50 - строкаbastion.instanceClass.sizingPolicy
Обязательный параметр
Политика масштабирования (SizingPolicy), которая будет использоваться на данном хосте.
Если политика масштабирования не указана, будет использована политика масштабирования по умолчанию для создания хостов.
Длина:
1..128 - строкаbastion.instanceClass.storageProfile
Обязательный параметр
Профиль хранения данных (StorageProfile), который будет использоваться на данном хосте.
Длина:
1..128 - bastion.instanceClass.template
Обязательный параметр
Путь к шаблону OVA, который будет использоваться.
Путь состоит из имени организации (опционально), каталога и имени или идентификатора шаблона. Если используется общий каталог, имя организации указывать обязательно (оно может отличаться от значения
provider.organization).Если в нескольких каталогах с одинаковым названием есть шаблоны с одинаковыми именами, необходимо указать идентификатор шаблона.
Идентификатор шаблона можно найти в URL-адресе при открытии шаблона в пользовательском интерфейсе VCD. Например, если URL-адрес
https://vcd.example.com/tenant/MyOrg/libraries/catalogs/1032506a-4555-43e1-8589-77b0c0522c75/catalog-vapp-templates/5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7/general, то идентификатор шаблона будет5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7.Длина:
1..128
- булевыйcreateDefaultFirewallRules
Если включено, настраивает следующие правила брандмауэра по умолчанию для основной сети кластера (mainNetwork):
- Разрешает все исходящие соединения из mainNetwork.
- Разрешает все входящие ICMP-пакеты в mainNetwork.
- Разрешает все входящие TCP-соединения в mainNetwork на порт 22 (SSH).
- Разрешает все входящие TCP и UDP-соединения в mainNetwork для NodePorts в диапазоне 30000–32767.
Внимание! Использование этой опции совместно с Edge Gateway типа NSX-T подразумевает, что к одному Edge Gateway может быть привязан только один кластер, поскольку в этом случае все существующие правила брандмауэра будут перезаписаны.
По умолчанию:
false - объектedgeGateway
Свойства VMware Cloud Director Edge Gateway (принадлежащее Virtual Data Center).
- объектedgeGateway.NSX-V
Дополнительные параметры, необходимые, если
typeравно NSX-V.- строкаedgeGateway.NSX-V.externalNetworkName
Имя внешней сети для создания правила DNAT для мастер-узла. Внешняя сеть — это сеть, подключённая к Edge Gateway в разделе
Gateway Interfaceи имеющая внешний IP-адрес.Длина:
1..128 - строкаedgeGateway.NSX-V.externalNetworkType
Тип внешней сети для создания правила DNAT для мастер-узла (один из “org” или “ext”).
Допустимые значения:
org,ext
- строкаedgeGateway.externalIP
Обязательный параметр
IP-адрес, доступный из внешних сетей, через который входящие SSH-соединения перенаправляются на мастер-узел с использованием DNAT.
Шаблон:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ - целочисленныйedgeGateway.externalPort
Внешний порт, сопоставленный правилом DNAT для перенаправления входящих SSH соединений на мастер-узел.
По умолчанию:
22Допустимые значения:
1 <= X <= 65535Пример:
externalPort: 22 - строкаedgeGateway.name
Обязательный параметр
Имя VMware Cloud Director Edge Gateway.
Длина:
1..128 - строкаedgeGateway.type
Обязательный параметр
Тип платформы сетевой виртуализации, обеспечивающей работу VMware Cloud Director Edge Gateway (один из “NSX-V” или “NSX-T”). Тип платформы можно узнать у администратора.
Допустимые значения:
NSX-V,NSX-T
- строкаinternalNetworkCIDR
Адресация для внутренней сети узлов кластера.
Шаблон:
^(([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]))$ - целочисленныйinternalNetworkDHCPPoolStartAddress
Задает номер адреса в внутренней сети, с которого начинается пул DHCP-адресов. Адреса с номерами ниже этого значения не будут выдаваться автоматически по DHCP и доступны для ручного назначения. Если значение не указано, по умолчанию используется 30.
Например, в сети 192.168.100.128/27 значение 10 означает, что пул DHCP начнется с IP-адреса 192.168.100.138. Пул закончится на адресе, который непосредственно предшествует широковещательному (192.168.100.159), то есть на последнем пригодном для назначения адресе.
Допустимые значения:
2 <= X - массив строкinternalNetworkDNSServers
Список адресов рекурсивных DNS серверов.
- строкаЭлемент массива
Шаблон:
^(([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])$
- строкаkind
Обязательный параметр
Допустимые значения:
VCDClusterConfiguration - строкаlayout
Обязательный параметр
Способ размещения ресурсов в облаке.
Подробнее о возможных вариантах размещения.
- булевыйlegacyMode
Режим поддержки устаревших версий API VCD.
Если задано значение
true, будет использоваться версия API ниже37.2.Параметр имеет эффект только при установке кластера. В работающем кластере необходимость включения режима поддержки устаревших версий API определяется автоматически.
По умолчанию:
false - строкаmainNetwork
Обязательный параметр
Путь до сети, которая будет подключена к виртуальной машине как основная (шлюз по умолчанию).
Пример:
mainNetwork: internal - объектmasterNodeGroup
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Чтобы изменения вступили в силу, после изменения параметров секции
masterNodeGroupвыполните командуdhctl converge.- объектmasterNodeGroup.instanceClass
Обязательный параметр
Частичное содержимое полей VCDInstanceClass.
- объектmasterNodeGroup.instanceClass.additionalMetadata
Пользовательские строковые пары ключ-значение, которые будут добавлены в раздел метаданных (Metadata) каждой виртуальной машины master-узлов. Это позволяет более эффективно организовывать и классифицировать виртуальные машины в вашей системе виртуализации.
Свойства из этого поля будут объединены с уже существующими метаданными, хранящимися в поле
metadataв корне спецификации. В случае совпадения ключей значения из этого поля имеют приоритет. - целочисленный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-диска. Значение указывается в гигабайтах.
По умолчанию:
50Пример:
rootDiskSizeGb: 50 - строкаmasterNodeGroup.instanceClass.sizingPolicy
Обязательный параметр
SizingPolicy, которая будет использоваться на данном компьютере.
Если SizingPolicy не указана, для создания узлов будет использоваться SizingPolicy по умолчанию.
Пример:
sizingPolicy: 4Cpu8Memory - строкаmasterNodeGroup.instanceClass.storageProfile
Обязательный параметр
StorageProfile, который будет использоваться на данном компьютере.
Пример:
storageProfile: ssd - строкаmasterNodeGroup.instanceClass.template
Обязательный параметр
Путь к шаблону OVA, который будет использоваться.
Состоит из организации (опционально), каталога и названия или идентификатора шаблона. Если используется общий каталог, имя организации указывать обязательно (оно может отличаться от значения
provider.organization).Если в нескольких каталогах с одинаковым названием есть шаблоны с одинаковым именем, следует указать идентификатор шаблона.
Идентификатор шаблона можно найти в URL-адресе при открытии шаблона в пользовательском интерфейсе vCD. Например, если URL-адрес
https://vcd.example.com/tenant/MyOrg/libraries/catalogs/1032506a-4555-43e1-8589-77b0c0522c75/catalog-vapp-templates/5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7/general, то идентификатор шаблона будет5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7.Примеры:
template: Linux/ubuntu2204-cloud-ovatemplate: MyOrg/Linux/ubuntu2204-cloud-ovatemplate: Linux/5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7template: MyOrg/Linux/5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7
- целочисленныйmasterNodeGroup.replicas
Обязательный параметр
Количество создаваемых master-узлов. Для обеспечения кворума важно, чтобы оно было нечетным.
Допустимые значения:
1 <= X
- объектmetadata
Пользовательские метаданные, которые будут сохранены в объектах кластера, таких как виртуальные машины, диски и сеть. Это позволяет более эффективно организовывать и классифицировать ресурсы в вашей системе виртуализации.
Очистка полей
metadataиadditionalMetadataпри наличии в них ключей приведет к прекращению отслеживания всех метаданных, за исключением узлов типа CloudEphemeral. В таком случае удаление метаданных возможно только вручную.Внимание. Изменение метаданных приведет к пересозданию CloudEphemeral-узлов.
- массив объектовnodeGroups
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- объектnodeGroups.instanceClass.additionalMetadata
Пользовательские строковые пары ключ-значение, которые будут добавлены в раздел метаданных (Metadata) каждой виртуальной машины master-узлов. Это позволяет более эффективно организовывать и классифицировать виртуальные машины в вашей системе виртуализации.
Свойства из этого поля будут объединены с уже существующими метаданными, хранящимися в поле
metadataв корне спецификации. В случае совпадения ключей значения из этого поля имеют приоритет. - массив строк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-диска. Значение указывается в гигабайтах.
По умолчанию:
50Пример:
rootDiskSizeGb: 50 - строкаnodeGroups.instanceClass.sizingPolicy
Обязательный параметр
SizingPolicy, которая будет использоваться на данном компьютере.
Если SizingPolicy не указана, для создания узлов будет использоваться SizingPolicy по умолчанию.
Пример:
sizingPolicy: 4Cpu8Memory - строкаnodeGroups.instanceClass.storageProfile
Обязательный параметр
StorageProfile, который будет использоваться на данном компьютере.
Пример:
storageProfile: ssd - строкаnodeGroups.instanceClass.template
Обязательный параметр
Путь к шаблону OVA, который будет использоваться.
Состоит из организации (опционально), каталога и названия или идентификатора шаблона. Если используется общий каталог, имя организации указывать обязательно (оно может отличаться от значения
provider.organization).Если в нескольких каталогах с одинаковым названием есть шаблоны с одинаковым именем, следует указать идентификатор шаблона.
Идентификатор шаблона можно найти в URL-адресе при открытии шаблона в пользовательском интерфейсе vCD. Например, если URL-адрес
https://vcd.example.com/tenant/MyOrg/libraries/catalogs/1032506a-4555-43e1-8589-77b0c0522c75/catalog-vapp-templates/5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7/general, то идентификатор шаблона будет5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7.Примеры:
template: Linux/ubuntu2204-cloud-ovatemplate: MyOrg/Linux/ubuntu2204-cloud-ovatemplate: Linux/5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7template: MyOrg/Linux/5438c9f2-7e59-4eb3-b37c-cbd7f3e710c7
- строка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.apiToken
Токен для аутентификации.
Внимание! При использовании
apiTokenнеобходимо оставитьusernameиpasswordпустыми. - булевый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).