Hashicorp Terraform é uma ferramenta de infraestrutura como código (IaC, na sigla em inglês) que permite provisionar e gerenciar infraestrutura em nuvem. O Terraform fornece plug-ins chamados provedores, que permitem interagir com provedores de nuvem e outras APIs. É possível usar o provedor do Terraform para Google Cloud para provisionar e gerenciar recursos do Google Cloud , incluindo o GKE.
Esta página apresenta o uso do Terraform com o GKE, incluindo uma introdução sobre como o Terraform funciona e alguns recursos para ajudar você a começar a usar o Terraform com o Google Cloud. Também há links para documentos de referência do Terraform para o GKE, exemplos de código e guias para usar o Terraform para provisionar recursos do GKE.
Para instruções sobre como começar a usar o Terraform para Google Cloud, consulte Instalar e configurar o Terraform ou o Primeiros passos com o Terraform para Google Cloud .
Como o Terraform funciona
O Terraform tem uma sintaxe declarativa e orientada pela configuração, que pode ser usada para descrever a infraestrutura que você quer provisionar no projeto do Google Cloud . Depois de criar essa configuração em um ou mais arquivos de configuração do Terraform, use a CLI do Terraform para aplicá-la aos recursos do GKE.
As etapas a seguir explicam como o Terraform funciona:
- Você descreve a infraestrutura que quer provisionar em um arquivo de configuração do Terraform. Não é preciso escrever código descrevendo como provisionar a infraestrutura. O Terraform provisiona a infraestrutura para você.
- Você executa o comando
terraform plan
, que avalia sua configuração e gera um plano de execução. É possível analisar o plano e fazer alterações conforme necessário. -
Você executará o comando
terraform apply
, que realiza as seguintes ações:- Ele provisiona sua infraestrutura com base no plano de execução invocando as APIs GKE correspondentes em segundo plano.
- Ele cria um arquivo de estado do Terraform, que é um arquivo JSON que mapeia os recursos no arquivo de configuração aos recursos na infraestrutura do mundo real. O Terraform usa esse arquivo para manter um registro do estado mais recente da sua infraestrutura e determinar quando criar, atualizar e destruir recursos.
-
Ao executar
terraform apply
, o Terraform usa o mapeamento no arquivo de estado para comparar a infraestrutura atual com o código e fazer atualizações conforme necessário:- Se um objeto de recurso for definido no arquivo de configuração, mas não existir no arquivo de estado, o Terraform o criará.
- Se há um objeto de recurso no arquivo de estado, mas tem uma configuração diferente do arquivo de configuração, o Terraform atualiza o recurso para corresponder ao arquivo de configuração.
- Se um objeto de recurso no arquivo de estado corresponder ao seu arquivo de configuração, o Terraform deixará o recurso inalterado.
Recursos do Terraform para GKE
Recursos são os elementos fundamentais da linguagem do Terraform. Cada no bloco "resource", que descreve um ou mais objetos de infraestrutura, como ou instâncias de computação.
A tabela a seguir lista os recursos do Terraform disponíveis para o GKE:
Guias baseados no Terraform para o GKE
A tabela a seguir lista guias e tutoriais do Terraform para o GKE:
Guia | Detalhes |
---|---|
Criar um cluster do GKE e implantar uma carga de trabalho usando o Terraform | Explica como criar um cluster do Autopilot do Google Kubernetes Engine (GKE) e implantar uma carga de trabalho usando o Terraform. |
Provisionar o Cloud Service Mesh em um cluster do Autopilot do GKE | Descreve como configurar o Cloud Service Mesh gerenciado em um cluster do Autopilot do GKE. |
Criar e gerenciar identificadores de clusters e de pools de nós | Explica como criar um cluster com rótulos. |
Gerenciar recursos do GKE usando tags | Explica como usar tags para gerenciar clusters do GKE. |
Criar um cluster do Autopilot | Explica como criar um cluster do GKE no Autopilot. |
Executar GPUs em pools de nós padrão do GKE | Explica como executar e otimizar cargas de trabalho com uso intensivo de computação, como inteligência artificial (IA) e processamento gráfico, anexando e usando aceleradores de hardware da unidade de processamento gráfico (GPU) NVIDIA® nos nós dos clusters GKE Standard. |
Usar discos de inicialização secundários para pré-carregar dados ou imagens de contêiner | Explica como melhorar a latência de inicialização da carga de trabalho usando discos de inicialização secundários. |
Criar um cluster nativo de VPC | Explica como configurar clusters nativos de VPC no GKE. |
Implantar cargas de trabalho de TPU no GKE Standard | Explica como solicitar e implantar cargas de trabalho de treinamento, ajuste e inferência de modelos de inteligência artificial (IA) e de machine learning (ML) em grande escala usando aceleradores do Cloud TPU (TPUs) em clusters padrão do GKE. |
Criar um balanceador de carga interno | Explica como criar um balanceador de carga de rede de passagem interna ou um balanceador de carga interno no GKE. |
Adicionar e gerenciar pools de nós | Explica como adicionar e realizar operações em pools de nós que executam seus clusters do GKE Standard. |
Criar clusters e pools de nós com nós do Arm | Explica como criar um cluster GKE Standard ou um pool de nós com nós do Arm para executar cargas de trabalho do Arm no GKE. |
Como consumir recursos por zona reservados | Explica como consumir recursos reservados do Compute Engine no GKE. |
Implantar um banco de dados PostgreSQL altamente disponível no GKE | Descreve a implantação de uma topologia PostgreSQL altamente disponível no GKE. O PostgreSQL é um banco de dados relacional de objetos de código aberto, conhecido pela confiabilidade e integridade dos dados. |
Especificar uma imagem de nó | Explica como especificar uma imagem para nós em clusters do GKE Standard. |
Como criar um cluster usando os pools de nós do Windows Server | Explica como criar um cluster do GKE com pools de nós executando o Microsoft Windows Server. |
Como executar GPUs de várias instâncias | Explica como aumentar a utilização e reduzir custos executando GPUs de várias instâncias. |
Sequência do lançamento de upgrades de cluster | Explica como gerenciar upgrades de cluster do GKE usando o sequenciamento de lançamentos. |
Como criar um cluster zonal | Explica como criar um cluster zonal padrão com os recursos padrão ativados no GKE. |
Configurar a rede para um cluster de produção básico | Descreve como implantar um aplicativo da Web em um cluster do GKE e expô-lo com um balanceador de carga HTTPS. |
Coletar e conferir métricas do plano de controle | Descreve como configurar um cluster do GKE para enviar métricas emitidas pelo servidor da API Kubernetes, pelo programador e pelo gerenciador do controlador ao Cloud Monitoring usando o Google Cloud Managed Service para Prometheus. |
Coletar e visualizar métricas do cAdvisor/Kubelet | Descreve como configurar um cluster do Google Kubernetes Engine (GKE) para enviar um conjunto selecionado de métricas do cAdvisor/Kubelet ao Cloud Monitoring usando o Google Cloud Managed Service para Prometheus. |
Ajustar a capacidade de processamento do registro | Descreve a capacidade de processamento de registro padrão e como aumentar a capacidade. |
Ativar o Backup para GKE em um cluster | Descreve como ativar o Backup para GKE em um cluster. |
Modificar recursos durante a restauração | Descreve como fazer modificações nos recursos do Kubernetes durante o processo de restauração usando regras de transformação. |
Ativar o modo permissivo em um plano de backup | Explica como ativar o modo permissivo em um plano de backup. |
Ativar Backup para GKE GKE | Descreve como ativar o Backup para GKE. |
Planejar um conjunto de backups | Descreve como criar um plano de backup para o Backup para GKE, que é usado para fazer backup das cargas de trabalho no GKE. |
Módulos e blueprints do Terraform para o GKE
Os módulos e modelos ajudam a automatizar o provisionamento e o gerenciamento de Google Cloud recursos em escala. Um módulo é um conjunto reutilizável de arquivos de configuração do Terraform que cria uma abstração lógica dos recursos do Terraform. Um blueprint é um pacote de módulos implantáveis e reutilizáveis e uma política que implementa e documenta uma solução específica.
A tabela a seguir lista os módulos e blueprints relacionados ao GKE:
Módulo ou blueprint | Detalhes |
---|---|
terraform-google-container-vm | Configura clusters específicos do GKE. |
terraform-google-gke-gitlab | Instala o GitLab no GKE. |
A seguir
- Exemplos de código do Terraform para o GKE
- Documentação do Terraform no Google Cloud
- Google Cloud documentação do provedor na HashiCorp
- Infraestrutura como código para Google Cloud