Как поднять пиринговое соединение между 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можно с помощью команды:d8 k -n kube-system get cm d8-cluster-uuid -o json | jq -r '.data."cluster-uuid"' -
Узнать
prefixможно с помощью команды:d8 k -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 через команду d8 k 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.