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:
- 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.
- 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. -
Executa o comando
terraform apply
, que realiza as seguintes ações:- Aprovisiona a sua infraestrutura com base no seu plano de execução invocando as APIs GKE correspondentes em segundo plano.
- 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.
-
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:
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?
- Exemplos de código do Terraform para o GKE
- Documentação do Google Cloud Terraform
- Google Cloud documentação do fornecedor na HashiCorp
- Infraestrutura como código para Google Cloud