HuaweiCloudClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Huawei Cloud.
Используется облачным провайдером, если управляющий слой кластера размещён в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
d8 system edit provider-cluster-configuration
Пример:
apiVersion: deckhouse.io/v1
kind: HuaweiCloudClusterConfiguration
layout: Standard
sshPublicKey: "<SSH_PUBLIC_KEY>"
zones:
- eu-3a
standard:
externalNetworkName: external-network
provider:
domainName: "<DOMAIN_NAME>"
region: eu-3
accessKey: "<USERNAME>"
secretKey: "<PASSWORD>"
masterNodeGroup:
replicas: 1
instanceClass:
flavorName: m1.large
rootDiskSize: 50
imageName: debian-11-genericcloud-amd64-20220911-1135
nodeGroups:
- name: front
replicas: 2
instanceClass:
flavorName: m1.large
imageName: debian-11-genericcloud-amd64-20220911-1135
rootDiskSize: 50
zones:
- eu-1a
- eu-1b
- строкаapiVersion
Обязательный параметр
Допустимые значения:
deckhouse.io/v1 - строкаkind
Обязательный параметр
Допустимые значения:
HuaweiCloudClusterConfiguration - строкаlayout
Обязательный параметр
Название схемы размещения.
Возможные схемы размещения провайдера описаны на странице Схемы размещения.
- masterNodeGroup
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Чтобы изменения вступили в силу, после изменения параметров секции
masterNodeGroupвыполните командуdhctl converge.- объектmasterNodeGroup.instanceClass
Обязательный параметр
Частичное содержимое полей HuaweiCloudInstanceClass.
- целочисленныйmasterNodeGroup.instanceClass.etcdDiskSizeGb
Размер диска для etcd. Значение указывается в гигабайтах.
По умолчанию:
10Пример:
etcdDiskSizeGb: 10 - строкаmasterNodeGroup.instanceClass.flavorName
Обязательный параметр
Тип заказываемых виртуальных машин.
- строкаmasterNodeGroup.instanceClass.imageName
Обязательный параметр
Имя образа виртуальной машины, который будет использоваться для инстанса.
Список поддерживаемых Deckhouse ОС и их версий можно найти на странице Поддерживаемые версии Kubernetes и ОС (учитывайте используемую версию Deckhouse).
- целочисленныйmasterNodeGroup.instanceClass.rootDiskSize
Размер root-диска. Значение указывается в гигабайтах.
Параметр также влияет на тип диска.
По умолчанию:
50Пример:
rootDiskSize: 50
- целочисленныйmasterNodeGroup.replicas
Обязательный параметр
Количество создаваемых master-узлов. Для обеспечения кворума важно, чтобы оно было нечетным.
Допустимые значения:
1 <= X - объектmasterNodeGroup.serverGroup
ServerGroup объединяет инстансы в группу. Инстансы в такой группе будут размещены на одном гипервизоре (affinity) или на разных гипервизорах (anti-affinity). Это позволяет повысить отказоустойчивость кластера.
- строкаmasterNodeGroup.serverGroup.policy
Обязательный параметр
Политика распределения инстансов:
AntiAffinity— размещает инстансы на разных гипервизорах. Данной политикой управляет Deckhouse.
Допустимые значения:
AntiAffinity
- объектmasterNodeGroup.volumeTypeMap
Обязательный параметр
Словарь типов дисков для хранения данных etcd и конфигурационных файлов Kubernetes.
Формат элементов словаря:
<ЗОНА ДОСТУПНОСТИ>: <ТИП ДИСКА>(см. пример).Если указан параметр
rootDiskSize, этот же тип диска будет использован в качестве загрузочного диска виртуальной машины.Всегда рекомендуется использовать самые быстрые диски, предоставляемые провайдером.
Если значение, указанное в
replicas, превышает количество элементов в словаре, master-узлы, чьи номера превышают длину словаря, получают значения, начиная с начала словаря. Если для словаря из примера указаноreplicas: 5, с типом дискаfast-eu-1aбудут master-0, master-2 и master-4, а с типом дискаfast-eu-1bбудут master-1 и master-3.Пример:
volumeTypeMap: eu-1a: fast-eu-1a eu-1b: fast-eu-1b
- массив объектовnodeGroups
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- объектnodeGroups.instanceClass
Обязательный параметр
Частичное содержимое полей.
- целочисленныйnodeGroups.instanceClass.etcdDiskSizeGb
Размер диска для etcd. Значение указывается в гигабайтах.
По умолчанию:
10Пример:
etcdDiskSizeGb: 10 - строкаnodeGroups.instanceClass.flavorName
Обязательный параметр
Тип заказываемых виртуальных машин.
- строкаnodeGroups.instanceClass.imageName
Обязательный параметр
Имя образа виртуальной машины, который будет использоваться для инстанса.
Список поддерживаемых Deckhouse ОС и их версий можно найти на странице Поддерживаемые версии Kubernetes и ОС (учитывайте используемую версию Deckhouse).
- целочисленныйnodeGroups.instanceClass.rootDiskSize
Размер root-диска. Значение указывается в гигабайтах.
Параметр также влияет на тип диска.
По умолчанию:
50Пример:
rootDiskSize: 50
- строка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
Обязательный параметр
Количество узлов.
- строкаprovider.accessKey
Обязательный параметр
Ключ доступа к облаку Huawei Cloud.
- строкаprovider.authURL
URL-адрес аутентификации личности.
- строкаprovider.cloud
Обязательный параметр
Конечная точка поставщика облачных услуг.
- строкаprovider.domainName
Имя учетной записи IAM для охвата.
- строкаprovider.enterpriseProjectID
Идентификатор подпроекта.
- булевыйprovider.insecure
Доверять самоподписанным SSL-сертификатам.
- строкаprovider.projectID
Идентификатор проекта.
- строкаprovider.region
Обязательный параметр
Регион Huawei Cloud, в котором будет развернут кластер.
- строкаprovider.secretKey
Обязательный параметр
Секретный ключ облака Huawei Cloud.
- строкаsshPublicKey
Обязательный параметр
Публичный ключ для доступа на узлы.
- булевыйstandard.enableEIP
Включите Elastic IP для мастер узлов.
Шаблон:
^(([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]))$ - строкаstandard.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]))$ - массив строкstandard.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])$
- булевыйstandard.internalNetworkSecurity
Флаг, который определяет необходимость настройки SecurityGroups на портах внутренней сети.
По умолчанию:
true
- строкаvpcPeering.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]))$ - массив строкvpcPeering.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])$
- булевыйvpcPeering.internalNetworkSecurity
Флаг, который определяет необходимость настройки SecurityGroups на портах внутренней сети.
По умолчанию:
true - строкаvpcPeering.subnet
Имя подсети в сети VPC.
- массив строкzones
Необязательный параметр.
Глобальное ограничение набора зон, с которыми работает данный облачный провайдер.