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 l'ambiente AWS e creare i cluster al suo interno con Terraform o con le istruzioni di installazione di GKE su AWS.

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

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

Per configurare l'ambiente AWS e creare cluster senza utilizzare Terraform, consulta Panoramica dei prerequisiti di 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. Il VPC risultante soddisfa tutti i prerequisiti di GKE su AWS e ha la stessa topologia di rete del VPC creato dalle istruzioni per la creazione manuale del VPC di Google.

Il cluster creato dallo script impostato 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 implementato nella regione AWS us-east-1 e può scalare automaticamente fino a cinque nodi.

Come modificare il 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, incluse 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 regione Google Cloud e delle relative versioni di Kubernetes, esegui questo 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 su AWS controlli il 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 di AWS seguendo le istruzioni di installazione dell'interfaccia a riga di comando di AWS.

  3. Crea le tue chiavi di accesso AWS.

  4. Configura l'ambiente AWS locale con il comando seguente:

    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 progetto Google Cloud .

    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 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 trovare questo dato sul lato sinistro della pagina della dashboard della consoleGoogle Cloud .

    • ACCOUNT_EMAILS: un elenco separato da virgole di indirizzi email che possono accedere ai cluster dopo la creazione, ad esempio "admin@example.com","operator@example.com". Almeno un indirizzo deve avere un account Google Cloud . Per aggiungere altri provider di identità al tuo cluster, consulta Gestire l'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 tutte le librerie necessarie, ad esempio il provider Google Cloud.

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

    terraform apply
    

    Segui le istruzioni per iniziare a creare un cluster.

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

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

Connessione al tuo cluster

Per verificare la connettività al cluster e recuperarne i dettagli, esegui questo 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 VPC AWS

Prima di eliminare il cluster e il VPC AWS, devi rimuovere tutti i seguenti elementi:

  • Tutti i bilanciatori del carico AWS attivi nel VPC 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 VPC AWS che hai creato con Terraform, esegui il seguente comando:

terraform destroy

Terraform esegue il drain dei workload dai nodi, elimina il pool di nodi e il cluster primari ed elimina il tuo Virtual Private Cloud AWS.

Autorizza Cloud Logging e Cloud Monitoring

Se vuoi abilitare Cloud Logging e Cloud Monitoring, devi aggiungere un criterio di autorizzazione al tuo progetto Google Cloud 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