Разворачивание кластера в GCP:
wget https://releases.hashicorp.com/terraform/0.13.1/terraform_0.13.1_linux_amd64.zip unzip ./terraform_0.13.1_linux_amd64.zip sudo mv ./terraform /usr/local/bin/terraform echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y install google-cloud-sdk kubectl gcloud init
gcloud выдаст ссылку, которую надо будет открыть в браузере, согласиться выдать разрешения и скопировать verification code.
Выбираем зону 1 (us-east1-b) и тип машин будем юзать e2-standard-2 (2vCPU, 8GB RAM).
Включаем необходимые APIшки:
gcloud services enable compute.googleapis.com gcloud services enable servicenetworking.googleapis.com #gcloud services enable cloudresourcemanager.googleapis.com #gcloud services enable container.googleapis.com
Теперь можно получить токен, с которым будем ходить в GCP.
gcloud auth print-access-token
И в дальнейшем полученную строку будем юзать в качестве значения параметра access_token в конфиге terraform-провайдера google.
По сетевой части нашлось вот что: https://github.com/Wi3ard/k8s-nginx-ingress/blob/gke-gdns-certmgr-wildcard/main.tf
https://www.terraform.io/docs/providers/google/r/compute_global_forwarding_rule.html#
Создадим Service Account:
gcloud iam service-accounts create otus-course-project --display-name "Otus Course Project Service Account"
И посмотрим какие с ней связаны ключи:
gcloud iam service-accounts keys list --iam-account=otus-course-project@otus-kuber-course.iam.gserviceaccount.com
Сгенерируем новый (https://cloud.google.com/sdk/gcloud/reference/iam/service-accounts/keys/create):
gcloud iam service-accounts keys create ./otus-kubernetes-course.yaml --iam-account=otus-course-project@otus-kuber-course.iam.gserviceaccount.com
В результате - получим файлик otus-kubernetes-course.yaml, который уже может быть использован terraform.
И потом активируем его:
gcloud auth activate-service-account otus-course-project@otus-kuber-course.iam.gserviceaccount.com --key-file=./otus-kubernetes-course.yaml
Также можно привязать уже имеющийся файлик примерно вот так: https://cloud.google.com/sdk/gcloud/reference/auth/activate-service-account .
В дальнейшем переключаться между аккаунтами можно так:
gcloud config set account otus-course-project@otus-kuber-course.iam.gserviceaccount.com