Scopri Google Distributed Cloud (solo software) per bare metal (in precedenza noto come Google Distributed Cloud Virtual, precedentemente noto come cluster Anthos su bare metal) creando cluster demo sulle macchine virtuali (VM) di Compute Engine. La creazione di un cluster di amministrazione e di un cluster utente con questa guida potrebbe richiedere da 40 minuti a un'ora. I cluster demo che crei in questa guida ti aiutano a valutare il processo di provisioning e gestione dei cluster Google Distributed Cloud, ma non sono destinati all'utilizzo in produzione.
Il documento ti guida nella procedura di esecuzione di uno script che:
- Esegue il provisioning di cinque VM di Compute Engine per l'installazione dei cluster demo
- Configura una rete VPC per fornire la connettività del cluster
Una volta che lo script esegue il provisioning delle risorse necessarie, utilizzi uno dei seguenti client per creare un cluster di amministrazione e un cluster utente di accompagnamento che possa ospitare i carichi di lavoro: bmctl
, console Google Cloud , Google Cloud CLI o Terraform.
Panoramica della procedura
Questa guida contiene i seguenti passaggi principali:
Prepara l'ambiente locale in modo che lo script disponga delle variabili di ambiente richieste e raccogli le informazioni di base necessarie per eseguire i comandi.
Crea le VM e la rete con lo script scaricato.
Crea il cluster di amministrazione con uno dei client supportati.
Crea il cluster utente con uno dei client supportati.
Esegui la pulizia per rimuovere i cluster e le VM che hai creato con questa guida.
1. Preparare l'ambiente locale
Poiché questa guida utilizza uno script che configura la rete per te, non devi raccogliere molte informazioni o fare alcuna pianificazione. I seguenti passaggi configurano l'ambiente locale e raccolgono le informazioni di base necessarie nelle sezioni successive della guida:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Prendi nota dell'ID progetto, perché ti servirà per impostare una variabile di ambiente utilizzata nello script e nei comandi di questa pagina. Se hai selezionato un progetto esistente, assicurati di essere il proprietario o l'editor del progetto.
-
Puoi eseguire lo script su Cloud Shell o sulla tua macchina locale con Linux o macOS. Se non utilizzi
Cloud Shell:
- Assicurati di aver installato l'ultima versione di
Google Cloud CLI, lo strumento a riga di comando per
interagire con Google Cloud. Aggiorna i componenti dell'interfaccia a riga di comando gcloud,
se necessario:
gcloud components update
A seconda di come è stata installata gcloud CLI, potresti visualizzare il seguente messaggio:
You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation:
Segui le istruzioni per copiare e incollare il comando per aggiornare i componenti.
- Assicurati di aver installato
kubectl
. Se devi installarekubectl
, esegui il seguente comando:gcloud components install kubectl
- Assicurati di aver installato l'ultima versione di
Google Cloud CLI, lo strumento a riga di comando per
interagire con Google Cloud. Aggiorna i componenti dell'interfaccia a riga di comando gcloud,
se necessario:
- Assicurati che il tuo progetto abbia una rete VPC denominata "default".
Se non hai una rete VPC "predefinita", lo script nella sezione seguente non riesce a eseguire il provisioning delle risorse necessarie. A meno che tu non scelga di eliminarla o limitarla, ogni nuovo progetto inizia con una rete VPC in modalità automatica denominata "default" che dovrebbe funzionare con lo script. Per maggiori informazioni, consulta Reti VPC.
- Assicurati che i seguenti vincoli dei criteri dell'organizzazione non vengano applicati:
constraints/iam.disableServiceAccountKeyCreation
constraints/compute.vmCanIpForward
constraints/compute.requireShieldedVm
constraints/compute.vmExternalIpAccess
Se questi vincoli vengono applicati, lo script nella sezione seguente non riesce a eseguire il provisioning delle risorse necessarie. Per un nuovo progetto, questi vincoli sono impostati su Inattivo (non applicato) per impostazione predefinita. Per saperne di più, consulta Vincoli delle policy dell'organizzazione.
- Configura le variabili di ambiente:
export PROJECT_ID=PROJECT_ID export ADMIN_CLUSTER_NAME=ADMIN_CLUSTER_NAME export ON_PREM_API_REGION=ON_PREM_API_REGION export ZONE=ZONE
ADMIN_CLUSTER_NAME
: il nome che scegli per il cluster di amministrazione.ON_PREM_API_REGION
: la Google Cloud regione in cui l'API GKE On-Prem viene eseguita e archivia i relativi metadati. Specificaus-central1
o un'altra regione supportata.ZONE
: la Google Cloud zona in cui vengono create le VM di Compute Engine. Puoi utilizzareus-central1-a
o una qualsiasi delle altre zone di Compute Engine.
- Esegui i seguenti comandi per impostare il progetto e la zona predefiniti.
gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONE
Se ricevi un errore
PERMISSION_DENIED
, controlla di nuovo l'ID progetto che hai inserito. Se l'ID progetto è corretto, eseguigcloud auth login
per accedere allagcloud CLId con l'account che ha accesso al progetto. - Visualizza un elenco delle versioni supportate che puoi installare:
gcloud container bare-metal admin-clusters query-version-config \ --location=ON_PREM_API_REGION
- Seleziona una versione dall'output del comando precedente e impostala in una
variabile di ambiente:
export BMCTL_VERSION=BMCTL_VERSION
Ti consigliamo di selezionare la versione compatibile più recente per ottenere le funzionalità e le correzioni più recenti di Google Distributed Cloud.
Clona il repository
anthos-samples
e passa alla directory in cui si trova lo script:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-bash
Esegui lo script:
bash install_admin_cluster.sh
Al prompt, inserisci
2
per configurare solo l'infrastruttura Compute Engine e conferma la selezione quando richiesto.Lo script crea VM Compute Engine, una rete VXLAN e configura la workstation di amministrazione e i nodi cluster. La configurazione di questa infrastruttura richiede circa 5 minuti.
Per saperne di più sullo script, fai clic sul seguente link:
Informazioni sullo script
Puoi visualizzare lo script nella cartella
anthos-bm-gcp-bash
nel repository GitHub anthos-samples. Lo script automatizza i seguenti passaggi manuali:-
Abilita le seguenti API Google Cloud :
anthos.googleapis.com anthosaudit.googleapis.com anthosgke.googleapis.com cloudresourcemanager.googleapis.com connectgateway.googleapis.com container.googleapis.com compute.googleapis.com gkeconnect.googleapis.com gkehub.googleapis.com gkeonprem.googleapis.com serviceusage.googleapis.com stackdriver.googleapis.com monitoring.googleapis.com logging.googleapis.com kubernetesmetadata.googleapis.com iam.googleapis.com opsconfigmonitoring.googleapis.com
-
Anziché creare più service account per API e servizi diversi, lo script crea un singolo account di servizio denominato
baremetal-gcr
e gli concede i seguenti ruoli IAM:roles/gkehub.admin
roles/gkehub.connect
roles/logging.logWriter
roles/monitoring.dashboardEditor
roles/monitoring.metricWriter
roles/monitoring.viewer
roles/opsconfigmonitoring.resourceMetadata.writer
roles/serviceusage.serviceUsageViewer
roles/stackdriver.resourceMetadata.writer
-
Crea le seguenti VM:
- Una VM per la workstation di amministrazione.
- Una VM per il nodo del control plane del cluster di amministrazione.
- Due VM per i nodi worker del cluster utente.
- Una VM per il nodo del control plane del cluster utente.
- Verifica che SSH sia abilitato su tutte le VM e che la workstation amministrativa abbia accesso SSH a tutte le altre VM create per i nodi del cluster.
-
Crea una rete di overlay Virtual Extensible LAN (VXLAN) per la connettività di livello 2
tra le VM. La VXLAN non è persistente, quindi se
riavvii un'istanza VM, la rete viene eliminata. La rete è configurata
per trovarsi nella subnet
10.200.0.0/24
. La connettività di livello 2 è un requisito per il bilanciatore del carico in bundle. -
Installa i seguenti strumenti sulla workstation di amministrazione:
bmctl
kubectl
- Docker
Lo script scarica anche la chiave del account di servizio per il account di servizio
baremetal-gcr
nella workstation amministrativa. -
Assicurati che
root@10.200.0.x
dalla workstation di amministrazione funzioni svolgendo le seguenti attività:- Genera una nuova chiave SSH sulla workstation di amministrazione.
- Aggiunge la chiave pubblica a tutte le altre VM nel deployment.
Lo script restituisce ogni comando eseguito e il relativo stato. Al termine, lo script restituisce quanto segue:
✅ Successfully set up SSH access from admin workstation to cluster node VMs. ✅ GCE Infrastructure setup complete. Please check the logs for any errors!!! ✅ If you do not see any errors in the output log, then you now have the following setup: |---------------------------------------------------------------------------------------------------------| | VM Name | L2 Network IP (VxLAN) | INFO | |---------------------------------------------------------------------------------------------------------| | abm-admin-cluster-cp | 10.200.0.3 | 🌟 Ready for use as control plane for the admin cluster | | abm-user-cluster-cp | 10.200.0.4 | 🌟 Ready for use as control plane for the user cluster | | abm-user-cluster-w1 | 10.200.0.5 | 🌟 Ready for use as worker for the user cluster | | abm-user-cluster-w2 | 10.200.0.6 | 🌟 Ready for use as worker for the user cluster | |---------------------------------------------------------------------------------------------------------|
-
Abilita le seguenti API Google Cloud :
Utilizza SSH per accedere alla VM della workstation di amministrazione,
abm-ws
, come root:gcloud compute ssh root@abm-ws --zone ZONE
Imposta le credenziali utente come Credenziali predefinite dell'applicazione (ADC):
gcloud auth application-default login
Segui le istruzioni per selezionare il tuo Account Google per ADC.
Genera un file di configurazione del cluster:
bmctl create config -c ADMIN_CLUSTER_NAME --project-id=PROJECT_ID
Verifica il file di configurazione del cluster di amministrazione:
Il seguente file di configurazione del cluster è compilato con i valori che hai fornito in precedenza. Oltre ai valori inseriti, tieni presente le seguenti differenze rispetto al file di configurazione generato:
- I commenti sono stati rimossi da questo esempio per migliorare la leggibilità.
- Lo script crea un singolo account di servizio con tutte le autorizzazioni richieste
e scarica la chiave
bm-gcr.json
a cui viene fatto riferimento nel file di configurazione.
gcrKeyPath: /root/bm-gcr.json sshPrivateKeyPath: /root/.ssh/id_rsa gkeConnectAgentServiceAccountKeyPath: /root/bm-gcr.json gkeConnectRegisterServiceAccountKeyPath: /root/bm-gcr.json cloudOperationsServiceAccountKeyPath: /root/bm-gcr.json --- apiVersion: v1 kind: Namespace metadata: name: cluster-ADMIN_CLUSTER_NAME --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: ADMIN_CLUSTER_NAME namespace: cluster-ADMIN_CLUSTER_NAME spec: type: admin profile: default anthosBareMetalVersion: BMCTL_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: 10.200.0.3 clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: 10.200.0.48 clusterOperations: projectID: PROJECT_ID location: ON_PREM_API_REGION storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 110
Sostituisci i contenuti del file di configurazione generato sulla workstation amministrativa con i contenuti dell'esempio precedente.
Apri il file generato,
bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml
e sostituisci i suoi contenuti con quelli dell'esempio che hai verificato nel passaggio precedente.Crea il cluster di amministrazione:
bmctl create cluster -c ADMIN_CLUSTER_NAME
Il comando
bmctl
mostra l'output sullo schermo mentre esegue i controlli preliminari e crea il cluster. Le informazioni dettagliate vengono scritte nei log nella cartellabaremetal/bmctl-workspace/abm-user-cluster-metallb/log
della workstation di amministrazione.La creazione del cluster può richiedere diversi minuti.
Nella console, vai alla pagina Cluster GKE.
Assicurati che sia selezionato il progetto in cui hai creato il cluster utente. Dovresti vedere il cluster amministratore elencato.
Accedi al cluster di amministrazione:
Fai clic sul link nel nome del cluster e, nel riquadro laterale, fai clic su Accedi.
Seleziona Accedi con la tua identità Google.
Fai clic su Login (Accedi).
Utilizza SSH per accedere alla workstation di amministrazione come root:
gcloud compute ssh root@abm-ws --zone ZONE
Verifica che il cluster di amministrazione sia stato creato e sia in esecuzione:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
L'output è simile al seguente:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Al termine dell'esplorazione, inserisci
exit
per disconnetterti dalla workstation amministrativa.Nella console Google Cloud , vai alla pagina Cluster GKE.
Fai clic su Crea.
Nella finestra di dialogo Crea un cluster, seleziona On-premise e fai clic su Configura per bare metal:
Assicurati di selezionare
PROJECT_ID
dall'elenco dei progetti.Nella barra di navigazione a sinistra, fai clic su Installa ambiente bootstrap.
Inserisci
ADMIN_CLUSTER_NAME
come nome del cluster di amministrazione.Seleziona
BMCTL_VERSION
come versione per il cluster di amministrazione. Lo script ha scaricato questa versione dello strumento a riga di comandobmctl
nella workstation di amministrazione. La versione di Google Distributed Cloud che installi deve corrispondere alla versionebmctl
.Nel campo Località dell'API Google Cloud, seleziona ON_PREM_API_REGION dall'elenco. Questa impostazione specifica la regione in cui viene eseguita l'API GKE On-Prem e la regione in cui vengono archiviati:
- I metadati del cluster necessari all'API GKE On-Prem per gestire il ciclo di vita del cluster
- I dati di Cloud Logging e Cloud Monitoring dei componenti di sistema
- Il log di controllo amministrativo creato da Cloud Audit Logs
Il nome, il progetto e la località del cluster identificano in modo univoco il cluster in Google Cloud.
Dalla riga di comando, utilizza SSH per accedere alla VM workstation amministrativa come root:
gcloud compute ssh root@abm-ws --zone ZONE
Puoi ignorare tutti i messaggi relativi all'aggiornamento della VM e completare questo tutorial. Se prevedi di mantenere le VM come ambiente di test, potresti voler aggiornare il sistema operativo o eseguire l'upgrade alla versione successiva come descritto nella documentazione di Ubuntu.
Imposta le credenziali utente come Credenziali predefinite dell'applicazione (ADC):
gcloud auth application-default login
Segui le istruzioni per selezionare il tuo Account Google per ADC.
Passa alla directory
baremetal/
ed esegui questo comando per creare il cluster di bootstrap.Il nome del cluster di bootstrap viene derivato anteponendo
bootstrap-
al nome del cluster di amministrazione.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID
Dopo che
bmctl
ha creato correttamente il cluster di bootstrap, viene visualizzato un output simile al seguente:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
Nella pagina Installa ambiente di bootstrap della sezione Esegui il bootstrap dell'ambiente dalla workstation di amministrazione, fai clic su Controlla connessione.
Se l'operazione riesce, la console visualizza
Connessione stabilita.Prima di continuare, devi stabilire la connessione al cluster di bootstrap. Se la connessione non viene stabilita, controlla gli argomenti che hai specificato per il comando
bmctl register bootstrap
:Assicurati che il valore di
--name
corrisponda al nome bootstrap derivato visualizzato nella sezione Impostazioni di base dell'ambiente di bootstrap.Assicurati che il valore di
--project-id
corrisponda all'ID del progetto che hai selezionato nella console.
Se devi modificare il nome del cluster di bootstrap o l'ID progetto, inserisci
Ctrl-C
per uscire dabmctl register bootstrap
e riesegui il comando.Fai clic su Networking nella barra di navigazione a sinistra.
Nella sezione Control plane, inserisci quanto segue nel campo IP nodo del control plane 1:
10.200.0.3
Questo è l'indirizzo IP della VM abm-admin-cluster-cp nella VXLAN creata dallo script.
Nella sezione Bilanciatore del carico, assicurati che sia selezionata l'opzione In bundle.
Nella sezione IP virtuali (VIP), inserisci quanto segue nel campo VIP del control plane:
10.200.0.48
Il passaggio successivo dipende dalla disponibilità del cluster di bootstrap. Il comando
bmctl register bootstrap
nella finestra del terminale deve essere eseguito per qualche minuto prima che il cluster di bootstrap venga visualizzato come membro registrato. Se, dopo alcuni minuti, non è ancora disponibile, controlla il nome del cluster di bootstrap e l'ID progetto che hai utilizzato. Se devi modificare il nome del cluster bootstrap o l'ID progetto, inserisciCtrl-C
nell'altra finestra del terminale per uscire dabmctl register bootstrap
ed eseguire di nuovo il comando.Fai clic su Verifica e crea.
La console mostra i messaggi di stato mentre verifica le impostazioni e crea il cluster.
Quando viene creato il cluster di amministrazione, il cluster di bootstrap sulla workstation di amministrazione viene eliminato. L'output del comando
bmctl register bootstrap
nell'altra finestra del terminale è simile al seguente:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
Utilizza SSH per accedere alla workstation di amministrazione come root:
gcloud compute ssh root@abm-ws --zone ZONE
Verifica che il cluster di amministrazione sia stato creato e sia in esecuzione:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
L'output è simile al seguente:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Al termine dell'esplorazione, inserisci
exit
per disconnetterti dalla workstation amministrativa.Dalla riga di comando, utilizza SSH per accedere alla VM workstation amministrativa come root:
gcloud compute ssh root@abm-ws --zone ZONE
Puoi ignorare tutti i messaggi relativi all'aggiornamento della VM e completare questo tutorial. Se prevedi di mantenere le VM come ambiente di test, potresti voler aggiornare il sistema operativo o eseguire l'upgrade alla versione successiva come descritto nella documentazione di Ubuntu.
Imposta le credenziali utente come Credenziali predefinite dell'applicazione (ADC):
gcloud auth application-default login
Segui le istruzioni per selezionare il tuo Account Google per ADC.
Passa alla directory
baremetal/
ed esegui questo comando per creare il cluster di bootstrap.Il nome del cluster di bootstrap viene derivato anteponendo
bootstrap-
al nome del cluster di amministrazione.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID
Dopo che
bmctl
ha creato correttamente il cluster di bootstrap, viene visualizzato un output simile al seguente:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
In una nuova finestra del terminale, verifica che il cluster di bootstrap sia stato registrato come membro del parco risorse:
gcloud container fleet memberships list \ --project=PROJECT_ID
Il comando
gcloud container bare-metal admin-clusters create
nel passaggio successivo dipende dalla disponibilità del cluster di bootstrap. Il comandobmctl register bootstrap
nell'altra finestra del terminale deve essere eseguito per alcuni minuti prima che il cluster di bootstrap venga visualizzato come membro registrato. Se, dopo qualche minuto, non è ancora elencato, controlla il nome del cluster di bootstrap e l'ID progetto che hai utilizzato. Se devi modificare il nome del cluster di bootstrap o l'ID progetto, inserisciCtrl-C
nell'altra finestra del terminale per uscire dabmctl register bootstrap
ed eseguire nuovamente il comando.Crea il cluster di amministrazione con il bilanciatore del carico in bundle:
Assicurati che i valori specificati corrispondano alle variabili di ambiente che hai specificato in precedenza per lo script.
gcloud container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --version=BMCTL_VERSION \ --max-pods-per-node=110 \ --control-plane-vip=10.200.0.48 \ --control-plane-load-balancer-port=443 \ --control-plane-node-configs node-ip=10.200.0.3 \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disks
In questo comando:
--control-plane-vip
: è impostato su10.200.0.48
. Questo è l'IP virtuale (VIP) sul bilanciatore del carico del server API Kubernetes del cluster.--control-plane-node-configs
:node-ip
è impostato su10.200.0.3
. Questo è l'indirizzo IP della VMabm-admin-cluster-cp
nella VXLAN creata dallo script.
Per un elenco completo dei flag e delle relative descrizioni, consulta la documentazione di riferimento di gcloud CLI.
L'output del comando è simile al seguente:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
Nell'output di esempio, la stringa
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
è ilOPERATION_ID
dell'operazione a lunga esecuzione. Puoi scoprire lo stato dell'operazione eseguendo il seguente comando in un'altra finestra del terminale:gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Al termine di
gcloud container bare-metal admin-clusters create
, l'output è simile al seguente:none{:.devsite-disable-click-to-copy} Created Anthos on bare metal Admin Cluster [https://gkeonprem.googleapis.com/v1/projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-gcloud-001]. NAME LOCATION VERSION MEMBERSHIP STATE abm-cluster-1 us-central1 1.31.300-gke.81 abm-cluster-1 RUNNING
Quando viene creato il cluster di amministrazione, il cluster di bootstrap sulla workstation di amministrazione viene eliminato. L'output del comando
bmctl register bootstrap
nell'altra finestra del terminale è simile al seguente:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
Utilizza SSH per accedere alla workstation di amministrazione come root:
gcloud compute ssh root@abm-ws --zone ZONE
Verifica che il cluster di amministrazione sia stato creato e sia in esecuzione:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
L'output è simile al seguente:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Al termine dell'esplorazione, inserisci
exit
per disconnetterti dalla workstation amministrativa.Nella directory in cui hai clonato
anthos-samples
, esegui il seguente comando per copiare i file di esempio per l'esempio di cluster utente MetalLB in una nuova cartella per il cluster di amministrazione:cp -r anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb \ anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
Passa alla directory
abm_admin_cluster_basic
:cd anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
Modifica i file Terraform:
variables.tf
:Definisci una variabile per gli indirizzi IP dei nodi del control plane (anche se ne utilizziamo solo uno per questa demo). Questa variabile dovrebbe essere simile alla voce
variable "control_plane_ips" { ... }
.Definisci una variabile per l'indirizzo VIP del control plane. Questa variabile deve essere simile alla voce
variable "control_plane_vip" { ... }
.
terraform.tfvars
:Assegna i valori delle variabili per le seguenti impostazioni del cluster di amministrazione:
Indirizzi IP dei nodi del control plane:
10.200.0.3
Indirizzo VIP del control plane:
10.200.0.48
main.tf
:Sostituisci la risorsa
google_gkeonprem_bare_metal_cluster
con la risorsagoogle_gkeonprem_bare_metal_admin_cluster
.Elimina la risorsa
google_gkeonprem_bare_metal_node_pool
e la sezionelifecycle
correlata.Aggiorna la risorsa per utilizzare le variabili appena definite.
Ecco un esempio di come potrebbe apparire il file
main.tf
quando viene modificato per creare un cluster amministrativo:/** * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #[START anthos_onprem_terraform_bare_metal_admin_cluster_basic_main] module "enable_google_apis_primary" { source = "terraform-google-modules/project-factory/google//modules/project_services" version = "~> 14.0" project_id = var.project_id activate_apis = [ "anthos.googleapis.com", "anthosaudit.googleapis.com", "anthosgke.googleapis.com", "cloudresourcemanager.googleapis.com", "compute.googleapis.com", "connectgateway.googleapis.com", "container.googleapis.com", "file.googleapis.com", "gkehub.googleapis.com", "iam.googleapis.com", "kubernetesmetadata.googleapis.com", "logging.googleapis.com", "monitoring.googleapis.com", "opsconfigmonitoring.googleapis.com", "serviceusage.googleapis.com", "stackdriver.googleapis.com" ] disable_services_on_destroy = false } # Enable GKE OnPrem API resource "google_project_service" "default" { project = var.project_id service = "gkeonprem.googleapis.com" disable_on_destroy = false } # Create a baremetal admin cluster and enroll it with the gkeonprem API resource "google_gkeonprem_bare_metal_admin_cluster" "admin-cluster-basic" { name = var.admin_cluster_name description = "Bare metal admin cluster" provider = google depends_on = [google_project_service.default] location = var.region bare_metal_version = var.bare_metal_version network_config { island_mode_cidr { service_address_cidr_blocks = ["0.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] } } node_config { max_pods_per_node = 250 } control_plane { control_plane_node_pool_config { node_pool_config { operating_system = "LINUX" dynamic "node_configs" { for_each = var.admin_cp_ips content { node_ip = node_configs.value } } } } } load_balancer { port_config { control_plane_load_balancer_port = 443 } vip_config { control_plane_vip = var.admin_cp_vip } } storage { lvp_share_config { lvp_config { path = "/mnt/localpv-share" storage_class = "local-shared" } shared_path_pv_count = 5 } lvp_node_mounts_config { path = "/mnt/localpv-disk" storage_class = "local-disks" } } dynamic "security_config" { for_each = length(var.admin_user_emails) == 0 ? [] : [1] content { authorization { dynamic "admin_users" { for_each = var.admin_user_emails content { username = admin_users.value } } } } } lifecycle { ignore_changes = [ annotations["onprem.cluster.gke.io/user-cluster-resource-link"], annotations["alpha.baremetal.cluster.gke.io/cluster-metrics-webhook"], annotations["baremetal.cluster.gke.io/operation"], annotations["baremetal.cluster.gke.io/operation-id"], annotations["baremetal.cluster.gke.io/start-time"], annotations["baremetal.cluster.gke.io/upgrade-from-version"] ] } } #[END anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
Per saperne di più sulla risorsa Terraform per i cluster di amministrazione, consulta google_gkeonprem_bare_metal_admin_cluster nel registro Terraform.
Dalla riga di comando, utilizza SSH per accedere alla VM workstation amministrativa come root:
gcloud compute ssh root@abm-ws --zone ZONE
Puoi ignorare tutti i messaggi relativi all'aggiornamento della VM e completare questo tutorial. Se prevedi di mantenere le VM come ambiente di test, potresti voler aggiornare il sistema operativo o eseguire l'upgrade alla versione successiva come descritto nella documentazione di Ubuntu.
Imposta le credenziali utente come Credenziali predefinite dell'applicazione (ADC):
gcloud auth application-default login
Segui le istruzioni per selezionare il tuo Account Google per ADC.
Passa alla directory
baremetal/
ed esegui questo comando per creare il cluster di bootstrap.Il nome del cluster di bootstrap viene derivato anteponendo
bootstrap-
al nome del cluster di amministrazione.bmctl register bootstrap \ --ssh-key=/root/.ssh/id_rsa \ --name=bootstrap-ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID
Dopo che
bmctl
ha creato correttamente il cluster di bootstrap, viene visualizzato un output simile al seguente:[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
Inizializza e crea il piano Terraform:
terraform init
Terraform installa tutte le librerie necessarie, ad esempio il provider Google Cloud .
Esamina la configurazione e apporta modifiche, se necessario:
terraform plan
Applica il piano Terraform per creare il cluster di amministrazione:
terraform apply
La creazione del cluster di amministrazione richiede 15 minuti o più. Al termine della creazione del cluster, viene visualizzato un messaggio simile al seguente:
... google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Still creating... [20m10s elapsed] google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Creation complete after 20m11s [id=projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-terra002] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Quando viene creato il cluster di amministrazione, il cluster di bootstrap sulla workstation di amministrazione viene eliminato. L'output del comando
bmctl register bootstrap
nell'altra finestra del terminale è simile al seguente:... [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK [2024-04-15 23:16:38+0000] Please run [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes [2024-04-15 23:16:38+0000] to get cluster nodes status. [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK [2024-04-15 23:24:30+0000] Flushing logs... OK [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster. [2024-04-15 23:24:30+0000] Deleting membership... OK [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
Nella console, vai alla pagina Cluster GKE.
Assicurati che sia selezionato il progetto in cui hai creato il cluster utente. Dovresti vedere il cluster amministratore elencato.
Accedi al cluster di amministrazione:
Fai clic sul link nel nome del cluster e, nel riquadro laterale, fai clic su Accedi.
Seleziona Accedi con la tua identità Google.
Fai clic su Login (Accedi).
Utilizza SSH per accedere alla workstation di amministrazione come root:
gcloud compute ssh root@abm-ws --zone ZONE
Verifica che il cluster di amministrazione sia stato creato e sia in esecuzione:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
L'output è simile al seguente:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Al termine dell'esplorazione, inserisci
exit
per disconnetterti dalla workstation amministrativa.Utilizza SSH per accedere alla VM della workstation di amministrazione,
abm-ws
, come root:gcloud compute ssh root@abm-ws --zone ZONE
Genera un file di configurazione del cluster:
bmctl create config -c abm-user-cluster-metallb \ --project-id=PROJECT_ID
Nel seguente file di configurazione del cluster utente, imposta il tuo indirizzo email nella sezione
clusterSecurity
e verifica il resto delle impostazioni:Il seguente file di configurazione del cluster è compilato con i valori che hai inserito in precedenza nella tabella di pianificazione. Oltre ai valori che hai inserito, tieni presente le seguenti differenze rispetto al file di configurazione generato:
- I commenti sono stati rimossi da questo esempio per migliorare la leggibilità.
- La sezione delle credenziali è stata rimossa come di consueto per i cluster utente.
- Il tipo di cluster,
spec.type
, è stato impostato suuser
. - Il campo
spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts
è stato aggiunto per concedereclusterrole/cluster-admin
al tuo account. Tra le altre cose, questo campo ti consente di accedere al cluster nella consoleGoogle Cloud per visualizzare ulteriori dettagli sul cluster.
--- apiVersion: v1 kind: Namespace metadata: name: cluster-abm-user-cluster-metallb --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: abm-user-cluster-metallb namespace: cluster-abm-user-cluster-metallb spec: type: user profile: default anthosBareMetalVersion: BMCTL_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: 10.200.0.4 clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: 10.200.0.50 ingressVIP: 10.200.0.51 addressPools: - name: pool1 addresses: - 10.200.0.51-10.200.0.70 clusterOperations: projectID: PROJECT_ID location: ON_PREM_API_REGION clusterSecurity: authorization: clusterAdmin: gcpAccounts: - YOUR_EMAIL_ADDRESS storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 250 --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-abm-user-cluster-metallb spec: clusterName: abm-user-cluster-metallb nodes: - address: 10.200.0.5
Sostituisci i contenuti del file di configurazione generato sulla workstation amministrativa con i contenuti dell'esempio precedente.
Apri il file generato,
bmctl-workspace/abm-user-cluster-metallb/abm-user-cluster-metallb.yaml
e sostituisci i suoi contenuti con quelli dell'esempio che hai verificato nel passaggio precedente.Crea il cluster utente:
bmctl create cluster -c abm-user-cluster-metallb \ --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Il comando
bmctl
mostra l'output sullo schermo mentre esegue i controlli preliminari e crea il cluster. Le informazioni dettagliate vengono scritte nei log nella cartellabaremetal/bmctl-workspace/abm-user-cluster-metallb/log
della workstation di amministrazione.La creazione del cluster può richiedere diversi minuti.
Nella console Google Cloud , vai alla pagina Cluster GKE.
Assicurati che sia selezionato il progetto in cui hai creato il cluster utente. Dovresti visualizzare sia il cluster di amministrazione sia quello utente nell'elenco.
Accedi al cluster utente:
Fai clic sul link nel nome del cluster e, nel riquadro laterale, fai clic su Accedi.
Seleziona Accedi con la tua identità Google.
Fai clic su Login (Accedi).
Ripeti gli stessi passaggi per accedere al cluster di amministrazione.
Nella console, vai alla pagina Crea un cluster bare metal.
Assicurati che sia selezionato il progetto Google Cloud in cui hai creato il cluster di amministrazione.
Fai clic su Crea cluster.
Nella finestra di dialogo, fai clic su On-premise.
Accanto a Bare metal, fai clic su Configura. Viene visualizzata la pagina Prerequisiti.
Nella sezione Scegli il tipo di cluster, seleziona Crea un cluster utente per un cluster di amministrazione esistente.
Fai clic su Avanti.
Inserisci un nome per il cluster di utenti o utilizza quello predefinito.
Assicurati che sia selezionato il cluster di amministrazione appena creato. Puoi utilizzare i valori predefiniti per le altre impostazioni in questa pagina.
Fai clic su Networking nella barra di navigazione a sinistra.
Nella sezione Control plane, inserisci quanto segue nel campo IP nodo del control plane 1:
10.200.0.4
Questo è l'indirizzo IP della VM
abm-user-cluster-cp1
nella VXLAN creata dallo script.Nella sezione Bilanciatore del carico, utilizza il bilanciatore del carico predefinito, In bundle con MetalLB.
Nella sezione Nuovo pool di indirizzi, inserisci il seguente intervallo di indirizzi IP nel campo Intervallo di indirizzi IP 1:
10.200.0.51-10.200.0.70
Fai clic su Fine.
Nella sezione IP virtuali, inserisci il seguente indirizzo IP nel campo VIP del control plane:
10.200.0.50
Inserisci il seguente indirizzo IP per l'indirizzo VIP in entrata:
10.200.0.51
Utilizza gli indirizzi IP predefiniti nella sezione CIDR di servizi e pod.
Fai clic su default-pool nella barra di navigazione a sinistra.
Inserisci il seguente indirizzo IP nel campo Indirizzo nodo 1:
10.200.0.5
Questo è l'indirizzo IP della VM abm-user-cluster-w1 nella VXLAN creata dallo script.
Fai clic su Verifica e crea per creare il cluster di utenti.
La creazione del cluster utente richiede almeno 15 minuti. La console mostra i messaggi di stato durante la verifica delle impostazioni e la creazione del cluster.
Se si verifica un problema con la configurazione, la console visualizza un messaggio di errore che dovrebbe essere abbastanza chiaro da consentirti di risolvere il problema di configurazione e riprovare a creare il cluster.
Per visualizzare ulteriori informazioni sulla procedura di creazione, fai clic su Mostra dettagli per visualizzare un riquadro laterale. Fai clic su
per chiudere il riquadro dei dettagli.Quando il cluster viene creato, viene visualizzato Stato cluster: in esecuzione.
Dopo aver creato il cluster, fai clic su
Cluster per tornare alla pagina Cluster.Accedi al cluster utente:
Fai clic sul link nel nome del cluster e, nel riquadro laterale, fai clic su Accedi.
Seleziona Accedi con la tua identità Google.
Fai clic su Login (Accedi).
Ripeti gli stessi passaggi per accedere al cluster di amministrazione.
Esegui questo comando per creare il cluster utente:
gcloud container bare-metal clusters create abm-user-cluster-metallb \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/ON_PREM_API_REGION/memberships/ADMIN_CLUSTER_NAME \ --location=ON_PREM_API_REGION \ --version=BMCTL_VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=10.200.0.51-10.200.0.70' \ --control-plane-node-configs='node-ip=10.200.0.4' \ --control-plane-vip=10.200.0.50 \ --control-plane-load-balancer-port=443 \ --ingress-vip=10.200.0.51 \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --lvp-share-path=/mnt/localpv-share \ --lvp-share-storage-class=local-shared \ --lvp-node-mounts-config-path=/mnt/localpv-disk \ --lvp-node-mounts-config-storage-class=local-disks
Dopo aver eseguito il comando, visualizzi un output simile al seguente:
Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678304606537-5f668bde5c57e-341effde-b612ff8a] to complete...
Nell'output di esempio, la stringa
operation-1678304606537-5f668bde5c57e-341effde-b612ff8a
è ilOPERATION_ID
dell'operazione a lunga esecuzione.Per scoprire lo stato dell'operazione, apri un'altra finestra del terminale ed esegui il comando.
gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Sostituisci
OPERATION_ID
con la stringa corrispondente dall'output del passaggio precedente.La creazione del cluster richiede circa 15 minuti o più. Durante la creazione del cluster, puoi eseguire il comando precedente di tanto in tanto per ottenere lo stato attuale.
Quando il cluster viene creato, viene visualizzato un output simile al seguente:
Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb].
Per saperne di più sul comando
gcloud container bare-metal clusters create
, incluse le descrizioni di ogni flag, consulta la pagina container bare-metal clusters create per la risorsa dei cluster nel riferimento gcloud CLI.Esegui questo comando per creare un pool di nodi:
gcloud container bare-metal node-pools create NODE_POOL_NAME \ --cluster=abm-user-cluster-metallb \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --node-configs='node-ip=10.200.0.5'
Sostituisci
NODE_POOL_NAME
con un nome per il pool di nodi.Dopo aver eseguito il comando, visualizzi un output simile al seguente:
Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678308682052-5f669b0d132cb-6ebd1c2c-816287a7] to complete...
La creazione del pool di nodi richiede circa 5 minuti o meno. Quando il pool di nodi viene creato, viene visualizzato un output simile al seguente:
Created node pool in Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb/bareMetalNodePools/NODE_POOL_NAME].
Vai alla pagina Cluster Kubernetes nella console:
Vai alla pagina Crea un cluster bare metal
Assicurati che sia selezionato il progetto in cui hai creato il cluster utente. Dovresti visualizzare sia il cluster di amministrazione sia quello utente nell'elenco.
Accedi al cluster utente:
Fai clic sul link nel nome del cluster e, nel riquadro laterale, fai clic su Accedi.
Seleziona Accedi con la tua identità Google.
Fai clic su Login (Accedi).
Ripeti gli stessi passaggi per accedere al cluster di amministrazione.
Nella directory in cui hai clonato
anthos-samples
, passa alla directory in cui si trova l'esempio di Terraform:cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
Il campione fornisce un file di variabili di esempio da passare a
main.tf
.Crea una copia del file
terraform.tfvars.sample
:cp terraform.tfvars.sample terraform.tfvars
Verifica i valori nel seguente esempio:
Il seguente file di variabili Terraform,
terraform.tfvars.sample
, è precompilato con indirizzi IP e con i valori inseriti nelle sezioni precedenti di questa guida.Sostituisci
ADMIN_2_EMAIL_ADDRESS
con un indirizzo email associato al tuo account Google Cloud o rimuovilo quando modifiche il file delle variabili.Per saperne di più sugli argomenti in questo esempio per i quali stai impostando le variabili, consulta Riferimento agli argomenti nella documentazione di Terraform per i cluster utente bare metal.
Sostituisci i contenuti della tua copia del file delle variabili con i contenuti dell'esempio precedente.
Inizializza e crea il piano Terraform:
terraform init
Terraform installa tutte le librerie necessarie, ad esempio il provider Google Cloud .
Esamina la configurazione e apporta modifiche, se necessario:
terraform plan
Applica il piano Terraform per creare il cluster utente:
terraform apply
La creazione del cluster utente richiede almeno 15 minuti. Puoi visualizzare il cluster nella console Google Cloud nella pagina Cluster GKE.
Nella console Google Cloud , vai alla pagina Cluster GKE.
Assicurati che sia selezionato il progetto in cui hai creato il cluster utente. Dovresti visualizzare sia il cluster di amministrazione sia quello utente nell'elenco.
Accedi al cluster utente:
Fai clic sul link nel nome del cluster e, nel riquadro laterale, fai clic su Accedi.
Seleziona Accedi con la tua identità Google.
Fai clic su Login (Accedi).
Ripeti gli stessi passaggi per accedere al cluster di amministrazione.
Per eliminare il cluster utente con
bmctl
, esegui questo comando dalla VM workstation di amministrazione,abm-ws
:bmctl reset \ --cluster abm-user-cluster-metallb \ --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Nella console, vai alla pagina Cluster GKE.
Nell'elenco dei cluster, fai clic sul cluster utente.
Nel riquadro Dettagli, fai clic su Visualizza altri dettagli.
Nella parte superiore della finestra, fai clic su
Elimina.Quando ti viene chiesto di confermare, inserisci il nome del cluster e fai clic su Elimina.
Fai clic su
nell'angolo in alto a destra per visualizzare lo stato dell'eliminazione. Potresti dover aggiornare la pagina per aggiornare l'elenco dei cluster.Per eliminare il cluster, esegui questo comando:
gcloud container bare-metal clusters delete abm-user-cluster-metallb \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --force
Il flag
--force
consente di eliminare un cluster con node pool. Senza il flag--force
, devi prima eliminare i pool di nodi e poi eliminare il cluster.Esegui questo comando dalla directory in cui si trovano i file di esempio del cluster utente Terraform, ad esempio
main.tf
:terraform destroy
Annulla la registrazione del cluster di amministrazione dall'API GKE On-Prem:
gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Connettiti alla workstation di amministrazione:
gcloud compute ssh root@abm-ws --zone ZONE
Elimina il cluster di amministrazione:
bmctl reset -c ADMIN_CLUSTER_NAME
bmctl
annulla la registrazione del cluster dal parco risorse e poi lo elimina. Attendi che il cluster venga eliminato prima di eliminare le VM.Esci dalla workstation di amministrazione:
exit
Elenca tutte le VM che hanno
abm
nel nome:gcloud compute instances list | grep 'abm'
Verifica che tu sia d'accordo con l'eliminazione di tutte le VM che contengono
abm
nel nome.Dopo la verifica, puoi eliminare le VM
abm
eseguendo questo comando:gcloud compute instances list --format="value(name)" | \ grep 'abm' | \ xargs gcloud compute instances delete --quiet --zone ZONE
Esegui questo comando per eliminare il account di servizio e, quando richiesto, inserisci
y
:gcloud iam service-accounts delete baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
Passaggi successivi
Per iniziare a creare cluster sul tuo hardware, consulta Pianificare un'installazione di base sul tuo hardware e Creare cluster di base sul tuo hardware.
Per i requisiti di installazione dettagliati, vedi Panoramica dei prerequisiti di installazione.
Per ulteriori informazioni sull'installazione, consulta la panoramica sulla creazione del cluster.
Per istruzioni sul deployment nel cluster, vedi Eseguire il deployment di un'applicazione.
2. Crea le VM e la rete
In questa sezione, scarica ed esegui lo script install_admin_cluster.sh
.
3. Crea il cluster di amministrazione
bmctl
Per creare un cluster di amministrazione con bmctl
, accedi alla VM della workstation di amministrazione in una finestra del terminale ed esegui i comandi da lì:
Verifica il cluster di amministrazione
Puoi trovare il file kubeconfig del cluster di amministrazione nella workstation amministrativa nella
directory bmctl-workspace
dell'account root. Per verificare l'implementazione,
completa i seguenti passaggi:
Console
Per creare un cluster di amministrazione nella console, devi eseguire bmctl
register bootstrap
dalla VM della workstation di amministrazione per creare un cluster di bootstrap.
Mentre il comando bmctl register bootstrap
è in esecuzione, esegui i passaggi nella
console per creare il cluster di amministrazione.
Inserisci le impostazioni di base dell'ambiente di bootstrap
Per creare il cluster di bootstrap, segui i passaggi descritti nella sezione successiva anziché quelli visualizzati nella console. Lascia la pagina della console visualizzata perché continuerai da lì a creare il cluster di amministrazione.
Crea il cluster di bootstrap
Quando utilizzi un client API GKE On-Prem, ad esempio la console, per creare un cluster di amministrazione, devi creare un cluster di bootstrap sulla workstation di amministrazione. Il cluster di bootstrap ospita i controller Kubernetes necessari per creare il cluster di amministrazione.
Crea il cluster di amministrazione
Networking
Verifica il cluster di amministrazione
Puoi trovare il file kubeconfig del cluster di amministrazione nella workstation amministrativa nella
directory bmctl-workspace
dell'account root. Per verificare l'implementazione,
completa i seguenti passaggi:
Interfaccia a riga di comando gcloud
Le seguenti istruzioni richiedono due finestre del terminale. In una finestra del terminale,
esegui bmctl register bootstrap
per creare un cluster di bootstrap. Mentre è in esecuzione il comando
bmctl register bootstrap
, esegui gcloud container
bare-metal admin-clusters create
in un'altra finestra del terminale per creare il cluster
di amministrazione.
Crea il cluster di bootstrap
Quando utilizzi un client API GKE On-Prem, come gcloud CLI, per creare un cluster di amministrazione, devi creare un cluster di bootstrap sulla workstation di amministrazione. Il cluster di bootstrap ospita i controller Kubernetes necessari per creare il cluster di amministrazione.
Crea il cluster di amministrazione
Verifica il cluster di amministrazione
Puoi trovare il file kubeconfig del cluster di amministrazione nella workstation amministrativa nella
directory bmctl-workspace
dell'account root. Per verificare l'implementazione,
completa i seguenti passaggi:
Terraform
Le seguenti istruzioni richiedono due finestre del terminale. In una finestra del terminale,
esegui bmctl register bootstrap
per creare un cluster di bootstrap. Mentre è in esecuzione il comando
bmctl register bootstrap
, esegui i comandi Terraform in
un'altra finestra del terminale per creare il cluster di amministrazione.
Modifica i file di esempio del cluster utente in modo che funzionino per un cluster di amministrazione
Il repository anthos-samples
non include un esempio specifico
per la creazione di un cluster di amministrazione Google Distributed Cloud. I passaggi seguenti mostrano come creare un cluster di amministrazione modificando un esempio Terraform di cluster utente esistente.
Crea il cluster di bootstrap
Quando utilizzi un client API GKE On-Prem, come Terraform, per creare un cluster di amministrazione, devi creare un cluster di bootstrap sulla workstation di amministrazione. Il cluster di bootstrap ospita i controller Kubernetes necessari per creare il cluster di amministrazione.
Crea il cluster di amministrazione
Verifica il cluster di amministrazione
Puoi trovare il file kubeconfig del cluster di amministrazione nella workstation amministrativa nella
directory bmctl-workspace
dell'account root. Per verificare l'implementazione,
completa i seguenti passaggi:
4. Crea il cluster utente
Puoi utilizzare la console Google Cloud , Google Cloud CLI o Terraform per creare
il cluster utente. Per semplicità, utilizza abm-user-cluster-metallb
per il nome del cluster utente, in modo che corrisponda al nome hardcoded negli script Terraform.
bmctl
Console
Per creare un cluster utente nella console:
Impostazioni di base del cluster
Networking
Lo script che hai eseguito per creare le VM e il cluster di amministrazione ha creato anche una
VXLAN di livello 2 con indirizzi IP nella subnet 10.200.0.0/24
.
Crea un node pool
Il cluster utente deve avere almeno un pool di nodi per i nodi worker.
Crea il cluster
Interfaccia a riga di comando gcloud
Per creare il cluster utenti:
Crea un node pool
Dopo aver creato il cluster, puoi creare un pool di nodi per il cluster.
Per creare un pool di nodi:
Terraform
Puoi utilizzare il seguente esempio di configurazione di base per creare un cluster utente
con il bilanciatore del carico MetalLB in bundle. Per saperne di più, consulta la
documentazione di riferimento di google_gkeonprem_bare_metal_cluster
.
5. Esegui la pulizia
Segui queste istruzioni per rimuovere i cluster e le VM che hai creato con questa guida.
Elimina il cluster utente
bmctl
Console
Interfaccia a riga di comando gcloud
Per informazioni sugli altri flag, vedi gcloud container bare-metal clusters delete.
Terraform
Il comando terraform destroy
termina le risorse create quando hai
eseguito terraform apply
per creare il cluster utente.
Attendi l'eliminazione del cluster utente prima di eliminare il cluster di amministrazione e le VM.