GCPClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в GCP.
Используется облачным провайдером, если управляющий слой (control plane) кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
1kubectl -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- deckhouse-controller edit provider-cluster-configuration
После изменения параметров узлов необходимо выполнить команду dhctl converge, чтобы изменения вступили в силу.
Пример:
1apiVersion: deckhouse.io/v1
2kind: GCPClusterConfiguration
3layout: WithoutNAT
4sshKey: "<SSH_PUBLIC_KEY>"
5subnetworkCIDR: 10.36.0.0/24
6masterNodeGroup:
7 replicas: 1
8 zones:
9 - europe-west3-b
10 instanceClass:
11 machineType: n1-standard-4
12 image: projects/ubuntu-os-cloud/global/images/ubuntu-2404-noble-amd64-v20240523a
13 diskSizeGb: 50
14nodeGroups:
15- name: static
16 replicas: 1
17 zones:
18 - europe-west3-b
19 instanceClass:
20 machineType: n1-standard-4
21 image: projects/ubuntu-os-cloud/global/images/ubuntu-2404-noble-amd64-v20240523a
22 diskSizeGb: 50
23 additionalNetworkTags:
24 - tag1
25 additionalLabels:
26 kube-node: static
27provider:
28 region: europe-west3
29 serviceAccountJSON: "<SERVICE_ACCOUNT_JSON>"
- объект
Список лейблов, которые будут прикреплены ко всем ресурсам кластера (которые это поддерживают).
Если поменять теги в рабочем кластере, после конвержа необходимо пересоздать все машины, чтобы теги применились.
Подробнее про лейблы можно прочитать в официальной документации.
Формат —
key: value
. - строка
Обязательный параметр
Название схемы размещения.
Standard
— включает режим Cloud NAT. Подробнее….WithoutNAT
— выделенная VPN создается для кластера. Все узлы имеют публичные IP-адреса. Подробнее….Допустимые значения:
Standard
,WithoutNAT
- объект
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Чтобы изменения вступили в силу, после изменения параметров секции
masterNodeGroup
выполните командуdhctl converge
.- объект
Список дополнительных лейблов.
Подробно про лейблы можно прочитать в документации Google Cloud.
Пример:
1project: cms-production 2severity: critical
- массив строк
Список дополнительных сетевых тегов (network tags).
Сетевые теги позволяют применять к инстансам firewall-правила. Подробно о сетевых тегах можно прочитать в документации Google Cloud.
- булевый
Устанавливает, запретить назначение внешнего IP для инстанса или нет.
Параметр доступен только для layout
Standard
.true
— узлы не имеют публичных адресов, доступ в интернет осуществляется черезCloudNAT
.false
— для узлов создаются статические публичные адреса, они же используются для One-to-One NAT.По умолчанию:
true
Допустимые значения:
true
,false
- строка
Обязательный параметр
Образ, который будет использоваться в заказанных инстансах.
Список доступных образов можно найти в документации провайдера.
Список поддерживаемых Deckhouse ОС и их версий можно найти в документации Deckhouse (учитывайте используемую версию Deckhouse).
Пример:
1image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911
- строка
Обязательный параметр
Тип заказываемых инстансов.
Внимание! Следует убедиться, что указанный тип есть во всех зонах, перечисленных в параметре
zones
.GCP позволяет указывать нестандартное количество CPU и RAM, например:
custom-8-40960
илиn2-custom-8-40960
.Пример:
1machineType: n1-standard-4
- массив строк
Список зон, в которых допустимо создавать узлы.
Порядок указания зон не влияет на порядок создания узлов. Узлы будут размещаться в зонах в алфавитном порядке: первый узел — в зоне, стоящей первой по алфавиту, второй — во второй зоне и так далее. Если количество зон меньше числа узлов, то после размещения узла в последней зоне по алфавиту распределение продолжится сначала списка.
- массив объектов
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных фронтов или шлюзов).
- объект
Список дополнительных лейблов.
Подробно про лейблы можно прочитать в документации Google Cloud.
Пример:
1project: cms-production 2severity: critical
- массив строк
Список дополнительных сетевых тегов (network tags).
Сетевые теги позволяют применять к инстансам firewall-правила. Подробно о сетевых тегах можно прочитать в документации Google Cloud.
- булевый
Устанавливает, запретить назначение внешнего IP для инстанса или нет.
Параметр доступен только для layout
Standard
.true
— узлы не имеют публичных адресов, доступ в интернет осуществляется черезCloudNAT
.false
— для узлов создаются статические публичные адреса, они же используются для One-to-One NAT.По умолчанию:
true
Допустимые значения:
true
,false
- строка
Обязательный параметр
Образ, который будет использоваться в заказанных инстансах.
Список доступных образов можно найти в документации провайдера.
Список поддерживаемых Deckhouse ОС и их версий можно найти в документации Deckhouse (учитывайте используемую версию Deckhouse).
Пример:
1image: projects/ubuntu-os-cloud/global/images/ubuntu-1804-bionic-v20190911
- строка
Обязательный параметр
Тип заказываемых инстансов.
Внимание! Следует убедиться, что указанный тип есть во всех зонах, перечисленных в параметре
zones
.GCP позволяет указывать нестандартное количество CPU и RAM, например:
custom-8-40960
илиn2-custom-8-40960
.Пример:
1machineType: n1-standard-4
- объект
Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узлов.
- массив объектов
Аналогично полю
.spec.taints
из объекта Node.Доступны только поля
effect
,key
,values
.
- массив строк
Список зон, в которых допустимо создавать узлы.
Порядок указания зон не влияет на порядок создания узлов. Узлы будут размещаться в зонах в алфавитном порядке: первый узел — в зоне, стоящей первой по алфавиту, второй — во второй зоне и так далее. Если количество зон меньше числа узлов, то после размещения узла в последней зоне по алфавиту распределение продолжится сначала списка.
- массив строк
Список GCP VPC networks, с которыми будет объединена сеть кластера.
Сервис-аккаунт должен иметь доступ ко всем перечисленным VPC. Если доступа нет, пиринг необходимо настраивать вручную.
- строка
Обязательный параметр
Ключ к Service Account’у с правами Project Admin (
service account key
) в JSON-формате.Как получить
service account key
.
- массив строк
Список зон, в которых допустимо создавать узлы.
Порядок указания зон не влияет на порядок создания узлов. Узлы будут размещаться в зонах в алфавитном порядке: первый узел — в зоне, стоящей первой по алфавиту, второй — во второй зоне и так далее. Если количество зон меньше числа узлов, то после размещения узла в последней зоне по алфавиту распределение продолжится сначала списка.