Crea un VPC e un cluster con Terraform

Panoramica

Terraform è uno strumento open source per configurare ambienti cloud come AWS e installare software come Kubernetes. Puoi configurare il tuo ambiente AWS e creare i tuoi cluster al suo interno 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. Per utilizzare questi script, è necessaria una conoscenza di base di Terraform. In particolare, devi modificare i file di configurazione di Terraform per aggiungere informazioni su utenti e progetti e apportare eventuali modifiche alla configurazione predefinita del cluster.

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

Funzione degli 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 di VPC manuali di Google.

Il cluster creato dal set di script ha le seguenti caratteristiche:

  • tre nodi del piano di controllo (uno in ognuna delle tre zone di disponibilità configurate). Questi nodi sono di tipo t3.large.
  • Un pool di nodi con due nodi di tipo t3.large. Il deployment di questo pool di nodi viene eseguito nella regione AWS us-east-1 e puoi scalare automaticamente fino a cinque nodi.

Come modificare il VPC e il cluster predefiniti

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

  • Regola 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 subnet, zone di disponibilità e 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 versioni di Kubernetes associate, esegui questo comando:

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

Sostituisci GOOGLE_CLOUD_REGION con il nome della regione Google Cloud da cui GKE su AWS deve controllare il cluster.

Prerequisiti

  1. Installa Google Cloud CLI con le istruzioni di installazione di Google Cloud CLI. Se l'hai già installata, segui queste istruzioni per assicurarti che sia in uso la versione 412.0.0 o successiva.

  2. Installa AWS CLI con le istruzioni di installazione di AWS CLI.

  3. Crea le chiavi di accesso AWS.

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

    aws configure
    

Prepara Terraform

  1. Configura l'autenticazione Google Cloud CLI eseguendo questi comandi:

    gcloud config set project GOOGLE_PROJECT_ID
    gcloud auth application-default login --no-launch-browser
    
  2. Abilitare 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 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"]
    

    Sostituisci quanto segue:

    • GOOGLE_PROJECT_ID: il tuo ID progetto Google. Puoi trovarlo sul lato sinistro della pagina della dashboard della console Google 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 cluster, consulta Gestire l'identità con GKE Identity Service.

  2. Inizializza e crea il piano Terraform:

    terraform init
    

    Terraform installa tutte le librerie necessarie, come 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 tuo 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 pool di nodi aggiuntivi.

Per verificare che il cluster sia stato creato correttamente, attendi 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 di Terraform var.sh.

L'output include un elenco di nodi nel cluster e il relativo stato.

Elimina il cluster e AWS Virtual Private Cloud

Prima di eliminare il cluster e AWS Virtual Private Cloud, devi rimuovere tutto quanto segue:

  • Qualsiasi bilanciatore del carico AWS attivo in AWS Virtual Private Cloud
  • 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 di AWS che hai creato con Terraform, esegui questo comando:

terraform destroy

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

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ù su Terraform GKE sugli script AWS, consulta