Для того чтобы Deckhouse Kubernetes Platform (DKP) мог управлять ресурсами в Yandex Cloud, необходимо:
- создать сервисный аккаунт;
- назначить ему необходимые IAM-роли;
- сгенерировать авторизационный ключ;
- при необходимости — зарезервировать публичный IP-адрес;
- обеспечить достаточные квоты на ресурсы в облаке.
Ниже приведены пошаговые действия по настройке подключения.
Подготовка окружения
Провайдер поддерживает работу только с одним диском в шаблоне виртуальной машины. Убедитесь, что шаблон содержит только один диск.
На виртуальных машинах должен быть установлен пакет cloud-init
. После запуска виртуальной машины должны быть запущены службы, связанные с этим пакетом:
cloud-config.service
;cloud-final.service
;cloud-init.service
.
Чтобы проверить, запущены ли службы, выполните команды:
systemctl status cloud-config.service
systemctl status cloud-final.service
systemctl status cloud-init.service
Создание сервисного аккаунта
Для управления ресурсами в Yandex Cloud через DKP создайте сервисный аккаунт и выдайте ему права на редактирование. Подробную инструкцию по созданию сервисного аккаунта смотрите в документации Yandex Cloud.
Для создания сервисного аккаунта выполните команду:
yc iam service-account create --name deckhouse
Команда вернёт информацию о созданном сервисном аккаунте:
id: <userID>
folder_id: <folderID>
created_at: "YYYY-MM-DDTHH:MM:SSZ"
name: deckhouse
Сохраните userID
и folderID
— они понадобятся в следующих шагах.
Назначение IAM-ролей
Для работы DKP с ресурсами облака назначьте сервисному аккаунту следующие роли:
yc resource-manager folder add-access-binding --id <folderID> --role compute.editor --subject serviceAccount:<userID>
yc resource-manager folder add-access-binding --id <folderID> --role vpc.admin --subject serviceAccount:<userID>
yc resource-manager folder add-access-binding --id <folderID> --role load-balancer.editor --subject serviceAccount:<userID>
Генерация авторизованного ключа
Создайте JSON-файл с авторизацией для использования в конфигурации:
yc iam key create --service-account-name deckhouse --output deckhouse-sa-key.json
Содержимое файла deckhouse-sa-key.json
используйте в поле provider.serviceAccountJSON
при описании конфигурации кластера.
Проверка и увеличение квот
Убедитесь, что облачный аккаунт имеет необходимые квоты для развёртывания и масштабирования:
- Виртуальные процессоры: 64
- Объём SSD-дисков: 2000 ГБ
- Количество ВМ: 25
- Объём RAM: 256 ГБ
Увеличьте квоты через консоль Yandex Cloud, если необходимо.
Резервирование публичного IP
Если используется схема размещения WithoutNAT или WithNATInstance, и требуется фиксированный внешний IP-адрес (например, для указания в externalIPAddresses
, natInstanceExternalAddress
или для bastion-хоста), выполните команду:
yc vpc address create --external-ipv4 zone=ru-central1-a
Пример вывода команды:
id: e9b4cfmmnc1mhgij75n7
folder_id: b1gog0h9k05lhqe5d88l
created_at: "2020-09-01T09:29:33Z"
external_ipv4_address:
address: 178.154.226.159
zone_id: ru-central1-a
requirements: {}
reserved: true
После выполнения этих шагов у вас будут все необходимые данные для формирования ресурса YandexClusterConfiguration, описывающего кластер в Yandex Cloud.