AzureClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Azure.
Используется cloud-провайдером если control plane кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
kubectl -n d8-system exec -ti deploy/deckhouse -- deckhouse-controller edit provider-cluster-configuration
Пример:
apiVersion: deckhouse.io/v1
kind: AzureClusterConfiguration
layout: Standard
sshPublicKey: "<SSH_PUBLIC_KEY>"
vNetCIDR: 10.0.0.0/16
subnetCIDR: 10.0.0.0/24
masterNodeGroup:
replicas: 1
instanceClass:
machineSize: Standard_D4ds_v4
urn: Canonical:UbuntuServer:18.04-LTS:18.04.202207120
enableExternalIP: false
provider:
subscriptionId: "<SUBSCRIPTION_ID>"
location: westeurope
clientId: "<CLIENT_ID>"
clientSecret: "<CLIENT_SECRET>"
tenantId: "<TENANT_ID>"
- apiVersionстрока
Обязательный параметр
Допустимые значения:
deckhouse.io/v1
,deckhouse.io/v1alpha1
- kindстрока
Обязательный параметр
Допустимые значения:
AzureClusterConfiguration
- layoutстрока
Обязательный параметр
Название схемы размещения.
Подробнее о возможных схемах размещения провайдера.
Допустимые значения:
Standard
- masterNodeGroup
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Внимание! После изменения параметров секции
masterNodeGroup
необходимо выполнить командуdhctl converge
, чтобы изменения вступили в силу.- masterNodeGroup.instanceClassобъект
Обязательный параметр
Частичное содержимое полей AzureInstanceClass.
- masterNodeGroup.instanceClass.acceleratedNetworkingбулевый
Accelerated Networking обеспечивает пропускную способность сети до 30 Гбит/с.
По умолчанию:
false
- объект
Список дополнительных тегов в формате
key: value
, которые будут назначены инстансам.Пример:
project: cms-production severity: critical
- masterNodeGroup.instanceClass.diskSizeGbцелочисленный
Размер root-диска. Значение указывается в
ГиБ
.Пример:
diskSizeGb: 40
- masterNodeGroup.instanceClass.diskTypeстрока
Тип создаваемых дисков (root-диска и диска для etcd).
Список доступных типов дисков можно посмотреть с помощью Azure CLI:
az vm list-skus -l westeurope --zone
Пример:
diskType: StandardSSD_LRS
- masterNodeGroup.instanceClass.enableExternalIPбулевый
Разрешение назначения внешнего IP-адреса для инстанса.
Параметр доступен только для layout
Standard
.По умолчанию:
false
Допустимые значения:
true
,false
- masterNodeGroup.instanceClass.etcdDiskSizeGbцелочисленный
Размер диска для etcd. Значение указывается в
ГиБ
.По умолчанию:
20
Пример:
etcdDiskSizeGb: 20
- masterNodeGroup.instanceClass.machineSizeстрока
Обязательный параметр
Тип заказываемых инстансов.
Узнать все доступные типы в регионе можно с помощью Azure CLI:
az vm list-sizes --location westeurope -o table
Пример:
machineSize: Standard_F4
- masterNodeGroup.instanceClass.urnстрока
Обязательный параметр
Образ виртуальной машины, который будет использоваться для инстанса.
Подробнее про образы виртуальных машин можно посмотреть в официальной документации.
Получить urn образа c помощью Azure CLI (столбец №4):
az vm image list --location westeurope --publisher Canonical --all --sku 20_04-lts -o table az vm image list --location westeurope --publisher OpenLogic --all --sku 7.5 -o table
По умолчанию: образ из
AzureCloudDiscoveryData
(образ из которого был создан master при развертывании кластера).Внимание! Сейчас поддерживается и тестируется только
Ubuntu 18.04
,Ubuntu 20.04
,Ubuntu 22.04
,Centos 7
,Centos 8
,Centos 9
,Debian 9
,Debian 10
,Debian 11
.
- masterNodeGroup.instanceClass.acceleratedNetworkingбулевый
- masterNodeGroup.replicasцелочисленный
Обязательный параметр
Количество создаваемых master-узлов. Важно иметь нечётное количество мастеров для обеспечения кворума.
Допустимые значения:
1 <= X
- masterNodeGroup.zonesмассив строк
Список зон, в которых допустимо создавать master-узлы.
Доступные зоны для выбранного типа инстанса можно посмотреть с помощью Azure CLI:
az vm list-skus -l westeurope -o table
По умолчанию:
[1,2,3]
- masterNodeGroup.instanceClassобъект
- nodeGroupsмассив объектов
Массив дополнительных NodeGroup для создания статичных узлов (например, для выделенных frontend-узлов или шлюзов).
- nodeGroups.instanceClassобъект
Обязательный параметр
Частичное содержимое полей AzureInstanceClass.
- nodeGroups.instanceClass.acceleratedNetworkingбулевый
Accelerated Networking обеспечивает пропускную способность сети до 30 Гбит/с.
По умолчанию:
false
- объект
Список дополнительных тегов в формате
key: value
, которые будут назначены инстансам.Пример:
project: cms-production severity: critical
- nodeGroups.instanceClass.diskSizeGbцелочисленный
Размер root-диска. Значение указывается в
ГиБ
.Пример:
diskSizeGb: 40
- nodeGroups.instanceClass.diskTypeстрока
Тип создаваемых дисков (root-диска и диска для etcd).
Список доступных типов дисков можно посмотреть с помощью Azure CLI:
az vm list-skus -l westeurope --zone
Пример:
diskType: StandardSSD_LRS
- nodeGroups.instanceClass.enableExternalIPбулевый
Разрешение назначения внешнего IP-адреса для инстанса.
Параметр доступен только для layout
Standard
.По умолчанию:
false
Допустимые значения:
true
,false
- nodeGroups.instanceClass.machineSizeстрока
Обязательный параметр
Тип заказываемых инстансов.
Узнать все доступные типы в регионе можно с помощью Azure CLI:
az vm list-sizes --location westeurope -o table
Пример:
machineSize: Standard_F4
- nodeGroups.instanceClass.urnстрока
Обязательный параметр
Образ виртуальной машины, который будет использоваться для инстанса.
Подробнее про образы виртуальных машин можно посмотреть в официальной документации.
Получить urn образа c помощью Azure CLI (столбец №4):
az vm image list --location westeurope --publisher Canonical --all --sku 20_04-lts -o table az vm image list --location westeurope --publisher OpenLogic --all --sku 7.5 -o table
По умолчанию: образ из
AzureCloudDiscoveryData
(образ из которого был создан master при развертывании кластера).Внимание! Сейчас поддерживается и тестируется только
Ubuntu 18.04
,Ubuntu 20.04
,Ubuntu 22.04
,Centos 7
,Centos 8
,Centos 9
,Debian 9
,Debian 10
,Debian 11
.
- nodeGroups.instanceClass.acceleratedNetworkingбулевый
- 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.nodeTemplate.taints.effectстрока
- nodeGroups.nodeTemplate.annotationsобъект
- nodeGroups.replicasцелочисленный
Обязательный параметр
Количество узлов.
- nodeGroups.zonesмассив строк
Список зон, в которых допустимо создавать узлы.
Доступные зоны для выбранного типа инстанса можно посмотреть с помощью Azure CLI:
az vm list-skus -l westeurope -o table
По умолчанию:
[1,2,3]
- nodeGroups.instanceClassобъект
- peeredVNetsмассив объектов
Массив VNet, с которыми будет объединена сеть кластера.
Service account должен иметь доступ ко всем перечисленным VNet. Если доступа нет, то пиринговое соединение необходимо настраивать вручную.
- peeredVNets.resourceGroupNameстрока
Обязательный параметр
Имя группы ресурсов, в которой находится VNet.
- peeredVNets.vnetNameстрока
Обязательный параметр
Имя VNet.
- peeredVNets.resourceGroupNameстрока
- providerобъект
Обязательный параметр
Параметры подключения к API Azure.
- provider.clientIdстрока
Обязательный параметр
Идентификатор клиента.
- provider.clientSecretстрока
Обязательный параметр
Secret клиента.
- provider.locationстрока
Обязательный параметр
Имя географического региона, в котором будут созданы все ресурсы. Получение списка доступных локаций через Azure CLI:
az account list-locations -o table
- provider.subscriptionIdстрока
Обязательный параметр
Идентификатор подписки.
- provider.tenantIdстрока
Обязательный параметр
Идентификатор tenant’а.
- provider.clientIdстрока
- serviceEndpointsмассив строк
Список Service Endpoints, ассоциированных с подсетью.
Service Endpoints для виртуальной сети позволяют прямо и безопасно подключаться к сервисам Azure по оптимизированному маршруту через магистральную сеть Azure. Они позволяют ограничить доступ к критически важным ресурсам сервисов Azure пределами отдельных виртуальных сетей. Через Service Endpoints приватные IP-адреса в виртуальной сети могут подключаться к эндпоинтам сервисов Azure, не используя публичный IP-адрес в виртуальной сети. Больше информации можно найти в официальной документации.
- Элемент массивастрока
Допустимые значения:
Microsoft.AzureActiveDirectory
,Microsoft.AzureCosmosDB
,Microsoft.ContainerRegistry
,Microsoft.EventHub
,Microsoft.KeyVault
,Microsoft.ServiceBus
,Microsoft.Sql
,Microsoft.Storage
,Microsoft.Storage.Global
,Microsoft.Web
- Элемент массивастрока
- sshAllowListмассив строк
Список CIDR, разрешенных для подключения к узлам по ssh.
По умолчанию,
*
. - sshPublicKeyстрока
Обязательный параметр
Публичный ключ для доступа на узлы под пользователем
azureuser
. - standardобъект
Настройки для схемы размещения
Standard
.- standard.natGatewayPublicIpCountцелочисленный
Количество IP-адресов для NAT Gateway (тарификация).
NAT Gateway не используется, если установлено
0
.По умолчанию:
0
- standard.natGatewayPublicIpCountцелочисленный
- subnetCIDRстрока
Обязательный параметр
Подсеть из адресного пространства
vNetCIDR
, в которой будут работать узлы кластера.Шаблон:
^(([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]))$
Пример:
subnetCIDR: 10.1.2.0/24
- объект
Словарь тегов, которые будут созданы на всех ресурсах, имеющих такую возможность.
Если поменять теги в рабочем кластере, то после применения изменений необходимо пересоздать все машины.
- vNetCIDRстрока
Обязательный параметр
Адресное пространство виртуальной сети в формате CIDR.
Шаблон:
^(([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]))$
Пример:
vNetCIDR: 10.0.0.0/16
- zonesмассив строк
Глобальное ограничение набора зон, с которыми работает данный cloud-provider.