Поддерживаются три схемы размещения. Ниже подробнее о каждой их них.
Standard
В данной схеме размещения узлы не будут иметь публичных IP-адресов, а будут выходить в интернет через NAT-шлюз (NAT Gateway) Yandex Cloud.
Пример конфигурации схемы размещения:
1apiVersion: deckhouse.io/v1
2kind: YandexClusterConfiguration
3layout: Standard
4sshPublicKey: "<SSH_PUBLIC_KEY>"
5nodeNetworkCIDR: 192.168.12.13/24
6existingNetworkID: <EXISTING_NETWORK_ID>
7provider:
8 cloudID: <CLOUD_ID>
9 folderID: <FOLDER_ID>
10 serviceAccountJSON: |
11 {
12 "id": "id",
13 "service_account_id": "service_account_id",
14 "key_algorithm": "RSA_2048",
15 "public_key": "-----BEGIN PUBLIC KEY-----\nMIIwID....AQAB\n-----END PUBLIC KEY-----\n",
16 "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE....1ZPJeBLt+\n-----END PRIVATE KEY-----\n"
17 }
18masterNodeGroup:
19 replicas: 1
20 zones:
21 - ru-central1-a
22 - ru-central1-b
23 instanceClass:
24 cores: 4
25 memory: 8192
26 imageID: testtest
27 externalIPAddresses:
28 - "198.51.100.5"
29 - "Auto"
30 externalSubnetID: <EXTERNAL_SUBNET_ID>
31 additionalLabels:
32 takes: priority
33nodeGroups:
34- name: worker
35 replicas: 1
36 zones:
37 - ru-central1-a
38 instanceClass:
39 cores: 4
40 memory: 8192
41 imageID: testtest
42 coreFraction: 50
43 externalIPAddresses:
44 - "198.51.100.5"
45 - "Auto"
46 externalSubnetID: <EXTERNAL_SUBNET_ID>
47 additionalLabels:
48 toy: example
49labels:
50 billing: prod
51dhcpOptions:
52 domainName: test.local
53 domainNameServers:
54 - 213.177.96.1
55 - 231.177.97.1
WithoutNAT
В данной схеме размещения NAT (любого вида) не используется, а каждому узлу выдается публичный IP-адрес.
Внимание! В модуле
cloud-provider-yandex
пока нет поддержки групп безопасности (security group), поэтому все узлы кластера будут смотреть наружу.
Пример конфигурации схемы размещения:
1apiVersion: deckhouse.io/v1
2kind: YandexClusterConfiguration
3layout: WithoutNAT
4provider:
5 cloudID: <CLOUD_ID>
6 folderID: <FOLDER_ID>
7 serviceAccountJSON: |
8 {
9 "id": "id",
10 "service_account_id": "service_account_id",
11 "key_algorithm": "RSA_2048",
12 "public_key": "-----BEGIN PUBLIC KEY-----\nMIIwID....AQAB\n-----END PUBLIC KEY-----\n",
13 "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE....1ZPJeBLt+\n-----END PRIVATE KEY-----\n"
14 }
15masterNodeGroup:
16 replicas: 1
17 instanceClass:
18 cores: 4
19 memory: 8192
20 imageID: <IMAGE_ID>
21 externalIPAddresses:
22 - "198.51.100.5"
23 - "Auto"
24 externalSubnetID: <EXTERNAL_SUBNET_ID>
25 zones:
26 - ru-central1-a
27 - ru-central1-b
28nodeGroups:
29- name: worker
30 replicas: 1
31 instanceClass:
32 cores: 4
33 memory: 8192
34 imageID: testtest
35 coreFraction: 50
36 externalIPAddresses:
37 - "198.51.100.5"
38 - "Auto"
39 externalSubnetID: <EXTERNAL_SUBNET_ID>
40 zones:
41 - ru-central1-a
42sshPublicKey: "<SSH_PUBLIC_KEY>"
43nodeNetworkCIDR: 192.168.12.13/24
44existingNetworkID: <EXISTING_NETWORK_ID>
45dhcpOptions:
46 domainName: test.local
47 domainNameServers:
48 - 8.8.8.8
49 - 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-a
.
Если IP-адрес NAT-инстанса не имеет значения, можно передать пустой объект withNATInstance: {}
, тогда необходимые сети и динамический IP-адрес будут созданы автоматически.
Пример конфигурации схемы размещения:
1apiVersion: deckhouse.io/v1
2kind: YandexClusterConfiguration
3layout: WithNATInstance
4withNATInstance:
5 natInstanceExternalAddress: <NAT_INSTANCE_EXTERNAL_ADDRESS>
6 internalSubnetID: <INTERNAL_SUBNET_ID>
7 externalSubnetID: <EXTERNAL_SUBNET_ID>
8provider:
9 cloudID: <CLOUD_ID>
10 folderID: <FOLDER_ID>
11 serviceAccountJSON: |
12 {
13 "id": "id",
14 "service_account_id": "service_account_id",
15 "key_algorithm": "RSA_2048",
16 "public_key": "-----BEGIN PUBLIC KEY-----\nMIIwID....AQAB\n-----END PUBLIC KEY-----\n",
17 "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE....1ZPJeBLt+\n-----END PRIVATE KEY-----\n"
18 }
19masterNodeGroup:
20 replicas: 1
21 instanceClass:
22 cores: 4
23 memory: 8192
24 imageID: <IMAGE_ID>
25 externalIPAddresses:
26 - "1.1.1.1"
27 - "Auto"
28 externalSubnetID: <EXTERNAL_SUBNET_ID>
29 zones:
30 - ru-central1-a
31 - ru-central1-b
32nodeGroups:
33- name: worker
34 replicas: 1
35 instanceClass:
36 cores: 4
37 memory: 8192
38 imageID: <IMAGE_ID>
39 coreFraction: 50
40 externalIPAddresses:
41 - "1.1.1.1"
42 - "Auto"
43 externalSubnetID: <EXTERNAL_SUBNET_ID>
44 zones:
45 - ru-central1-a
46sshPublicKey: "<SSH_PUBLIC_KEY>"
47nodeNetworkCIDR: 192.168.12.13/24
48existingNetworkID: <EXISTING_NETWORK_ID>
49dhcpOptions:
50 domainName: test.local
51 domainNameServers:
52 - 8.8.8.8
53 - 8.8.4.4