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
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.
Installa AWS CLI con le istruzioni di installazione di AWS CLI.
Crea le chiavi di accesso AWS.
Configura il tuo ambiente AWS locale con il comando seguente:
aws configure
Prepara Terraform
Configura l'autenticazione Google Cloud CLI eseguendo questi comandi:
gcloud config set project GOOGLE_PROJECT_ID gcloud auth application-default login --no-launch-browser
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.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
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.
Inizializza e crea il piano Terraform:
terraform init
Terraform installa tutte le librerie necessarie, come il provider Google Cloud.
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 scoprire di più sul logging centralizzato degli eventi dei cluster di Google, consulta Cloud Logging.
- Per ulteriori informazioni sugli strumenti di Cloud Monitoring di Google, consulta Cloud Monitoring.
- Per installare la gestione centralizzata delle configurazioni, consulta Configurare un cluster con Config Controller.
Per saperne di più su Terraform GKE sugli script AWS, consulta