Questo documento mostra come configurare le VM su Compute Engine con Terraform, in modo da poter installare e provare i cluster Anthos su Bare Metal in modalità ad alta disponibilità. Per informazioni su come utilizzare l'interfaccia a riga di comando di Google Cloud, vedi Prova i cluster Anthos su Bare Metal sulle VM di Compute Engine.
Puoi provare i cluster Anthos su Bare Metal rapidamente e senza dover preparare alcun hardware. Gli script Terraform forniti creano una rete di VM su Compute Engine che può essere utilizzata per eseguire i cluster Anthos su Bare Metal. In questo tutorial utilizziamo il modello di deployment del cluster ibrido.
Completa i seguenti passaggi per eseguire un cluster di esempio:
- Esegui lo script Terraform per configurare una rete di VM su Compute Engine
- Esegui il deployment di un cluster ibrido
- Verifica il tuo cluster
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 (~0.14.10).
Un progetto Google Cloud.
Un account di servizio nel progetto che soddisfa uno dei seguenti requisiti e il file chiave scaricato nella workstation:
- L'account di servizio dispone delle autorizzazioni di proprietario
- L'account di servizio dispone sia delle autorizzazioni di amministratore IAM che di quelle del progetto IAM
Configura la rete VM su Compute Engine
In questa sezione userai 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 nelle altre macchine.
- Tre VM per i tre nodi del piano di controllo necessari per eseguire il piano di controllo del cluster ibrido.
- Due VM per i due nodi worker necessari per eseguire i carichi di lavoro sul cluster ibrido.
- Una rete overlay
VxLAN
tra tutti i nodi per emulare la connettività L2. - Accesso SSH ai nodi del piano di controllo e del 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
anthos-bm-gcp-terraform
esempio:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-terraform
Aggiorna il file
terraform.tfvars.sample
per 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.sample
con il nome predefinito utilizzato da terraterra per il file delle variabili:mv terraform.tfvars.sample terraform.tfvars
Inizializza la directory di esempio come directory di lavoro Terraform. Questo determina le configurazioni di gestione dello stato di Terraform richieste, simili a
git init
:terraform init
Creare un piano di esecuzione Terraform. Questo passaggio mette a confronto lo stato delle risorse, verifica gli script e crea un piano di esecuzione:
terraform plan
Applica le modifiche descritte nello script Terraform. Questo passaggio esegue il piano sul provider specificato (in questo caso Google Cloud) per raggiungere lo stato delle risorse desiderato:
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 amministratore:
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Esegui il blocco di codice seguente per creare il cluster ibrido
cluster1
nelle 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 eseguire controlli preliminari sui nodi, creare i cluster di amministrazione e degli utenti e registrare il cluster con Google Cloud utilizzando Connect.
L'intera configurazione può richiedere fino a 15 minuti. Vedrai il seguente output durante la creazione del cluster:
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 cluster nella macchina di amministrazione nella directory bmctl-workspace
. Per verificare il deployment, completa i passaggi seguenti.
Se hai disconnesso l'host dall'host, 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_ZONE
Imposta la variabile di ambiente
KUBECONFIG
con il percorso del file di configurazione del cluster per eseguire i comandikubectl
sul cluster:export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodes
Dovresti visualizzare 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 da Google Cloud Console
Per osservare i carichi di lavoro nella console Google Cloud, devi accedere al cluster.
Per istruzioni e informazioni sull'accesso al cluster, consulta l'articolo su come accedere a un cluster da Google Cloud Console.
Esegui la pulizia
Puoi modificare la 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