Crea un VPC e un cluster con Terraform

Panoramica

Terraform è uno strumento open source per la configurazione di ambienti cloud come AWS e l'installazione di software come Kubernetes. Puoi configurare il tuo ambiente AWS e creare i tuoi cluster con Terraform o con le istruzioni di installazione di GKE su AWS.

Questa pagina descrive come utilizzare Terraform per configurare il tuo ambiente AWS e installare un cluster utilizzando una configurazione di esempio archiviata su GitHub. Questa pagina è rivolta ad amministratori IT e operatori che vogliono configurare, monitorare e gestire l'infrastruttura cloud, automatizzare i deployment e utilizzare modelli e configurazione dichiarativa. Per scoprire di più su ruoli comuni e attività di esempio a cui facciamo riferimento nei contenuti, consulta Ruoli e attività comuni degli utenti di GKE Enterprise. Google Cloud

Per utilizzare questi script, devi avere una conoscenza di base di Terraform. In particolare, devi modificare i file di configurazione di Terraform per aggiungere le informazioni sull'utente e sul progetto e apportare le modifiche necessarie alla configurazione predefinita del cluster.

Per configurare il tuo ambiente AWS e creare cluster senza utilizzare Terraform, consulta la panoramica dei prerequisiti AWS e le istruzioni per creare un cluster.

A cosa servono gli script

Questo script configura Terraform per creare un VPC AWS ed eseguire il deployment di un cluster al suo interno. La VPC risultante soddisfa tutti i prerequisiti di GKE su AWS e ha la stessa topologia di rete della VPC creata seguendo le istruzioni per la creazione della VPC del manuale di Google.

Il cluster creato dall'insieme di script ha le seguenti caratteristiche:

  • tre nodi del piano di controllo (uno in ciascuna delle tre zone di disponibilità configurate). Questi nodi sono di tipo t3.large.
  • Un pool di nodi con due nodi di tipo t3.large. Questo pool di nodi viene disegnato nella regione AWS us-east-1 e può essere scalato automaticamente fino a cinque nodi.

Come modificare la VPC e il cluster predefiniti

Puoi modificare le caratteristiche del VPC e del cluster creati dagli script Terraform modificando i file Terraform appropriati.

  • Modifica la regione e le zone di disponibilità modificando il file variables.tf.
  • Modifica il tipo di istanza AWS.
  • Modifica le caratteristiche del VPC, tra cui le subnet, le zone di disponibilità e il bilanciatore del carico, modificando i file nella sottocartella modules/vpc.

Per un elenco delle regioni AWS controllate da una determinata Google Cloud regione e delle relative versioni Kubernetes associate, esegui il seguente comando:

gcloud container aws get-server-config --location `GOOGLE_CLOUD_REGION`

Sostituisci GOOGLE_CLOUD_REGION con il nome della Google Cloud regione da cui vuoi che GKE on AWS controlli il tuo cluster.

Prerequisiti

  1. Installa Google Cloud CLI seguendo le istruzioni di installazione di Google Cloud CLI. Se l'hai già installato, segui queste istruzioni per assicurarti di utilizzare la versione 412.0.0 o successive.

  2. Installa l'interfaccia a riga di comando AWS con le istruzioni di installazione dell'interfaccia a riga di comando AWS.

  3. Crea le tue chiavi di accesso AWS.

  4. Configura il tuo ambiente AWS locale con il seguente comando:

    aws configure
    

Prepara Terraform

  1. Configura l'autenticazione di Google Cloud CLI eseguendo i seguenti comandi:

    gcloud config set project GOOGLE_PROJECT_ID
    gcloud auth application-default login --no-launch-browser
    
  2. Abilita i servizi richiesti nel tuo Google Cloud progetto.

    gcloud --project="GOOGLE_PROJECT_ID" services enable \
      gkemulticloud.googleapis.com \
      gkeconnect.googleapis.com \
      connectgateway.googleapis.com \
      cloudresourcemanager.googleapis.com \
      anthos.googleapis.com \
      logging.googleapis.com \
      monitoring.googleapis.com \
      opsconfigmonitoring.googleapis.com
    

    Sostituisci GOOGLE_PROJECT_ID con l'ID del tuo progetto Google.

  3. Crea una copia locale del repository e passa alla cartella AWS:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples.git
    cd anthos-samples/anthos-multi-cloud/AWS
    

Esegui il deployment di GKE su AWS

  1. Modifica le seguenti righe nel file terraform.tfvars per sostituire i valori predefiniti:

    gcp_project_id = GOOGLE_PROJECT_ID
    admin_users = ["GCP_ACCOUNT_EMAIL"]
    cluster_version = GKE_VERSION
    

    Sostituisci quanto segue:

    • GOOGLE_PROJECT_ID: il tuo ID progetto Google. Puoi trovarlo sul lato sinistro della pagina della dashboard della Google Cloud console.

    • ACCOUNT_EMAILS: un elenco separato da virgole di indirizzi email che possono accedere ai cluster dopo la loro creazione, ad esempio "admin@example.com","operator@example.com". Per almeno un indirizzo deve essere presente un Google Cloud account. Per aggiungere altri provider di identità al tuo cluster, consulta Gestire le identità con GKE Identity Service.

    • GKE_VERSION: una versione GKE supportata per la regione scelta. Per trovare le versioni supportate, consulta Controllo delle versioni e assistenza di GKE su AWS.

  2. Inizializza e crea il piano Terraform:

    terraform init
    

    Terraform installa le librerie necessarie, ad esempio il provider Google Cloud.

  3. Applica il piano Terraform per creare il virtual private cloud e il cluster AWS:

    terraform apply
    

    Segui le istruzioni per iniziare a creare un cluster.

L'installazione richiede circa 12 minuti. Quando Terraform completa la creazione del virtual private cloud e del cluster AWS, stampa le informazioni sul cluster e crea un file denominato var.sh. Puoi utilizzare i valori in questo file se crei altri pool di nodi.

Per verificare che il cluster sia stato creato correttamente, controlla che venga visualizzato nella pagina Kubernetes Engine della Google Cloud console nel tuo Google Cloud progetto.

Connessione al tuo cluster

Per verificare la connettività al cluster e recuperarne i dettagli, esegui il seguente comando:

   gcloud container fleet memberships get-credentials CLUSTER_NAME
   kubectl get nodes

Sostituisci CLUSTER_NAME con il nome del cluster. Puoi trovare il nome del cluster nel file di output Terraform var.sh.

L'output include un elenco dei nodi del cluster e il relativo stato.

Elimina il cluster e il cloud privato virtuale AWS

Prima di eliminare il cluster e il cloud privato virtuale AWS, devi rimuovere quanto segue:

  • Eventuali bilanciatori del carico AWS attivi nel virtual private cloud AWS
  • Eventuali pool di nodi aggiuntivi nel cluster non creati con Terraform
  • Eventuali cluster aggiuntivi in AWS Virtual Private Cloud non creati con Terraform

Per rimuovere il cluster e il virtual private cloud AWS che hai creato con Terraform, esegui il seguente comando:

terraform destroy

Terraform estrae i carichi di lavoro dai nodi, elimina il pool di nodi e il cluster principali ed elimina il Virtual Private Cloud AWS.

Autorizza Cloud Logging e Cloud Monitoring

Se vuoi attivare Cloud Logging e Cloud Monitoring, devi aggiungere un criterio di autorizzazione al tuo Google Cloud progetto dopo aver creato un cluster.

Aggiungi un criterio di autorizzazione con Google Cloud CLI:

gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter

Sostituisci PROJECT_ID con l'ID progetto.

Passaggi successivi

Per saperne di più sugli script Terraform GKE su AWS, consulta