Esegui il provisioning delle risorse GKE con Terraform

HashiCorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e di gestire l'infrastruttura cloud. Terraform fornisce plug-in noti con il nome 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 Google Cloud risorse, tra cui GKE.

Questa pagina illustra come utilizzare 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 Installa e configura Terraform o la guida rapida a Terraform per Google Cloud .

Come funziona Terraform

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

I passaggi seguenti spiegano come funziona Terraform:

  1. Puoi descrivere l'infrastruttura di cui vuoi 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 conto tuo.
  2. Puoi eseguire il comando terraform plan, che valuta la configurazione e genera un piano di esecuzione. Puoi anche rivedere il piano e apportare le modifiche necessarie.
  3. Puoi eseguire il comando terraform apply che:

    1. Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API GKE corrispondenti in background.
    2. Crea un file di stato Terraform, ovvero un file JSON che mappa le risorse nel tuo 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 computing.

La tabella seguente elenca le risorse Terraform disponibili per GKE:

Prodotto o servizio GKE Risorsa 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
Backup per GKE google_gke_backup_backup_channel
google_gke_backup_backup_plan
google_gke_backup_backup_plan_iam
google_gke_backup_restore_channel
google_gke_backup_restore_plan
google_gke_backup_restore_plan_iam

Guide basate su Terraform per GKE

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

Guida Dettagli
Crea un cluster GKE ed esegui il deployment di un workload utilizzando Terraform Spiega come creare un cluster Google Kubernetes Engine (GKE) Autopilot ed eseguire il deployment di un workload utilizzando Terraform.
Creare un cluster Autopilot Spiega come creare un cluster GKE in Autopilot.
Creazione di un cluster di zona Spiega come creare un cluster di zona standard con le funzionalità predefinite abilitate in GKE.
Creazione di un cluster a livello di area geografica Spiega come creare un cluster regionale standard in GKE.
Crea un cluster multi-tenant utilizzando Terraform Spiega come creare un cluster multi-tenant ed eseguire il deployment di un workload utilizzando Terraform.
Aggiunta e gestione dei pool di nodi Spiega come aggiungere ed eseguire operazioni sui node pool in esecuzione sui GKE Standard cluster.
Crea cluster e node pool con nodi Arm Spiega come creare un cluster GKE Standard o pool di nodi con nodi Arm, in modo da poter eseguire workload Arm su GKE.
Utilizzo delle risorse di zona riservate Spiega come utilizzare le risorse Compute Engine riservate in GKE.
Specifica un'immagine del nodo Spiega come specificare un'immagine del nodo per i nodi nei cluster GKE Standard.
Creazione di un cluster che utilizza i node pool Windows Server Spiega come creare un cluster GKE con node pool che eseguono Microsoft Windows Server.
Crea e gestisci le etichette di cluster e node pool Spiega come creare un cluster a cui sono associate etichette.
Gestisci le risorse GKE utilizzando i tag Spiega come utilizzare i tag per gestire i cluster GKE.
Personalizzazione della configurazione del sistema di nodi Spiega come personalizzare la configurazione del sistema di nodi GKE utilizzando un file di configurazione del sistema di nodi.
Crea un cluster nativo di VPC Spiega come configurare i cluster nativi di VPC in GKE.
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.
Configura il networking per un cluster di produzione di base Descrive come eseguire il deployment di un'applicazione web in un cluster GKE ed esporla con un bilanciatore del carico HTTPS.
Sequenzia l'implementazione degli upgrade dei cluster Spiega come gestire gli upgrade dei cluster GKE utilizzando la sequenza di implementazione.
Esegui il deployment dei workload TPU in GKE Standard Spiega come richiedere ed eseguire il deployment di workload di addestramento, ottimizzazione e inferenza di modelli di intelligenza artificiale (AI) e machine learning (ML) su larga scala che utilizzano gli acceleratori Cloud TPU (TPU) nei cluster GKE Standard.
Esegui le GPU in GKE node pool Standard Spiega come eseguire e ottimizzare i workload a elevato utilizzo di risorse di calcolo, come i workload di intelligenza artificiale (AI), collegando e utilizzando le GPU NVIDIA nei nodi dei cluster GKE Standard.
Esecuzione di GPU a più istanze Spiega come aumentare l'utilizzo e ridurre i costi eseguendo GPU a più istanze.
Abilita l'operatore Ray su GKE Spiega come abilitare l'operatore Ray per GKE.
Utilizza i dischi di avvio secondari per precaricare dati o immagini container Spiega come migliorare la latenza di avvio dei workload utilizzando i dischi di avvio secondari.
Esegui il deployment di un database PostgreSQL a disponibilità elevata 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.
Raccogli e visualizza 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 Controller Manager a Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus.
Raccogli e visualizza le metriche cAdvisor/Kubelet Descrive come configurare un cluster Google Kubernetes Engine (GKE) per inviare un insieme curato di metriche cAdvisor/Kubelet a Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus.
Regola la velocità effettiva dei log Descrive la velocità effettiva dei log predefinita e come aumentarla.
Esegui il deployment di OpenTelemetry gestito per GKE Spiega come configurare OpenTelemetry gestito per GKE in modo da inviare tracce, metriche e log OTLP a Google Cloud Observability.
Raccogli e visualizza kube-state-metrics Descrive come configurare un cluster GKE per inviare kube-state-metrics a Cloud Monitoring utilizzando Google Cloud Managed Service per Prometheus.
Installa Policy Controller Spiega come installare Policy Controller utilizzando Terraform.
Abilita Backup per GKE per un cluster Descrive come abilitare Backup per GKE per un cluster.
Modifica le risorse durante il ripristino Descrive come apportare modifiche alle risorse Kubernetes durante il processo di ripristino utilizzando le regole di trasformazione.
Abilita la modalità permissiva su un piano di backup Spiega come abilitare la modalità permissiva su un piano di backup.
Abilita l'API Backup per GKE Descrive come abilitare Backup per GKE.
Pianifica una serie di backup Descrive come creare un piano di backup di Backup per GKE, che viene utilizzato per eseguire il backup dei workload in GKE.
Registra un cluster nel tuo parco risorse Google Cloud Spiega come registrare un cluster GKE on Google Cloud to your fleet utilizzando Terraform.
Installa Config Sync come impostazione predefinita del parco risorse Spiega come configurare Config Sync come impostazione predefinita a livello di parco risorse per tutti i nuovi cluster.
Gestisci le risorse del team nel tuo parco risorse Spiega come utilizzare Config Sync e Terraform per creare dinamicamente risorse con ambito team in un parco risorse di cluster.

Moduli e progetti base Terraform per GKE

I moduli e i progetti base ti aiutano ad automatizzare il provisioning e la gestione delle Google Cloud risorse su larga scala. Un modulo è un insieme riusabile di file di configurazione di Terraform che crea un'astrazione logica delle risorse Terraform. Un progetto base è un pacchetto di moduli di cui è possibile eseguire il deployment e che sono riutilizzabili, nonché una policy che implementa e documenta una soluzione specifica.

La tabella seguente elenca i moduli e i progetti base relativi a GKE:

Modulo o progetto base Dettagli
terraform-google-kubernetes-engine Configura i cluster GKE con opinioni.
terraform-google-gke-gitlab Installa GitLab su GKE.

Passaggi successivi