Esegui il provisioning delle risorse GKE con Terraform

HashiCorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e gestire l'infrastruttura cloud. Terraform fornisce plug-in chiamati provider che ti consentono di interagire con i provider cloud e altre API. Puoi utilizzare il provider Terraform per Google Cloud per eseguire il provisioning e gestire le risorse Google Cloud, tra cui GKE.

Questa pagina illustra l'utilizzo di Terraform con GKE, inclusa un'introduzione al funzionamento di Terraform e alcune risorse per iniziare a utilizzare Terraform con Google Cloud. Troverai anche link alla documentazione di riferimento di Terraform per GKE, esempi di codice e guide per l'utilizzo di Terraform per il provisioning delle risorse GKE.

Per istruzioni su come iniziare a utilizzare Terraform per Google Cloud, consulta Installare e configurare Terraform o la guida rapida di Terraform per Google Cloud.

Come funziona Terraform

Terraform ha una sintassi dichiarativa e orientata alla configurazione che puoi utilizzare per descrivere l'infrastruttura che vuoi eseguire il provisioning nel tuo progetto Google Cloud. Dopo aver creato questa configurazione in uno o più file di configurazione Terraform, puoi utilizzare Terraform CLI per applicarla alle risorse GKE.

I passaggi seguenti spiegano come funziona Terraform:

  1. Descrivi l'infrastruttura da eseguire il provisioning in un file di configurazione Terraform. Non è necessario scrivere codice che descriva come eseguire il provisioning dell'infrastruttura. Terraform esegue il provisioning dell'infrastruttura per te.
  2. Esegui il comando terraform plan, che valuta la configurazione e genera un piano di esecuzione. Puoi esaminare il piano e apportare le modifiche necessarie.
  3. Esegui il comando terraform apply, che esegue le seguenti azioni:

    1. Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API GKE corrispondenti in background.
    2. Viene creato un file di stato Terraform, ovvero un file JSON che mappa le risorse nel file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per tenere traccia dello stato più recente dell'infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.
    3. Quando esegui terraform apply, Terraform utilizza la mappatura nel file di stato per confrontare l'infrastruttura esistente con il codice e apportare gli aggiornamenti necessari:

      • Se un oggetto della risorsa è definito nel file di configurazione, ma non esiste nel file dello stato, Terraform lo crea.
      • Se nel file dello stato esiste un oggetto della risorsa, ma la sua configurazione è diversa da quella del file di configurazione, Terraform aggiorna la risorsa in modo che corrisponda al file di configurazione.
      • Se un oggetto della risorsa nel file dello stato corrisponde al tuo file di configurazione, Terraform lascia la risorsa invariata.

Risorse Terraform per GKE

Le risorse sono gli elementi fondamentali del linguaggio Terraform. Ogni blocco di risorse descrive uno o più oggetti di infrastruttura, come reti virtuali o istanze di calcolo.

La tabella seguente elenca le risorse Terraform disponibili per GKE:

Prodotto o servizio GKE Risorsa Terraform
Versione standard di Google Kubernetes Engine (GKE) google_container_cluster
google_container_node_pool
Versione Enterprise di Google Kubernetes Engine (GKE) 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
Backup per GKE google_gke_backup_backup_plan
google_gke_backup_backup_plan_iam
google_gke_backup_restore_plan
google_gke_backup_restore_plan_iam

Guide basate su Terraform per GKE

La tabella seguente elenca guide e tutorial basati su Terraform per GKE:

Guida Dettagli
Crea un cluster GKE ed esegui il deployment di un carico di lavoro utilizzando Terraform Spiega come creare un cluster GKE Autopilot (Google Kubernetes Engine) ed eseguire il deployment di un carico di lavoro utilizzando Terraform.
Provisioning di Cloud Service Mesh su un cluster GKE Autopilot Descrive come configurare Cloud Service Mesh gestito su un cluster GKE Autopilot.
Creare e gestire le etichette dei cluster e dei pool di nodi Spiega come creare un cluster con etichette.
Gestire le risorse GKE utilizzando i tag Spiega come utilizzare i tag per gestire i cluster GKE.
Creare un cluster Autopilot Spiega come creare un cluster GKE in Autopilot.
Esegui GPU nei pool di nodi GKE standard Spiega come eseguire e ottimizzare i carichi di lavoro con utilizzo intensivo di calcolo, come l'intelligenza artificiale (AI) e l'elaborazione grafica, collegando e utilizzando gli acceleratori hardware delle unità di elaborazione grafica (GPU) NVIDIA® nei nodi dei cluster GKE Standard.
Utilizza i dischi di avvio secondari per precaricare i dati o le immagini dei container Spiega come migliorare la latenza di avvio del carico di lavoro utilizzando i dischi di avvio secondari.
Crea un cluster nativo di VPC Spiega come configurare i cluster VPC nativi in GKE.
Esegui il deployment dei carichi di lavoro TPU in GKE Standard Spiega come richiedere ed eseguire il deployment di carichi di lavoro di addestramento, ottimizzazione e inferenza di modelli di intelligenza artificiale (AI) e machine learning (ML) su larga scala utilizzando gli acceleratori Cloud TPU (TPU) nei cluster GKE Standard.
Crea un bilanciatore del carico interno Spiega come creare un bilanciatore del carico di rete passthrough interno o un bilanciatore del carico interno su GKE.
Aggiungere e gestire i pool di nodi Spiega come aggiungere ed eseguire operazioni sui pool di nodi in esecuzione sui tuoi cluster GKE Standard.
Creare cluster e pool di nodi con nodi Arm Spiega come creare un cluster GKE Standard o un pool di nodi con nodi Arm, in modo da poter eseguire i workload Arm su GKE.
Consumo di risorse a livello di zona riservate Spiega come utilizzare le risorse Compute Engine riservate in GKE.
Esegui il deployment di un database PostgreSQL ad alta disponibilità su GKE Descrive il deployment di una topologia PostgreSQL a disponibilità elevata su GKE. PostgreSQL è un database relazionale a oggetti open source noto per l'affidabilità e l'integrità dei dati.
Specificare un'immagine del nodo Spiega come specificare un'immagine del nodo per i nodi nei cluster GKE standard.
Creazione di un cluster mediante i pool di nodi Windows Server Spiega come creare un cluster GKE con pool di nodi che eseguono Microsoft Windows Server.
Eseguire GPU a più istanze Spiega come aumentare l'utilizzo e ridurre i costi eseguendo GPU a più istanze.
Segui una sequenza per l'implementazione degli upgrade dei cluster Spiega come gestire gli upgrade dei cluster GKE utilizzando la sequenza di implementazione.
Creazione di un cluster di zona Spiega come creare un cluster di zona standard con le funzionalità predefinite abilitate in GKE.
Configura il networking per un cluster di produzione di base Descrive come eseguire il deployment di un'applicazione web in un cluster GKE e come esporla con un bilanciatore del carico HTTPS.
Raccogliere e visualizzare le metriche del piano di controllo Descrive come configurare un cluster GKE per inviare le metriche emesse dal server API Kubernetes, dallo scheduler e dal gestore del controller a Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus.
Raccogliere e visualizzare le metriche cAdvisor/Kubelet Descrive come configurare un cluster Google Kubernetes Engine (GKE) per inviare un insieme selezionato di metriche cAdvisor/Kubelet a Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus.
Regolare il throughput dei log Descrive la velocità in bit predefinita dei log e come aumentarla.
Abilita Backup per GKE per un cluster Descrive come attivare Backup per GKE per un cluster.
Modificare le risorse durante il ripristino Descrive come apportare modifiche alle risorse Kubernetes durante il processo di restauro utilizzando le regole di trasformazione.
Attivare la modalità permissiva su un piano di backup Spiega come attivare la modalità permissiva su un piano di backup.
Abilita l'Backup per GKE GKE Descrive come abilitare Backup per GKE.
Pianifica un insieme di backup Descrive come creare un piano di backup di Backup per GKE, utilizzato per eseguire il backup dei carichi di lavoro in GKE.

Moduli e progetti Terraform per GKE

I moduli e i progetti ti aiutano ad automatizzare il provisioning e la gestione delle risorse Google Cloud su larga scala. Un modulo è un insieme riutilizzabile di file di configurazione di Terraform che crea un'astrazione logica delle risorse Terraform. Un blueprint è un pacchetto di moduli di deployment e riutilizzabili e un criterio che implementa e documenta una soluzione specifica.

La tabella seguente elenca i moduli e i blueprint relativi a GKE:

Modulo o progetto Dettagli
terraform-google-container-vm Configura cluster GKE con opinioni.
terraform-google-gke-gitlab Installa GitLab su GKE.

Passaggi successivi