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