YandexClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в Yandex Cloud.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
kubectl -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller edit provider-cluster-configuration
После изменения параметров узлов необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.
Пример:
apiVersion: deckhouse.io/v1
kind: YandexClusterConfiguration
layout: Standard
nodeNetworkCIDR: 127.0.0.1/8
labels:
label-2: b
sshPublicKey: "<SSH_PUBLIC_KEY>"
masterNodeGroup:
replicas: 1
instanceClass:
cores: 4
memory: 8192
imageID: fd8nb7ecsbvj76dfaa8b
nodeGroups:
- name: worker
replicas: 1
zones:
- ru-central1-a
instanceClass:
cores: 4
memory: 8192
imageID: fd8nb7ecsbvj76dfaa8b
coreFraction: 50
externalIPAddresses:
- 198.51.100.5
- Auto
provider:
cloudID: "<CLOUD_ID>"
folderID: "<FOLDER_ID>"
serviceAccountJSON: |
{
"id": "id",
"service_account_id": "service_account_id",
"key_algorithm": "RSA_2048",
"public_key": "-----BEGIN PUBLIC KEY-----\nMIIwID....AQAB\n-----END PUBLIC KEY-----\n",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIE....1ZPJeBLt+\n-----END PRIVATE KEY-----\n"
}
- объект
Список DHCP-опций, которые будут установлены на все подсети.
Возможные проблемы при использовании.
- объект
Одна или несколько ранее существовавших подсетей, сопоставленных с соответствующей зоной.
Внимание! Deckhouse создаст таблицу маршрутизации, которую необходимо вручную привязать к указанным подсетям.
Шаблон:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}$
Пример:
existingZoneToSubnetIDMap: ru-central1-a: e2lu8r1tbbtryhdpa9ro ru-central1-b: e2lu8r1tbbtryhdpa9ro ru-central1-d: e2lu8r1tbbtryhdpa9ro
- строка
Обязательный параметр
Название схемы размещения.
Подробнее о возможных схемах размещения провайдера.
Допустимые значения:
Standard
,WithoutNAT
,WithNATInstance
- объект
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Внимание! После изменения параметров секции
masterNodeGroup
необходимо выполнить командуdhctl converge
, чтобы изменения вступили в силу.- целочисленный
Размер диска для etcd. Значение указывается в
ГиБ
.При изменении этого параметра необходимо вручную расширить каждый диск для etcd в интерфейсе Yandex Cloud (причина такого поведения — в issue).
По умолчанию:
10
Пример:
etcdDiskSizeGb: 10
- массив строк
Список внешних IP-адресов, перечисленных в порядке зон, в которых будут создаваться узлы.
В списке можно указывать следующие значения:
- IP-адрес из дополнительной внешней сети для соответствующей зоны (параметр
externalSubnetIDs
); - зарезервированный публичный IP-адрес, если список дополнительных внешних сетей не определен (параметр
externalSubnetIDs
); Auto
, для заказа публичного IP-адреса в соответствующей зоне.
Обратите внимание:
-
Элементы массива должны быть перечислены согласно порядку зон (параметр
zones
), в которых будут создаваться узлы.Например:
- <RU-CENTRAL1-A-IP-ADDRESS> - <RU-CENTRAL1-B-IP-ADDRESS> - <RU-CENTRAL1-D-IP-ADDRESS>
- Количество элементов массива в параметре
externalIPAddresses
должно быть равно количеству узлов в группе (параметраreplicas
). Для автоматического заказа публичных IP-адресов в зоне, используйте значениеAuto
в списке в параметреexternalIPAddresses
на соответствующем месте (соответствующему порядку зон). - Если не указать externalIPAddresses, то узлы в группе будут заказаны без внешних IP-адресов.
- IP-адрес из дополнительной внешней сети для соответствующей зоны (параметр
- массив строк
Список дополнительных внешних сетей, подключаемых к узлам.
Интерфейс узла, находящийся в сети из списка, будет назначен шлюзом по умолчанию.
Также будет добавлен маршрут для интерфейса внутренней сети узла на всю подсеть, указанную в nodeNetworkCIDR.
Элементы массива должны быть перечислены согласно порядку зон (параметр
zones
), в которых будут создаваться узлы. Например:- <RU-CENTRAL1-A-SUBNET-ID> - <RU-CENTRAL1-B-SUBNET-ID> - <RU-CENTRAL1-D-SUBNET-ID>
- массив объектов
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- целочисленный
Базовый уровень производительности каждого ядра CPU у создаваемых инстансов. Подробнее…
По умолчанию:
100
Допустимые значения:
5
,20
,50
,100
Пример:
coreFraction: 20
- массив строк
Список внешних IP-адресов, перечисленных в порядке зон, в которых будут создаваться узлы.
В списке можно указывать следующие значения:
- IP-адрес из дополнительной внешней сети для соответствующей зоны (параметр
externalSubnetIDs
); - зарезервированный публичный IP-адрес, если список дополнительных внешних сетей не определен (параметр
externalSubnetIDs
); Auto
, для заказа публичного IP-адреса в соответствующей зоне.
Обратите внимание:
-
Элементы массива должны быть перечислены согласно порядку зон (параметр
zones
), в которых будут создаваться узлы.Например:
- <RU-CENTRAL1-A-IP-ADDRESS> - <RU-CENTRAL1-B-IP-ADDRESS> - <RU-CENTRAL1-D-IP-ADDRESS>
- Количество элементов массива в параметре
externalIPAddresses
должно быть равно количеству узлов в группе (параметраreplicas
). Для автоматического заказа публичных IP-адресов в зоне, используйте значениеAuto
в списке в параметреexternalIPAddresses
на соответствующем месте (соответствующему порядку зон). - Если не указать externalIPAddresses, то узлы в группе будут заказаны без внешних IP-адресов.
- IP-адрес из дополнительной внешней сети для соответствующей зоны (параметр
- массив строк
Список дополнительных внешних сетей, подключаемых к узлам.
Интерфейс узла, находящийся в сети из списка, будет назначен шлюзом по умолчанию.
Также будет добавлен маршрут для интерфейса внутренней сети узла на всю подсеть, указанную в nodeNetworkCIDR.
Элементы массива должны быть перечислены согласно порядку зон (параметр
zones
), в которых будут создаваться узлы. Например:- <RU-CENTRAL1-A-SUBNET-ID> - <RU-CENTRAL1-B-SUBNET-ID> - <RU-CENTRAL1-D-SUBNET-ID>
Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узла.
- объект
Аналогично стандартному полю
metadata.annotations
.Пример:
annotations: ai.fleet.com/discombobulate: "true"
- объект
Список лейблов, которые будут прикреплены ко всем ресурсам кластера (если они это поддерживают).
Аналогично стандартному полю
metadata.labels
.Если поменять теги в рабочем кластере, после применения изменений необходимо пересоздать все машины.
Пример:
labels: environment: production app: warp-drive-ai
- массив объектов
Аналогично полю
.spec.taints
из объекта Node.Внимание! Доступны только поля
effect
,key
,values
.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- строка
Обязательный параметр
Ключ к service account’у в JSON-формате.
Получить его можно с помощью команды
[yc iam key create](environment.html)
.Шаблон:
^[ \t\n]*\{(.|\n)*\}[ \t\n]*$
Пример:
serviceAccountJSON: | { "id": "...", "service_account_id": "...", "created_at": "2022-08-04T05:38:34.756137618Z", "key_algorithm": "RSA_2048", "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n", "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n" }
- строка
API-ключ для экспортера метрик Yandex Cloud.
- Если значение ключа — пустая строка, экспортер не будет развернут в кластере.
- Если значение ключа —
Auto
, Deckhouse создаст service account c рольюmonitoring.viewer
и API-ключ для него. Для основного service account’а требуется рольadmin
. - Любое другое значение ключа считается допустимым API-ключем. Используйте инструкцию для создания API-ключа.
Service account’у, для которого будет создан ключ, необходимо назначить роль
monitoring.viewer
.
По умолчанию:
""
- строка
Внешний зарезервированный IP-адрес или адрес из
externalSubnetID
при указании опции.Шаблон:
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
- объект
Вычислительные ресурсы, выделяемые для NAT-инстанса. Если параметр не указан, будут использоваться значения по умолчанию.