Aprovisione recursos do GKE com o Terraform

O HashiCorp Terraform é uma ferramenta de infraestrutura como código (IaC) que lhe permite aprovisionar e gerir a infraestrutura na nuvem. O Terraform oferece plug-ins denominados fornecedores que lhe permitem interagir com fornecedores de nuvem e outras APIs. Pode usar o fornecedor do Terraform para Google Cloud aprovisionar e gerir Google Cloud recursos, incluindo o GKE.

Esta página apresenta a utilização do Terraform com o GKE, incluindo uma introdução ao funcionamento do Terraform e alguns recursos para ajudar a começar a usar o Terraform com o Google Cloud. Também encontra links para documentos de referência do Terraform para o GKE, exemplos de código e guias para usar o Terraform para aprovisionar recursos do GKE.

Para obter instruções sobre como começar a usar o Terraform para o Google Cloud, consulte o artigo Instale e configure o Terraform ou o Início rápido do Terraform para o Google Cloud .

Como funciona o Terraform

O Terraform tem uma sintaxe declarativa e orientada para a configuração, que pode usar para descrever a infraestrutura que quer aprovisionar no seu Google Cloud projeto. Depois de criar esta configuração num ou mais ficheiros de configuração do Terraform, pode usar a CLI do Terraform para aplicar esta configuração aos seus recursos do GKE.

Os passos seguintes explicam como funciona o Terraform:

  1. Descreve a infraestrutura que quer aprovisionar num ficheiro de configuração do Terraform. Não precisa de escrever código que descreva como aprovisionar a infraestrutura. O Terraform aprovisiona a infraestrutura por si.
  2. Executa o comando terraform plan, que avalia a sua configuração e gera um plano de execução. Pode rever o plano e fazer alterações conforme necessário.
  3. Executa o comando terraform apply, que realiza as seguintes ações:

    1. Aprovisiona a sua infraestrutura com base no seu plano de execução invocando as APIs GKE correspondentes em segundo plano.
    2. Cria um ficheiro de estado do Terraform, que é um ficheiro JSON que mapeia os recursos no seu ficheiro de configuração para os recursos na infraestrutura do mundo real. O Terraform usa este ficheiro para manter um registo do estado mais recente da sua infraestrutura e para determinar quando criar, atualizar e destruir recursos.
    3. Quando executa terraform apply, o Terraform usa o mapeamento no ficheiro de estado para comparar a infraestrutura existente com o código e fazer atualizações conforme necessário:

      • Se um objeto de recurso estiver definido no ficheiro de configuração, mas não existir no ficheiro de estado, o Terraform cria-o.
      • Se um objeto de recurso existir no ficheiro de estado, mas tiver uma configuração diferente da do ficheiro de configuração, o Terraform atualiza o recurso para corresponder ao ficheiro de configuração.
      • Se um objeto de recurso no ficheiro de estado corresponder ao seu ficheiro de configuração, o Terraform deixa o recurso inalterado.

Recursos do Terraform para o GKE

Os recursos são os elementos fundamentais na linguagem Terraform. Cada bloco de recursos descreve um ou mais objetos de infraestrutura, como redes virtuais ou instâncias de computação.

A tabela seguinte indica os recursos do Terraform disponíveis para o GKE:

Produto ou serviço do GKE Recurso do Terraform
Google Kubernetes Engine google_container_cluster
google_container_node_pool
google_gke_hub_feature
google_gke_hub_feature_iam
google_gke_hub_feature_membership
google_gke_hub_fleet
google_gke_hub_membership
google_gke_hub_membership_binding
google_gke_hub_membership_iam
google_gke_hub_membership_rbac_role_binding
google_gke_hub_namespace
google_gke_hub_namespace
google_gke_hub_scope
google_gke_hub_scope_iam
google_gke_hub_scope_rbac_role_binding
Cópia de segurança do GKE google_gke_backup_backup_plan
google_gke_backup_backup_plan_iam
google_gke_backup_restore_plan
google_gke_backup_restore_plan_iam

Guias baseados no Terraform para o GKE

A tabela seguinte lista os guias de instruções e os tutoriais baseados no Terraform para o GKE:

Guia Detalhes
Crie um cluster do GKE e implemente uma carga de trabalho com o Terraform Explica como criar um cluster do Google Kubernetes Engine (GKE) Autopilot e implementar uma carga de trabalho através do Terraform.
Aprovisione o Cloud Service Mesh num cluster do GKE Autopilot Descreve como configurar a malha de serviços do Google Cloud gerida num cluster do GKE Autopilot.
Crie e faça a gestão de etiquetas de clusters e node pools Explica como criar um cluster com etiquetas.
Faça a gestão dos recursos do GKE através de etiquetas Explica como usar etiquetas para gerir os seus clusters do GKE.
Crie um cluster do Autopilot Explica como criar um cluster do GKE no Autopilot.
Execute GPUs em pools de nós padrão do GKE Explica como executar e otimizar as suas cargas de trabalho com utilização intensiva de computação, como inteligência artificial (IA) e processamento de gráficos, anexando e usando aceleradores de hardware da unidade de processamento gráfico (GPU) da NVIDIA® nos nós dos seus clusters padrão do GKE.
Use discos de arranque secundários para pré-carregar dados ou imagens de contentores Explica como melhorar a latência de arranque da carga de trabalho através de discos de arranque secundários.
Crie um cluster nativo de VPC Explica como configurar clusters nativos de VPC no GKE.
Implemente cargas de trabalho de TPU no GKEStandard Explica como pedir e implementar cargas de trabalho de aprendizagem automática (AA) e inteligência artificial (IA) de grande escala, preparação, otimização e inferência usando aceleradores de TPU (TPUs) do Cloud em clusters padrão do GKE.
Crie um balanceador de carga interno Explica como criar um balanceador de carga de rede de passagem interno ou um balanceador de carga interno no GKE.
Adicione e faça a gestão de node pools Explica como adicionar e realizar operações em conjuntos de nós que executam os seus clusters padrão do GKE.
Crie clusters e node pools com nós Arm Explica como criar um cluster padrão do GKE ou um conjunto de nós com nós Arm para poder executar cargas de trabalho Arm no GKE.
Consumir recursos zonais reservados Explica como consumir recursos reservados do Compute Engine no GKE.
Implemente uma base de dados PostgreSQL de elevada disponibilidade no GKE Descreve a implementação de uma topologia do PostgreSQL de elevada disponibilidade no GKE. O PostgreSQL é uma base de dados relacional de objetos de código aberto conhecida pela fiabilidade e integridade de dados.
Especifique uma imagem do nó Explica como especificar uma imagem de nó para nós em clusters padrão do GKE.
Criar um cluster com node pools do Windows Server Explica como criar um cluster do GKE com pools de nós que executam o Microsoft Windows Server.
Executar GPUs multi-instância Explica como aumentar a utilização e reduzir os custos através da execução de GPUs de várias instâncias.
Sequencie a implementação de atualizações de clusters Explica como gerir as atualizações de clusters do GKE através da sequenciação de implementações.
Criar um cluster zonal Explica como criar um cluster zonal padrão com as funcionalidades predefinidas ativadas no GKE.
Configure as redes para um cluster de produção básico Descreve como implementar uma aplicação Web num cluster do GKE e expô-la com um balanceador de carga HTTPS.
Recolha e veja métricas do plano de controlo Descreve como configurar um cluster do GKE para enviar métricas emitidas pelo servidor da API Kubernetes, pelo Scheduler e pelo Controller Manager para o Cloud Monitoring através do Google Cloud Managed Service for Prometheus.
Recolha e veja métricas do cAdvisor/Kubelet Descreve como configurar um cluster do Google Kubernetes Engine (GKE) para enviar um conjunto organizado de métricas do cAdvisor/Kubelet para o Cloud Monitoring através do Google Cloud Managed Service for Prometheus.
Ajuste o débito de registos Descreve o débito de registos predefinido e como aumentá-lo.
Ative a cópia de segurança do GKE para um cluster Descreve como ativar a cópia de segurança do GKE para um cluster.
Modifique os recursos durante a restauração Descreve como fazer modificações aos recursos do Kubernetes durante o processo de restauro através de regras de transformação.
Ative o modo permissivo num plano de contingência Explica como ativar o modo permissivo num plano de segurança.
Ativar API Backup for GKE Descreve como ativar a cópia de segurança do GKE.
Planeie um conjunto de cópias de segurança Descreve como criar um plano de cópia de segurança do Backup for GKE, que é usado para fazer cópias de segurança das suas cargas de trabalho no GKE.

Módulos e projetos do Terraform para o GKE

Os módulos e os esquemas ajudam a automatizar o aprovisionamento e a gestão de Google Cloud recursos em grande escala. Um módulo é um conjunto reutilizável de ficheiros de configuração do Terraform que cria uma abstração lógica dos recursos do Terraform. Um projeto é um pacote de módulos implementáveis e reutilizáveis, bem como uma política que implementa e documenta uma solução específica.

A tabela seguinte lista os módulos e os esquemas relacionados com o GKE:

Módulo ou planta Detalhes
terraform-google-kubernetes-engine Configura clusters do GKE opinativos.
terraform-google-gke-gitlab Instala o GitLab no GKE.

O que se segue?