AWSClusterConfiguration
Version: deckhouse.io/v1
- apiVersionстрока
Обязательный параметр
Допустимые значения:
deckhouse.io/v1
,deckhouse.io/v1alpha1
- existingVPCIDстрока
ID существующего VPC, в котором будет развёрнута схема.
- Обязательный параметр, если не указан
vpcNetworkCIDR
. - Важно! Если в данной VPC уже есть Internet Gateway, деплой базовой инфраструктуры упадёт с ошибкой. На данный момент использовать уже существующий Internet Gateway нельзя.
- Обязательный параметр, если не указан
- kindстрока
Обязательный параметр
Допустимые значения:
AWSClusterConfiguration
- layoutстрока
Обязательный параметр
Название схемы размещения.
Подробнее о возможных схемах размещения провайдера.
Схема размещения
Standard
считается устаревшей, не используйте ее.Допустимые значения:
WithoutNAT
,WithNAT
,Standard
- masterNodeGroupобъект
Обязательный параметр
Спецификация для описания NodeGroup master-узлов.
- объект
Дополнительные теги, которые будут присвоены созданным инстансам в дополнение к указанным в конфигурации cloud-провайдера.
Пример:
project: cms-production severity: critical
- instanceClassобъект
Обязательный параметр
Частичное содержимое полей AWSInstanceClass.
- additionalSecurityGroupsмассив строк
Дополнительные теги, которые будут присвоены созданным инстансам.
- amiстрока
Обязательный параметр
Образ (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
- diskSizeGbцелочисленный
Размер root-диска. Значение указывается в гигабайтах.
Пример:
diskSizeGb: 20
- diskTypeстрока
Тип созданного диска.
Допустимые значения:
gp3
,gp2
,io2
,io1
,st1
,sc1
Пример:
diskType: gp2
- instanceTypeстрока
Обязательный параметр
Тип заказываемых инстансов.
Внимание! Следует убедиться, что указанный тип есть во всех зонах, перечисленных в параметре
zones
.Пример:
instanceType: t3.large
- additionalSecurityGroupsмассив строк
- replicasцелочисленный
Обязательный параметр
Сколько master-узлов создавать.
Допустимые значения:
1 <= X
- zonesмассив строк
Необязательный параметр.
Список зон, в которых допустимо создавать master-узлы.
- объект
- nodeGroupsмассив объектов
Массив дополнительных NodeGroup для создания статичных узлов (например, для выделенных frontend-узлов или шлюзов).
- объект
Дополнительные к основным (
AWSClusterConfiguration.tags
) теги, которые будут присвоены созданным инстансам.Пример:
project: cms-production severity: critical
- instanceClassобъект
Обязательный параметр
Частичное содержимое полей AWSInstanceClass.
- additionalSecurityGroupsмассив строк
Дополнительные теги, которые будут присвоены созданным инстансам.
- amiстрока
Обязательный параметр
Образ (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
- diskSizeGbцелочисленный
Размер root-диска. Значение указывается в гигабайтах.
Пример:
diskSizeGb: 20
- diskTypeстрока
Тип созданного диска.
Допустимые значения:
gp3
,gp2
,io2
,io1
,st1
,sc1
Пример:
diskType: gp2
- instanceTypeстрока
Обязательный параметр
Тип заказываемых инстансов.
Внимание! Следует убедиться, что указанный тип есть во всех зонах, перечисленных в параметре
zones
.Пример:
instanceType: t3.large
- additionalSecurityGroupsмассив строк
- nameстрока
Обязательный параметр
Имя NodeGroup. Используется для генерации имен узлов.
- nodeTemplate
Настройки Node-объектов в Kubernetes, которые будут добавлены после регистрации узла.
- annotationsобъект
Аналогично стандартному полю
metadata.annotations
.Пример:
annotations: ai.fleet.com/discombobulate: "true"
- labelsобъект
Список лейблов, которые будут прикреплены ко всем ресурсам кластера (если они это поддерживают).
Аналогично стандартному полю
metadata.labels
.Если поменять лейблы в рабочем кластере, то после применения изменений необходимо пересоздать все машины.
Пример:
labels: environment: production app: warp-drive-ai
- taintsмассив объектов
Аналогично полю
.spec.taints
из объекта Node.Внимание! Доступны только поля
effect
,key
,values
.Пример:
taints: - effect: NoExecute key: ship-class value: frigate
- effectстрока
Допустимые значения:
NoSchedule
,PreferNoSchedule
,NoExecute
- keyстрока
- valueстрока
- effectстрока
- annotationsобъект
- replicasцелочисленный
Обязательный параметр
Количество узлов.
- zonesмассив строк
Необязательный параметр.
Список зон, в которых допустимо создавать узлы.
- объект
- nodeNetworkCIDRстрока
Подсеть, в которой будут работать узлы кластера.
- Диапазон должен быть частью или должен соответствовать диапазону адресов 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]))$
- peeredVPCsмассив строк
Список AWS VPC ID для организации пиринга с сетью кластера.
Учетная запись должна иметь доступ ко всем VPC в списке. Также вы можете настроить соединение вручную, если доступа нет.
- providerобъект
Обязательный параметр
Параметры подключения к API AWS.
- sshPublicKeyстрока
Обязательный параметр
Публичный ключ для доступа на узлы.
- standardобъект
Схема размещения
Standard
считается устаревшей, не используйте ее.- associatePublicIPToMastersбулевый
- associatePublicIPToNodesбулевый
- объект
Необязательный параметр.
Словарь тегов, которые будут созданы на всех ресурсах, имеющих такую возможность.
Если поменять теги в рабочем кластере, то после применения изменений необходимо пересоздать все машины.
- vpcNetworkCIDRстрока
Подсеть, которая будет указана в созданном 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]))$
- withNATобъект
- bastionInstanceобъект
- instanceClassобъект
Обязательный параметр
Частичное содержимое полей AWSInstanceClass.
- additionalSecurityGroupsмассив строк
Дополнительные теги, которые будут присвоены созданному инстансу.
- amiстрока
Обязательный параметр
Образ (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
- diskSizeGbцелочисленный
Размер root-диска. Значение указывается в гигабайтах.
Пример:
diskSizeGb: 20
- diskTypeстрока
Тип созданного root-диска.
Допустимые значения:
gp3
,gp2
,io2
,io1
,st1
,sc1
Пример:
diskType: gp2
- instanceTypeстрока
Обязательный параметр
Тип заказываемого инстанса.
Пример:
instanceType: t3.large
- additionalSecurityGroupsмассив строк
- zoneстрока
Зона, в которой создавать bastion.
По умолчанию будет использоваться первая доступная зона в регионе или первая из списка глобального параметра
zones
.
- instanceClassобъект
- bastionInstanceобъект
- withoutNATобъект
- zonesмассив строк
Глобальное ограничение набора зон, с которыми работает cloud provider.