На виртуальных машинах должен быть установлен пакет cloud-init.
После запуска виртуальной машины должны быть запущены следующие службы, связанные с этим пакетом:
cloud-config.service;cloud-final.service;cloud-init.service.
Чтобы Deckhouse мог управлять ресурсами, в Google Cloud необходимо создать service account. Далее представлена краткая последовательность действий по созданию service account. Если вам необходима более подробная инструкция, вы можете найти ее в документации провайдера.
Внимание! Созданный service account key невозможно восстановить, только удалить и создать новый.
Провайдер поддерживает работу только с одним диском в шаблоне виртуальной машины. Убедитесь, что шаблон содержит только один диск.
Настройка через Google Cloud Console
Перейдите по ссылке, выберите проект и создайте новый service account (также можно выбрать уже существующий).
Созданному service account’у должны быть присвоены несколько необходимых ролей:
Compute Admin
Service Account User
Network Management Admin
Роли можно присвоить на этапе создания service account’а либо изменить на этой странице.
Чтобы получить service account key в JSON-формате, на странице в колонке Actions нажмите на три вертикальные точки и выберите Manage keys. Затем нажмите Add key -> Create new key -> Key type -> JSON.
Настройка через gcloud CLI
Для настройки через интерфейс командной строки выполните следующие шаги:
-
Экспортируйте переменные окружения:
export PROJECT_ID=sandbox export SERVICE_ACCOUNT_NAME=deckhouse -
Выберите project:
gcloud config set project $PROJECT_ID -
Создайте service account:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME -
Присвойте роли созданному service account:
for role in roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin; do gcloud projects add-iam-policy-binding ${PROJECT_ID} --member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com \ --role=${role}; doneСписок необходимых ролей:
roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin -
Выполните проверку ролей service account:
gcloud projects get-iam-policy ${PROJECT_ID} --flatten="bindings[].members" --format='table(bindings.role)' \ --filter="bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" -
Создайте
service account key:gcloud iam service-accounts keys create --iam-account ${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com \ ~/service-account-key-${PROJECT_ID}-${SERVICE_ACCOUNT_NAME}.json