Как поднять пиринговое соединение между VPC?
Для примера рассмотрим настройку пирингового соединения между двумя условными VPC — vpc-a и vpc-b.
Важно! IPv4 CIDR у обоих VPC должен различаться.
Для настройки выполните следующие шаги:
- Перейдите в регион, где работает vpc-a.
- Нажмите
VPC
->VPC Peering Connections
->Create Peering Connection
и настройте пиринговое соединение:- Name:
vpc-a-vpc-b
. - Заполните
Local
иAnother VPC
.
- Name:
- Перейдите в регион, где работает vpc-b.
- Нажмите
VPC
->VPC Peering Connections
. - Выделите созданное соединение и выберите
Action "Accept Request"
. - Для vpc-a добавьте во все таблицы маршрутизации маршруты до CIDR vpc-b через пиринговое соединение.
- Для vpc-b добавьте во все таблицы маршрутизации маршруты до CIDR vpc-a через пиринговое соединение.
Как создать кластер в новом VPC с доступом через имеющийся bastion-хост?
-
Выполнить bootstrap базовой инфраструктуры кластера:
dhctl bootstrap-phase base-infra --config config
-
Поднять пиринговое соединение по инструкции выше.
-
Продолжить установку кластера. На вопрос про кэш Terraform ответить
y
:dhctl bootstrap --config config --ssh-...
Как создать кластер в новом VPC и развернуть bastion-хост для доступа к узлам?
-
Выполнить bootstrap базовой инфраструктуры кластера:
dhctl bootstrap-phase base-infra --config config
-
Запустить вручную bastion-хост в subnet
-public-0. -
Продолжить установку кластера. На вопрос про кэш Terraform ответить
y
:dhctl bootstrap --config config --ssh-...
Особенности настройки bastion
Поддерживаются сценарии:
- bastion-хост уже создан во внешней VPC:
- Создайте базовую инфраструктуру кластера —
dhctl bootstrap-phase base-infra
. - Настройте пиринговое соединение между внешней и свежесозданной VPC.
- Продолжите установку с указанием bastion-хоста —
dhctl bootstrap --ssh-bastion...
.
- Создайте базовую инфраструктуру кластера —
- bastion-хост требуется поставить в свежесозданной VPC:
- Создайте базовую инфраструктуру кластера —
dhctl bootstrap-phase base-infra
. - Запустите вручную bastion-хост в subnet
-public-0. - Продолжите установку с указанием bastion-хоста —
dhctl bootstrap --ssh-bastion...
.
- Создайте базовую инфраструктуру кластера —
Добавление CloudStatic-узлов в кластер
Для добавления виртуальной машины в качестве узла в кластер выполните следующие шаги:
- Прикрепите группу безопасности
<prefix>-node
к виртуальной машине. - Прикрепите IAM-роль
<prefix>-node
к виртуальной машине. -
Укажите следующие теги у виртуальной машины (чтобы
cloud-controller-manager
смог найти виртуальные машины в облаке):"kubernetes.io/cluster/<cluster_uuid>" = "shared" "kubernetes.io/cluster/<prefix>" = "shared"
-
Узнать
cluster_uuid
можно с помощью команды:kubectl -n kube-system get cm d8-cluster-uuid -o json | jq -r '.data."cluster-uuid"'
-
Узнать
prefix
можно с помощью команды:kubectl -n kube-system get secret d8-cluster-configuration -o json | jq -r '.data."cluster-configuration.yaml"' \ | base64 -d | grep prefix
-
Как увеличить размер volume в кластере?
Задайте новый размер в соответствующем ресурсе PersistentVolumeClaim в параметре spec.resources.requests.storage
.
Операция проходит полностью автоматически и занимает до одной минуты. Никаких дополнительных действий не требуется.
За ходом процесса можно наблюдать в events через команду kubectl describe pvc
.
После изменения volume нужно подождать не менее шести часов и убедиться, что volume находится в состоянии
in-use
илиavailable
, прежде чем станет возможно изменить его еще раз. Подробности можно найти в официальной документации.
Как настроить доступ к репозиторию Amazon ECR на узлах кластера
Под репозиторием Amazon ECR подразумевается Amazon ECR repository.
-
Задайте права для чтения образов в Repository policies. В
Principal
должен быть существующий объектRoles
.{ "Version": "2012-10-17", "Statement": [ { "Sid": "RepositoryRead", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::xxx:role/xxx-node" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:DescribeImages", "ecr:DescribeRepositories", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:ListImages", "ecr:ListTagsForResource" ] } ] }
Примените эту политику в
Amazon ECR
>Private registry
>Repositories
> `` >Permissions
. -
Добавьте
ecr:GetAuthorizationToken
в additionalRolePolicies.