Поддерживаются три схемы размещения. Ниже подробнее о каждой их них.
Standard
В данной схеме размещения узлы не будут иметь публичных адресов, а будут выходить в интернет через Yandex.Cloud NAT.
Внимание! На текущий момент (2022г.) функция Yandex.Cloud NAT находится на стадии Preview. Для того чтобы появилась возможность включения Cloud NAT в вашем облаке, необходимо заранее (за неделю) обратиться в поддержку Yandex.Cloud и запросить у них доступ.
Пример конфигурации схемы размещения:
apiVersion: deckhouse.io/v1
kind: YandexClusterConfiguration
layout: Standard
provider:
cloudID: <CLOUD_ID>
folderID: <FOLDER_ID>
serviceAccountJSON: |
{"test": "test"}
masterNodeGroup:
replicas: 1
zones:
- ru-central1-a
- ru-central1-b
instanceClass:
cores: 4
memory: 8192
imageID: testtest
externalIPAddresses:
- "198.51.100.5"
- "Auto"
externalSubnetID: <EXTERNAL_SUBNET_ID>
additionalLabels:
takes: priority
nodeGroups:
- name: khm
replicas: 1
zones:
- ru-central1-a
instanceClass:
cores: 4
memory: 8192
imageID: testtest
coreFraction: 50
externalIPAddresses:
- "198.51.100.5"
- "Auto"
externalSubnetID: <EXTERNAL_SUBNET_ID>
additionalLabels:
toy: example
labels:
billing: prod
sshPublicKey: "ssh-rsa <SSH_PUBLIC_KEY>"
nodeNetworkCIDR: 192.168.12.13/24
existingNetworkID: <EXISTING_NETWORK_ID>
dhcpOptions:
domainName: test.local
domainNameServers:
- 213.177.96.1
- 231.177.97.1
Включение Cloud NAT
Внимание! Сразу же (в течение 3х минут) после создания базовых сетевых ресурсов для всех подсетей необходимо вручную через web-интерфейс включить Cloud NAT. Если этого не сделать, то bootstrap-процесс не сможет завершиться.
WithoutNAT
В данной схеме размещения NAT (любого вида) не используется, а каждому узлу выдаётся публичный IP-адрес.
Внимание! В модуле cloud-provider-yandex пока нет поддержки Security Groups, поэтому все узлы кластера будут смотреть наружу.
Пример конфигурации схемы размещения:
apiVersion: deckhouse.io/v1
kind: YandexClusterConfiguration
layout: WithoutNAT
provider:
cloudID: <CLOUD_ID>
folderID: <FOLDER_ID>
serviceAccountJSON: |
{"test": "test"}
masterNodeGroup:
replicas: 1
instanceClass:
cores: 4
memory: 8192
imageID: <IMAGE_ID>
externalIPAddresses:
- "198.51.100.5"
- "Auto"
externalSubnetID: <EXTERNAL_SUBNET_ID>
zones:
- ru-central1-a
- ru-central1-b
nodeGroups:
- name: khm
replicas: 1
instanceClass:
cores: 4
memory: 8192
imageID: testtest
coreFraction: 50
externalIPAddresses:
- "198.51.100.5"
- "Auto"
externalSubnetID: tewt243tewsdf
zones:
- ru-central1-a
sshPublicKey: "ssh-rsa <SSH_PUBLIC_KEY>"
nodeNetworkCIDR: 192.168.12.13/24
existingNetworkID: <EXISTING_NETWORK_ID>
dhcpOptions:
domainName: test.local
domainNameServers:
- 8.8.8.8
- 8.8.4.4
WithNATInstance
В данной схеме размещения создаётся NAT-инстанс, а в таблицу маршрутизации добавляется правило на 0.0.0.0/0 с NAT-инстанса nexthop’ом.
Если задан withNATInstance.externalSubnetID
— NAT-инстанс будет создан в зоне этого subnet.
Если withNATInstance.externalSubnetID
не задан, а withNATInstance.internalSubnetID
задан — NAT-инстанс будет создан в зоне этого subnet.
Если ни withNATInstance.externalSubnetID
, ни withNATInstance.internalSubnetID
не заданы — NAT-инстанс создастся в зоне ru-central1-c
.
Пример конфигурации схемы размещения:
apiVersion: deckhouse.io/v1
kind: YandexClusterConfiguration
layout: WithNATInstance
withNATInstance:
natInstanceExternalAddress: <NAT_INSTANCE_EXTERNAL_ADDRESS>
internalSubnetID: <INTERNAL_SUBNET_ID>
externalSubnetID: <EXTERNAL_SUBNET_ID>
provider:
cloudID: <CLOUD_ID>
folderID: <FOLDER_ID>
serviceAccountJSON: |
{"test": "test"}
masterNodeGroup:
replicas: 1
instanceClass:
cores: 4
memory: 8192
imageID: <IMAGE_ID>
externalIPAddresses:
- "1.1.1.1"
- "Auto"
externalSubnetID: <EXTERNAL_SUBNET_ID>
zones:
- ru-central1-a
- ru-central1-b
nodeGroups:
- name: khm
replicas: 1
instanceClass:
cores: 4
memory: 8192
imageID: <IMAGE_ID>
coreFraction: 50
externalIPAddresses:
- "1.1.1.1"
- "Auto"
externalSubnetID: <EXTERNAL_SUBNET_ID>
zones:
- ru-central1-a
sshPublicKey: "ssh-rsa <SSH_PUBLIC_KEY>"
nodeNetworkCIDR: 192.168.12.13/24
existingNetworkID: <EXISTING_NETWORK_ID>
dhcpOptions:
domainName: test.local
domainNameServers:
- 8.8.8.8
- 8.8.4.4