AzureClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Azure.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
d8 p edit provider-cluster-configuration
После изменения параметров узлов необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.
Пример:
apiVersion: deckhouse.io/v1
kind: AzureClusterConfiguration
layout: Standard
sshPublicKey: "<SSH_PUBLIC_KEY>"
vNetCIDR: 10.0.0.0/16
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
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— образ, из которого был создан мастер-узел при развертывании кластера.Список поддерживаемых Deckhouse ОС и их версий можно найти в документации (учитывайте используемую версию Deckhouse).
- целочисленныйmasterNodeGroup.replicas
Обязательный параметр
Количество создаваемых master-узлов.
Для обеспечения кворума важно, чтобы оно было нечетным.
Допустимые значения:
1 <= X - массив строкmasterNodeGroup.zones
Список зон, в которых допустимо создавать master-узлы.
Доступные зоны для выбранного типа инстанса можно посмотреть с помощью Azure CLI:
az vm list-skus -l westeurope -o tableПо умолчанию:
[1,2,3]
- объектnameservers
Конфигурация DNS-серверов для виртуальной сети Azure, которая используется для узлов кластера.
- массив строкnameservers.addresses
Список DNS-серверов.
Пример:
addresses: - 8.8.8.8 - 8.8.4.4- строкаЭлемент массива
Шаблон:
^(([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])$
- массив объектовnodeGroups
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- булевый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— образ, из которого был создан мастер-узел при развертывании кластера.Список поддерживаемых Deckhouse ОС и их версий можно найти в документации (учитывайте используемую версию Deckhouse).
- строка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
Обязательный параметр
Количество узлов.
- массив строкnodeGroups.zones
Список зон, в которых допустимо создавать узлы.
Доступные зоны для выбранного типа инстанса можно посмотреть с помощью Azure CLI:
az vm list-skus -l westeurope -o tableПо умолчанию:
[1,2,3]
- массив объектовpeeredVNets
Массив VNet, с которыми будет объединена сеть кластера.
ServiceAccount должен иметь доступ ко всем перечисленным VNet. Если доступа нет, пиринговое соединение необходимо настраивать вручную.
- строкаpeeredVNets.resourceGroupName
Обязательный параметр
Имя группы ресурсов, в которой находится VNet.
- строкаpeeredVNets.vnetName
Обязательный параметр
Имя VNet.
- строкаprovider.clientId
Обязательный параметр
Идентификатор клиента.
- строкаprovider.clientSecret
Обязательный параметр
Секрет (secret) клиента.
Помните о сроке действия секрета. По умолчанию он действителен один год. Чтобы создать service account с большим сроком действия секрета, обратитесь к официальной документации.
- строкаprovider.location
Обязательный параметр
Имя географического региона, в котором будут созданы все ресурсы. Получение списка доступных локаций через Azure CLI:
az account list-locations -o table - строкаprovider.subscriptionId
Обязательный параметр
Идентификатор подписки.
- строкаprovider.tenantId
Обязательный параметр
Идентификатор tenant’а.
- массив строкserviceEndpoints
Список Service Endpoints, ассоциированных с подсетью.
Service Endpoints для виртуальной сети позволяют прямо и безопасно подключаться к сервисам Azure по оптимизированному маршруту через магистральную сеть Azure. Они позволяют ограничить пределами отдельных виртуальных сетей доступ к критически важным ресурсам сервисов Azure. Через Service Endpoints приватные IP-адреса в виртуальной сети могут подключаться к эндпоинтам сервисов Azure, не используя публичный IP-адрес в виртуальной сети.
Больше информации можно найти в официальной документации.
- строкаЭлемент массива
Допустимые значения:
Microsoft.AzureActiveDirectory,Microsoft.AzureCosmosDB,Microsoft.ContainerRegistry,Microsoft.CognitiveServices,Microsoft.EventHub,Microsoft.KeyVault,Microsoft.ServiceBus,Microsoft.Sql,Microsoft.Storage,Microsoft.Storage.Global,Microsoft.Web
- массив строкsshAllowList
Список CIDR, разрешенных для подключения к узлам по SSH.
По умолчанию
*. - строкаsshPublicKey
Обязательный параметр
Публичный ключ для доступа на узлы под пользователем
azureuser. - целочисленныйstandard.natGatewayPublicIpCount
Количество IP-адресов для NAT Gateway (тарификация).
NAT Gateway не используется, если установлено
0.По умолчанию:
0
- строка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.
Виртуальная сеть — это виртуальная изолированная часть общедоступной сети Azure. Каждая виртуальная сеть выделена для вашей подписки.
Внимание. Нужно учитывать, что в случае настройки пиринга, использования VPN или связывания сетей других кластеров, адресное пространство сетей не должно пересекаться.
Шаблон:
^(([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
Глобальное ограничение набора зон, с которыми работает данный облачный провайдер.