Il provisioning delle macchine virtuali (VM) di Compute Engine con Terraform ti consente di valutare Google Distributed Cloud in modalità ad alta affidabilità (HA) senza hardware fisico. In questo tutorial utilizzerai gli script Terraform forniti per configurare una rete VM emulata, eseguire il deployment di un cluster ibrido di esempio e verificare l'installazione.
Questo deployment è solo a scopo di valutazione. Non eseguire Google Distributed Cloud su VM di Compute Engine in produzione. Per eseguire il deployment di Google Distributed Cloud in produzione, segui i passaggi descritti in Crea cluster di base.
Se preferisci valutare Google Distributed Cloud utilizzando Google Cloud CLI anziché Terraform, consulta Prova Google Distributed Cloud su VM di Compute Engine.
Prima di iniziare
Il deployment richiede le seguenti risorse:
- Una workstation con accesso a internet e i seguenti strumenti installati: Git, Google Cloud CLI e Terraform (>= v0.15.5, < 1.2).
Un progetto Google Cloud .
Un account di servizio nel progetto che soddisfa uno dei seguenti requisiti e il relativo file della chiave scaricato sulla workstation:
- Il account di servizio dispone delle autorizzazioni di proprietario
- Il account di servizio dispone delle autorizzazioni Editor e Amministratore IAM progetto
Configura la rete VM su Compute Engine
In questa sezione utilizzerai gli script Terraform del repository anthos-samples. Gli script configurano Compute Engine con le seguenti risorse:
- Sei VM per eseguire il deployment del cluster ibrido:
- Una VM di amministrazione utilizzata per eseguire il deployment del cluster ibrido sulle altre macchine.
- Tre VM per i tre nodi del control plane necessari per eseguire il control plane del cluster ibrido.
- Due VM per i due nodi worker necessari per eseguire i workload sul cluster ibrido.
- Una rete overlay
VxLANtra tutti i nodi per emulare la connettività L2. - Accesso SSH ai nodi control-plane e worker dalla VM di amministrazione.
Puoi modificare il numero di nodi nel cluster aggiungendo nuovi nomi di nodi alla variabile Terraform instance_count:
Scarica gli script Terraform per l'esempio
anthos-bm-gcp-terraform:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-terraformAggiorna il file
terraform.tfvars.samplein modo da includere variabili specifiche per il tuo ambiente:project_id = "PROJECT_ID" region = "GOOGLE_CLOUD_REGION" zone = "GOOGLE_CLOUD_ZONE" credentials_file = "PATH_TO_GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY_FILE"Rinomina il file
terraform.tfvars.samplecon il nome predefinito utilizzato da Terraform per il file delle variabili:mv terraform.tfvars.sample terraform.tfvarsInizializza la directory di esempio come directory di lavoro di Terraform. In questo modo vengono configurate le impostazioni di gestione dello stato di Terraform richieste, simili a
git init:terraform initCrea un piano di esecuzione Terraform. Questo passaggio confronta lo stato delle risorse, verifica gli script e crea un piano di esecuzione:
terraform planApplica le modifiche descritte nello script Terraform. Questo passaggio esegue il piano sul provider specificato (in questo caso Google Cloud) per raggiungere lo stato target delle risorse:
terraform apply # when prompted to confirm the Terraform plan, type 'Yes' and enter
Esegui il deployment del cluster ibrido
Al termine dell'esecuzione di Terraform, puoi eseguire il deployment del cluster ibrido.
Utilizza SSH per connetterti all'host di amministrazione:
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONEPuoi ignorare i messaggi relativi all'aggiornamento della VM e completare questo tutorial. Se prevedi di mantenere le VM come ambiente di test, ti consigliamo di aggiornare il sistema operativo o di eseguire l'upgrade alla release successiva, come descritto nella documentazione di Ubuntu.
Esegui il seguente blocco di codice per creare il cluster ibrido
cluster1sulle VM di Compute Engine configurate:sudo ./run_initialization_checks.sh && \ sudo bmctl create config -c cluster1 && \ sudo cp ~/cluster1.yaml bmctl-workspace/cluster1 && \ sudo bmctl create cluster -c cluster1
L'esecuzione del comando bmctl avvia la configurazione di un nuovo cluster ibrido. Ciò include l'esecuzione di controlli preflight sui nodi, la creazione dei cluster di amministrazione e utente e la registrazione del cluster con Google Cloud utilizzando Connect Agent. L'intera configurazione può richiedere fino a 15 minuti. Durante la creazione del cluster, viene visualizzato il seguente output:
Created config: bmctl-workspace/cluster1/cluster1.yaml
Creating bootstrap cluster... OK
Installing dependency components... OK
Waiting for preflight check job to finish... OK
- Validation Category: machines and network
- [PASSED] 10.200.0.3
- [PASSED] 10.200.0.4
- [PASSED] 10.200.0.5
- [PASSED] 10.200.0.6
- [PASSED] 10.200.0.7
- [PASSED] gcp
- [PASSED] node-network
Flushing logs... OK
Applying resources for new cluster
Waiting for cluster to become ready OK
Writing kubeconfig file
kubeconfig of created cluster is at bmctl-workspace/cluster1/cluster1-kubeconfig, please run
kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig get nodes
to get cluster node status.
Please restrict access to this file as it contains authentication credentials of your cluster.
Waiting for node pools to become ready OK
Moving admin cluster resources to the created admin cluster
Flushing logs... OK
Deleting bootstrap cluster... OK
Verifica e interagisci con il cluster
Puoi trovare il file kubeconfig del tuo cluster sulla macchina di amministrazione nella directory bmctl-workspace. Per verificare il deployment, completa i seguenti passaggi.
Se hai eseguito la disconnessione dall'host di amministrazione, utilizza SSH per connetterti all'host:
# You can copy the command from the output of the Terraform execution above gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONEImposta la variabile di ambiente
KUBECONFIGcon il percorso del file di configurazione del cluster per eseguire i comandikubectlsul cluster:export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodesDovresti vedere i nodi del cluster stampati, in modo simile al seguente output:
NAME STATUS ROLES AGE VERSION cluster1-abm-cp1-001 Ready master 17m v1.18.6-gke.6600 cluster1-abm-cp2-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-cp3-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-w1-001 Ready <none> 14m v1.18.6-gke.6600 cluster1-abm-w2-001 Ready <none> 14m v1.18.6-gke.6600
Accedi al cluster dalla console Google Cloud
Per osservare i workload nella console Google Cloud , devi accedere al cluster.
Per istruzioni e ulteriori informazioni sull'accesso al cluster, consulta Utilizza i cluster dalla console Google Cloud .
Esegui la pulizia
Puoi eseguire la pulizia della configurazione del cluster in due modi.
Console
Terraform
- Annulla la registrazione del cluster prima di eliminare tutte le risorse create da Terraform.
# Use SSH to connect to the admin host
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
# Reset the cluster
export CLUSTER_ID=cluster1
export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig
sudo bmctl reset --cluster $CLUSTER_ID
# log out of the admin host
exit
- Utilizza Terraform per eliminare tutte le risorse.
terraform destroy --auto-approve