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 Terraform para Google Cloud para provisionar e gerenciar Google Cloud recursos, incluindo o GKE.
Nesta página, apresentamos o uso do Terraform com o GKE, incluindo uma introdução ao funcionamento do Terraform e alguns recursos para ajudar você a começar a usar o Terraform com Google Cloud. Você também encontrará links para documentos de referência do Terraform para GKE, exemplos de código e guias para usar o Terraform para provisionar recursos do GKE.
Para obter instruções sobre como começar a usar o Terraform para Google Cloud, consulte Instalar e configurar o Terraform ou o guia de início rápido do Terraform para Google Cloud .
Como o Terraform funciona
O Terraform tem uma sintaxe declarativa e orientada pela configuração, que você pode usar para descrever a infraestrutura que você quer provisionar no seu Google Cloud projeto. Depois de criar essa configuração em um ou mais arquivos de configuração do Terraform, use a CLI do Terraform para aplicar essa configuração 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ê executa o comando
terraform apply, que realiza as seguintes ações:- Ele provisiona sua infraestrutura com base no plano de execução invocando as APIs correspondentes do GKE 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 o 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 todos os guias e tutoriais do Terraform para 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 identificadores. |
| 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 no GKE pools de nós padrão | 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 de modelo, ajuste e inferência de modelos de inteligência artificial (IA) e machine learning (ML) em grande escala usando aceleradores de 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. |
| Adicione e gerencie pools de nós | Explica como adicionar e realizar operações em pools de nós que executam clusters 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 em 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 de dados. |
| Especificar uma imagem de nó | Explica como especificar uma imagem de nó para nós em clusters padrão do GKE. |
| 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. |
| 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 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 visualizar 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 de processamento. |
| Ativar Backup para GKE para 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 a API Backup para GKE | Descreve como ativar o Backup para GKE. |
| Planejar um conjunto de backups | Descreve como criar um plano de backup do Backup para GKE, usado para fazer backup das cargas de trabalho no GKE. |
Módulos e blueprints do Terraform para o GKE
Os módulos e blueprints 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 módulos e blueprints relacionados ao GKE:
| Módulo ou blueprint | Detalhes |
|---|---|
| terraform-google-kubernetes-engine | 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
- Terraform on Google Cloud documentation
- Google Cloud Documentação do provedor na HashiCorp
- Infraestrutura como código para Google Cloud