AWSClusterConfiguration
Version: deckhouse.io/v1
Описывает конфигурацию облачного кластера в AWS.
Используется cloud-провайдером, если control plane кластера размещен в облаке.
Выполните следующую команду, чтобы изменить конфигурацию в работающем кластере:
kubectl -n d8-system exec -ti deploy/deckhouse -- deckhouse-controller edit provider-cluster-configuration
Пример:
apiVersion: deckhouse.io/v1
kind: AWSClusterConfiguration
layout: WithoutNAT
sshPublicKey: "<SSH_PUBLIC_KEY>"
nodeNetworkCIDR: 172.16.0.0/22
vpcNetworkCIDR: 172.16.0.0/16
masterNodeGroup:
replicas: 1
instanceClass:
instanceType: m5.xlarge
ami: ami-08b6d44b4f6f7b279
diskType: gp3
nodeGroups:
- name: worker
nodeTemplate:
labels:
node-role.kubernetes.io/worker: ''
replicas: 2
instanceClass:
instanceType: t2.medium
ami: ami-0caef02b518350c8b
additionalTags:
backup: srv1
provider:
providerAccessKeyId: "<AWS_ACCESS_KEY>"
providerSecretAccessKey: "<AWS_SECRET_ACCESS_KEY>"
region: eu-central-1
tags:
team: rangers
- массив строк
Список дополнительных policy actions для IAM-ролей.
- Дополнительные policy actions будут добавлены к базовым политикам IAM-ролей.
- Необязательный параметр. Если отсутствует, IAM-роли будут использовать только policy actions по умолчанию.
- Пример policy actions:
ecr:ListImages
,s3:GetObject
etc
По умолчанию IAM-роли содержат следующие policy actions:
ec2:DescribeTags
ec2:DescribeInstances
- строка
ID существующего VPC, в котором будет развернута схема.
- Обязательный параметр, если не указан
vpcNetworkCIDR
. - Важно! Если в данной VPC уже есть Internet Gateway, деплой базовой инфраструктуры упадет с ошибкой. На данный момент использовать уже существующий Internet Gateway нельзя.
- Обязательный параметр, если не указан
- строка
Обязательный параметр
Название схемы размещения.
Подробнее о возможных схемах размещения провайдера.
Схема размещения
Standard
считается устаревшей, не используйте ее.Допустимые значения:
WithoutNAT
,WithNAT
,Standard
- объект
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
Внимание! После изменения параметров секции
masterNodeGroup
необходимо выполнить командуdhctl converge
, чтобы изменения вступили в силу.- объект
Дополнительные теги, которые будут присвоены созданным инстансам в дополнение к указанным в конфигурации cloud-провайдера.
Пример:
additionalTags: project: cms-production severity: critical
- строка
Обязательный параметр
Образ (AMI ID), который будет использоваться в заказанных инстансах.
Как найти нужный AMI (в каждом регионе AMI разные):
aws ec2 --region <REGION> describe-images \ --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-2020*' | \ jq '.Images[].ImageId'
Пример:
ami: ami-040a1551f9c9d11ad
- массив объектов
Массив дополнительных NodeGroup для создания статических узлов (например, для выделенных frontend-узлов или шлюзов).
- объект
Дополнительные к основным (
AWSClusterConfiguration.tags
) теги, которые будут присвоены созданным инстансам.Пример:
project: cms-production severity: critical
- строка
Обязательный параметр
Образ (AMI ID), который будет использоваться в заказанных инстансах.
Как найти нужный AMI (в каждом регионе AMI разные):
aws ec2 --region <REGION> describe-images \ --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-2020*' | \ jq '.Images[].ImageId'
Пример:
ami: ami-040a1551f9c9d11ad
Настройки 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
- строка
Подсеть, в которой будут работать узлы кластера:
- Диапазон должен быть частью или должен соответствовать диапазону адресов VPC.
- Диапазон будет равномерно разбит на подсети по одной на Availability Zone в вашем регионе.
- Необязательный, но рекомендованный параметр. По умолчанию он соответствует целому диапазону адресов VPC.
Если при создании кластера создается новая VPC и не указан
vpcNetworkCIDR
, VPC будет создана с диапазоном, указанным вnodeNetworkCIDR
. Таким образом, вся VPC будет выделена под сети кластера и, соответственно, не будет возможности добавить другие ресурсы в эту VPC.Диапазон
nodeNetworkCIDR
распределяется по подсетям в зависимости от количества зон доступности в выбранном регионе. Например, если указанаnodeNetworkCIDR: "10.241.1.0/20"
и в регионе 3 зоны доступности, подсети будут созданы с маской/22
.Шаблон:
^(([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]))$
- массив строк
Список AWS VPC ID для организации пиринга с сетью кластера.
Учетная запись должна иметь доступ ко всем VPC в списке. Также вы можете настроить соединение вручную, если доступа нет.
- объект
Необязательный параметр.
Словарь тегов, которые будут созданы на всех ресурсах, имеющих такую возможность.
Если поменять теги в рабочем кластере, после применения изменений необходимо пересоздать все машины.
- строка
Подсеть, которая будет указана в созданном VPC.
Обязательный параметр, если не указан параметр для развертывания в уже созданном VPC
existingVPCID
.Шаблон:
^(([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]))$
- строка
Обязательный параметр
Образ (AMI ID), который будет использоваться для создания заказываемого инстанса.
Как найти нужный AMI (в каждом регионе AMI разные):
aws ec2 --region <REGION> describe-images \ --filters 'Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-2020*' | \ jq '.Images[].ImageId'
Пример:
ami: ami-040a1551f9c9d11ad