Eseguire 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 cloud provider e altre API. Puoi Utilizzare il provider Terraform per Google Cloud per eseguire il provisioning e gestire alle risorse Google Cloud, incluso GKE.

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 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 queste operazioni: azioni:

    1. Esegue il provisioning dell'infrastruttura in base al tuo 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 il mapping in il file di stato per confrontare l'infrastruttura esistente con il codice e se necessario:

      • Se un oggetto risorsa è definito nel file di configurazione, ma non esiste nel viene creato da Terraform.
      • 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 risorsa nel file di stato corrisponde al file di configurazione, Terraform lascia invariata la risorsa.

Guide basate su Terraform per GKE

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

Guida Dettagli
Crea un cluster GKE ed eseguire il deployment di un carico di lavoro utilizzando Terraform Spiega come creare un cluster GKE Autopilot (Google Kubernetes Engine) e come 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 una Cluster GKE Autopilot.
Crea e gestire le etichette dei cluster e dei pool di nodi Spiega come creare un cluster con etichette.
Gestisci GKE delle risorse usando i tag Spiega come utilizzare i tag per gestire i cluster GKE.
Crea un cluster Autopilot Spiega come creare un cluster GKE in Autopilot.
Esegui GPU in GKE Pool di nodi standard Spiega come eseguire e ottimizzare i carichi di lavoro ad alta intensità di calcolo, come l'intelligenza artificiale (AI) e l'elaborazione grafica, aggiungendo e utilizzando gli acceleratori hardware GPU NVIDIA® in dei cluster GKE Standard, nodi.
Utilizza dischi di avvio secondari per precaricare dati o immagini container Spiega come migliorare la latenza di avvio del carico di lavoro utilizzando i dischi di avvio secondari.
Crea una rete VPC nativa cluster Spiega come configurare i cluster VPC nativi in GKE.
Esegui il deployment dei carichi di lavoro TPU GKEStandard Spiega come richiedere ed eseguire il deployment di carichi di lavoro di addestramento, ottimizzazione e inferenza di modelli di intelligenza artificiale (IA) e machine learning (ML) su larga scala utilizzando gli acceleratori Cloud TPU (TPU) nei cluster GKE standard.
Crea su 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 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 carichi di lavoro ARM su GKE.
Consumo risorse di zona prenotate Spiega come utilizzare le risorse Compute Engine prenotate con GKE.
Implementazione un database PostgreSQL ad alta disponibilità su GKE Descrive il deployment di una topologia PostgreSQL a disponibilità elevata con GKE. PostgreSQL è un servizio relazionale 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 con 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.
Configurare 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 di 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.
Regola velocità effettiva di log Descrive la velocità effettiva predefinita dei log e come aumentare la velocità effettiva.
Abilita Backup per GKE per un cluster Descrive come attivare Backup per GKE per un cluster.
Modifica delle 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 in un piano di backup Spiega come attivare la modalità permissiva in un piano di backup.
Abilita l'API Backup for 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 consentono di automatizzare il provisioning e la gestione di 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 progetto è un pacchetto di strumenti di cui è possibile eseguire il deployment e riutilizzabili moduli, oltre a un criterio che implementa e documenta una soluzione specifica.

La tabella seguente elenca tutti 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.

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 Google Kubernetes Engine (GKE) Standard google_container_cluster
google_container_node_pool
Versione Google Kubernetes Engine (GKE) Enterprise 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 for GKE google_gke_backup_backup_plan
google_gke_backup_backup_plan_iam
google_gke_backup_restore_plan
google_gke_backup_restore_plan_iam

Passaggi successivi