Visão geral
O Terraform é uma ferramenta de código aberto para configurar ambientes em nuvem, como a AWS, e instalar software neles, como o Kubernetes. É possível configurar o ambiente da AWS e criar seus clusters nele com as instruções de instalação do GKE na AWS ou com o Terraform.
Nesta página, descrevemos como usar o Terraform para configurar o ambiente da AWS e instalar um cluster usando uma configuração de amostra armazenada no GitHub. Para usar esses scripts, é preciso ter uma familiaridade básica com o Terraform. Especificamente, é preciso editar os arquivos de configuração do Terraform para adicionar suas próprias informações de usuário e projeto e fazer as mudanças necessárias na configuração padrão do cluster.
Para configurar seu ambiente da AWS e criar clusters sem usar o Terraform, consulte a Visão geral dos pré-requisitos da AWS e as instruções para criar um cluster.
O que os scripts fazem
Esse script configura o Terraform para criar uma VPC da AWS e implantar um cluster nela. A VPC resultante atende a todos os pré-requisitos do GKE na AWS e tem a mesma topologia de rede que a VPC criada pelas instruções de criação da VPC manual do Google.
O cluster que o conjunto de scripts cria tem as seguintes características:
- Três nós do plano de controle (um em cada uma das três zonas de disponibilidade configuradas). Esses nós são do tipo t3.large.
- Um pool de nós com dois nós do tipo t3.large.
Esse pool de nós é implantado na região
us-east-1
da AWS e pode ser escalonado automaticamente para cinco nós.
Como alterar o cluster e a VPC padrão
É possível alterar as características da VPC e do cluster criados pelos scripts do Terraform editando os arquivos apropriados do Terraform.
- Ajuste as zonas de região e disponibilidade editando o arquivo
variables.tf
. - Altere o tipo de instância da AWS.
- Altere as características da VPC, incluindo as sub-redes, zonas de disponibilidade e balanceador de carga, editando os arquivos na subpasta
modules/vpc
.
Para ver uma lista de regiões da AWS controladas em uma determinada região do Google Cloud e nas versões associadas do Kubernetes, execute o seguinte comando:
gcloud container aws get-server-config --location `GOOGLE_CLOUD_REGION`
Substitua GOOGLE_CLOUD_REGION
pelo nome da região do Google Cloud pela qual você quer que o GKE na AWS controle seu cluster.
Pré-requisitos
Instale a Google Cloud CLI seguindo as instruções de instalação da Google Cloud CLI. Se você já tiver instalado, siga essas instruções para verificar se está executando a versão 412.0.0 ou mais recente.
Instale a CLI da AWS de acordo com as instruções de instalação da CLI da AWS.
Crie suas chaves de acesso da AWS.
Configure seu ambiente da AWS local com o seguinte comando:
aws configure
Preparar o Terraform
Configure a autenticação da Google Cloud CLI executando os seguintes comandos:
gcloud config set project GOOGLE_PROJECT_ID gcloud auth application-default login --no-launch-browser
Ative as APIs necessárias no seu projeto do Google Cloud:
gcloud --project="GOOGLE_PROJECT_ID" services enable \ gkemulticloud.googleapis.com \ gkeconnect.googleapis.com \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com \ anthos.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com
Substitua o
GOOGLE_PROJECT_ID
pelo ID do projeto do Google.Faça uma cópia local do repositório e mude para a pasta
AWS
:git clone https://github.com/GoogleCloudPlatform/anthos-samples.git cd anthos-samples/anthos-multi-cloud/AWS
Implantar o GKE na AWS
Edite as seguintes linhas no arquivo
terraform.tfvars
para substituir os valores padrão:gcp_project_id = GOOGLE_PROJECT_ID admin_users = ["GCP_ACCOUNT_EMAIL"]
Substitua:
GOOGLE_PROJECT_ID
: o ID do projeto do Google. É possível encontrá-lo no lado esquerdo da página do painel do Console do Google Cloud.ACCOUNT_EMAILS
: uma lista separada por vírgulas de endereços de e-mail que podem fazer login nos clusters depois de criados, por exemplo,"admin@example.com","operator@example.com"
. Pelo menos um endereço precisa ter uma conta do Google Cloud. Para adicionar outros provedores de identidade ao cluster, consulte Gerenciar identidade com o serviço de identidade do GKE.
Inicialize e crie o plano do Terraform:
terraform init
O Terraform instala todas as bibliotecas necessárias, como o provedor do Google Cloud.
Aplique o plano do Terraform para criar a nuvem privada virtual e o cluster da AWS:
terraform apply
Siga as instruções para começar a criar um cluster.
A instalação leva cerca de 12 minutos. Quando o Terraform conclui a criação da
nuvem privada virtual e do cluster da AWS, ele imprime informações no cluster e cria um
arquivo chamado var.sh
. É possível usar os valores nesse arquivo se você criar pools de nós adicionais.
Para verificar se o cluster foi criado com êxito, verifique se ele aparece na página do Kubernetes Engine do Console do Google Cloud no seu projeto do Google Cloud.
Conectar-se ao seu cluster
Para verificar a conectividade com o cluster e buscar os detalhes, execute o seguinte comando:
gcloud container fleet memberships get-credentials CLUSTER_NAME
kubectl get nodes
Substitua CLUSTER_NAME
pelo nome do cluster. É possível encontrar o nome do cluster no arquivo de saída var.sh
do Terraform.
A saída inclui uma lista de nós no cluster e seu status.
Excluir o cluster e a nuvem privada virtual da AWS
Antes de excluir o cluster e a nuvem privada virtual da AWS, remova todos estes recursos:
- Todos os balanceadores de carga ativos da AWS na nuvem privada virtual da AWS
- Todos os pools de nós adicionais no cluster que não foram criados com o Terraform
- Todos os clusters adicionais na nuvem privada virtual da AWS não criados com o Terraform
Para remover o cluster e a nuvem privada virtual da AWS criados com o Terraform, execute o seguinte comando:
terraform destroy
O Terraform drena cargas de trabalho dos seus nós, exclui o pool de nós principal e o cluster e exclui a nuvem privada virtual da AWS.
Autorizar o Cloud Logging e o Cloud Monitoring
Se você quiser ativar o Cloud Logging e o Cloud Monitoring, adicione uma política de permissão ao seu projeto do Google Cloud depois de criar um cluster.
Adicione uma política de permissão com a CLI do Google Cloud:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter
Substitua PROJECT_ID
pela ID do seu projeto.
Próximas etapas
- Para saber mais sobre a geração de registros de eventos de cluster centralizada do Google, consulte Cloud Logging.
- Para ler sobre as ferramentas do Cloud Monitoring do Google, consulte Cloud Monitoring.
- Para instalar o gerenciamento de configuração centralizado, consulte Configurar um cluster com o Config Controller.
Para mais informações sobre o Terraform GKE em scripts da AWS, consulte