Crie uma VPC e um cluster com o Terraform

Vista geral

O Terraform é uma ferramenta de código aberto para configurar ambientes na nuvem, como a AWS, e instalar software, como o Kubernetes, nesses ambientes. Pode configurar o seu ambiente da AWS e criar os seus clusters no mesmo com o Terraform ou com as instruções de instalação do GKE na AWS.

Esta página descreve como usar o Terraform para configurar o seu ambiente AWS e instalar um cluster através de uma configuração de exemplo armazenada no GitHub. Esta página destina-se a administradores de TI e operadores que querem configurar, monitorizar e gerir a infraestrutura na nuvem, automatizar implementações e usar modelos e configuração declarativa. Para saber mais acerca das funções comuns e das tarefas de exemplo que referimos no Google Cloud conteúdo, consulte Funções e tarefas comuns do utilizador do GKE.

Para usar estes scripts, precisa de ter conhecimentos básicos do Terraform. Em particular, tem de editar os ficheiros de configuração do Terraform para adicionar as suas próprias informações de utilizador e projeto, bem como fazer as alterações necessárias à configuração predefinida do cluster.

Para configurar o seu ambiente AWS e criar clusters sem usar o Terraform, consulte a vista geral dos pré-requisitos da AWS e as instruções para criar um cluster.

O que os scripts fazem

Este script configura o Terraform para criar uma VPC da AWS e implementar um cluster na mesma. A VPC resultante cumpre 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 manual da VPC da Google.

O conjunto de clusters criado pelo script tem as seguintes caraterísticas:

  • Três nós do plano de controlo (um em cada uma das três zonas de disponibilidade configuradas). Estes nós são do tipo t3.large.
  • Um conjunto de nós com dois nós do tipo t3.large. Este conjunto de nós está implementado na região da AWS us-east-1 e pode ser dimensionado automaticamente para cinco nós.

Como alterar a VPC e o cluster predefinidos

Pode alterar as caraterísticas da VPC e do cluster criados pelos scripts do Terraform editando os ficheiros do Terraform adequados.

  • Ajuste a região e as zonas de disponibilidade editando o ficheiro variables.tf.
  • Altere o tipo de instância da AWS.
  • Altere as caraterísticas da VPC, incluindo as sub-redes, as zonas de disponibilidade e o equilibrador de carga, editando os ficheiros na subpasta modules/vpc.

Para ver uma lista das regiões da AWS controladas a partir de uma determinada Google Cloud região e as respetivas versões do Kubernetes associadas, execute o seguinte comando:

gcloud container aws get-server-config --location `GOOGLE_CLOUD_REGION`

Substitua GOOGLE_CLOUD_REGION pelo nome da Google Cloud região a partir da qual quer que o GKE no AWS controle o seu cluster.

Pré-requisitos

  1. Instale a CLI do Google Cloud com as instruções de instalação da CLI do Google Cloud. Se já a instalou, siga estas instruções para se certificar de que está a usar a versão 412.0.0 ou superior.

  2. Instale a CLI da AWS com as instruções de instalação da CLI da AWS.

  3. Crie as suas chaves de acesso da AWS.

  4. Configure o seu ambiente AWS local com o seguinte comando:

    aws configure
    

Prepare o Terraform

  1. 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
    
  2. Ative os serviços necessários no seu Google Cloud projeto.

    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 GOOGLE_PROJECT_ID pelo ID do seu projeto Google.

  3. Faça uma cópia local do repositório e altere para a pasta AWS:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples.git
    cd anthos-samples/anthos-multi-cloud/AWS
    

Implemente o GKE no AWS

  1. Edite as seguintes linhas no ficheiro terraform.tfvars para substituir os valores predefinidos:

    gcp_project_id = GOOGLE_PROJECT_ID
    admin_users = ["GCP_ACCOUNT_EMAIL"]
    cluster_version = GKE_VERSION
    

    Substitua o seguinte:

    • GOOGLE_PROJECT_ID: o ID do seu projeto Google. Pode encontrar esta opção no lado esquerdo da página do painel de controlo da Google Cloud consola.

    • ACCOUNT_EMAILS: uma lista de endereços de email separados por vírgulas que podem iniciar sessão nos clusters após a sua criação, por exemplo, "admin@example.com","operator@example.com". Pelo menos uma morada tem de ter uma Google Cloud conta. Para adicionar fornecedores de identidade adicionais ao seu cluster, consulte o artigo Faça a gestão da identidade com o serviço de identidade do GKE.

    • GKE_VERSION: uma versão suportada do GKE para a região escolhida. Para encontrar as versões suportadas, consulte o artigo Versões e apoio técnico do GKE on AWS.

  2. Inicialize e crie o plano do Terraform:

    terraform init
    

    O Terraform instala todas as bibliotecas necessárias, como o Google Cloud fornecedor.

  3. Aplique o plano do Terraform para criar a nuvem privada virtual da AWS e o cluster:

    terraform apply
    

    Siga as instruções para começar a criar um cluster.

A instalação demora cerca de 12 minutos. Quando o Terraform conclui a criação do seu AWS Virtual Private Cloud e cluster, imprime informações sobre o cluster e cria um ficheiro denominado var.sh. Pode usar os valores neste ficheiro se criar pools de nós adicionais.

Para verificar se o cluster foi criado com êxito, aguarde que seja apresentado na página do Kubernetes Engine da Google Cloud consola no seu Google Cloud projeto.

Ligue-se ao seu cluster

Para validar a conetividade ao cluster e obter os respetivos detalhes, execute o seguinte comando:

   gcloud container fleet memberships get-credentials CLUSTER_NAME
   kubectl get nodes

Substitua CLUSTER_NAME pelo nome do seu cluster. Pode encontrar o nome do cluster no ficheiro de saída do var.sh Terraform.

O resultado inclui uma lista de nós no cluster e o respetivo estado.

Elimine o cluster e a nuvem privada virtual da AWS

Antes de eliminar o cluster e a nuvem privada virtual da AWS, tem de remover todos os seguintes elementos:

  • Todos os balanceadores de carga da AWS ativos na nuvem privada virtual da AWS
  • Quaisquer node pools adicionais no seu cluster que não tenham sido criados com o Terraform
  • Quaisquer clusters adicionais na nuvem privada virtual da AWS que não tenham sido criados com o Terraform

Para remover o cluster e a nuvem privada virtual da AWS que criou com o Terraform, execute o seguinte comando:

terraform destroy

O Terraform esgota as cargas de trabalho dos seus nós, elimina o cluster e o node pool principal, e elimina a sua nuvem privada virtual da AWS.

Autorize o Cloud Logging e o Cloud Monitoring

Se quiser ativar o Cloud Logging e o Cloud Monitoring, tem de adicionar uma política de autorização ao seu Google Cloud projeto 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 pelo ID do seu projeto.

Passos seguintes

Para mais informações sobre os scripts do Terraform GKE on AWS, consulte