Questa pagina mostra come creare un cluster di amministrazione per Google Distributed Cloud. Il cluster di amministrazione gestisce i cluster utente che eseguono i tuoi carichi di lavoro. Se vuoi utilizzare i domini di topologia, consulta Creare un cluster di amministrazione da utilizzare con i domini di topologia.
Questa pagina è rivolta ad amministratori, architetti e operatori che configurano, monitorano e gestiscono l'infrastruttura tecnica. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli e attività comuni degli utenti di GKE Enterprise.
Per maggiori dettagli sul cluster di amministrazione, consulta la panoramica dell'installazione.
Prima di iniziare
Assicurati di aver configurato la workstation amministrativa e di potervi accedere come descritto in Creazione di una workstation amministrativa.
Assicurati che i file della chiave JSON per i service account si trovino nella workstation amministrativa.
Consulta il documento di pianificazione degli indirizzi IP. Assicurati di avere a disposizione indirizzi IP sufficienti per i tre nodi del control plane e un VIP del control plane. Se prevedi di creare cluster utente kubeception, devi avere a disposizione un numero sufficiente di indirizzi IP per i nodi del control plane di questi cluster utente.
Rivedi la panoramica del bilanciamento del carico e riconsidera la tua decisione sul tipo di bilanciatore del carico che vuoi utilizzare. Per i bilanciatori del carico manuali, devi configurare il bilanciatore del carico prima di creare il cluster di amministrazione.
Se utilizzi
gkectl
per creare il cluster di amministrazione, decidi se vuoi utilizzare un registro pubblico o privato per i componenti di Google Distributed Cloud. Per informazioni sull'utilizzo di un registro Docker privato, consultaprivateRegistry
. Né Terraform né la console Google Cloud supportano l'utilizzo di un registro Docker privato per i componenti di sistema.Decidi quale tipo di sistema operativo vuoi eseguire sui nodi del cluster di amministrazione.
Se la tua organizzazione richiede che il traffico in uscita passi attraverso un server proxy, assicurati di inserire nella lista consentita le API richieste e l'indirizzo di Artifact Registry.
Nella versione 1.29 e successive, i controlli preflight lato server sono abilitati per impostazione predefinita. I controlli preliminari lato server richiedono regole firewall aggiuntive. In Regole firewall per i cluster di amministrazione, cerca "Controlli preliminari" e assicurati che tutte le regole firewall richieste siano configurate. I controlli preliminari lato server vengono eseguiti sul cluster di bootstrap anziché localmente sulla workstation di amministrazione.
Crea un cluster di amministrazione con lo strumento che preferisci
Questa sezione fornisce i passaggi per creare un cluster di amministrazione utilizzando gkectl
,
Terraform e la console Google Cloud . Per informazioni che ti aiutino a scegliere uno strumento e per conoscere le limitazioni di alcuni strumenti, vedi Scegliere uno strumento per gestire il ciclo di vita del cluster.
gkectl
Per impostazione predefinita nella versione 1.32 e successive, i nuovi cluster creati utilizzando gkectl
vengono
creati con il cluster avanzato abilitato. Assicurati di esaminare le
differenze quando esegui cluster avanzati.
Se non vuoi attivare il cluster avanzato, devi impostare
enableAdvancedCluster
su false
nel file di configurazione.
Panoramica della procedura
Di seguito sono riportati i passaggi principali per creare un cluster di amministrazione:
- Compila i file di configurazione.
- Specifica i dettagli del nuovo cluster di amministrazione completando e convalidando un file di configurazione del cluster di amministrazione, un file di configurazione delle credenziali ed eventualmente un file di blocco IP.
- Importa le immagini del sistema operativo in vSphere e invia le immagini container al registro privato, se applicabile.
- Esegui
gkectl prepare
.
- Crea un cluster di amministrazione.
- Utilizza
gkectl
per creare un nuovo cluster di amministrazione come specificato nei file di configurazione completati. Quando Google Distributed Cloud crea un cluster di amministrazione, esegue il deployment di un cluster Kubernetes in Docker (kind) per ospitare temporaneamente i controller Kubernetes necessari per creare il cluster di amministrazione. Questo cluster temporaneo è chiamato cluster di bootstrap. I cluster utente vengono creati e sottoposti ad upgrade dall'amministratore che li gestisce senza l'utilizzo di un cluster di bootstrap.
- Verifica che il cluster di amministrazione sia in esecuzione.
- Utilizza
kubectl
per visualizzare i nodi del cluster.
Al termine di questa procedura, avrai un cluster di amministrazione in esecuzione che potrai utilizzare per creare e gestire i cluster utente.
Se utilizzi Controlli di servizio VPC, potresti visualizzare errori quando esegui alcuni comandi gkectl
, ad esempio "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Per evitare questi errori, aggiungi
il parametro --skip-validation-gcp
ai tuoi comandi.
Compila il file di configurazione
Assicurati che la workstation di amministrazione disponga della versione richiesta di
gkectl
. In genere, utilizzi la stessa versione digkectl
della versione che verrà utilizzata quando crei il cluster. Specifica la versione del cluster nel campogkeOnPremVersion
del file di configurazione del cluster. Durante la creazione del cluster vengono applicate le seguenti regole di versione:La versione secondaria di
gkectl
non può essere inferiore alla versione secondaria del cluster. Ad esempio, la creazione di un cluster 1.30 utilizzando la versione 1.29 digkectl
non è consentita. Le versioni patch non sono importanti. Ad esempio, puoi utilizzare la versione 1.29.0-gke.1456 digkectl
per creare un cluster con una patch più recente, ad esempio 1.29.1000-gke.94.La versione secondaria di
gkectl
non può essere superiore di più di due versioni secondarie rispetto alla versione del cluster. Ad esempio, se crei un cluster 1.28, la versionegkectl
può essere 1.29 o 1.30. Tuttavia, non puoi utilizzare la versione 1.31 perché è tre versioni secondarie successive alla versione del cluster.gkectl
Se necessario, consulta la sezione Scaricare
gkectl
per ottenere una versione supportata digkectl
.
Se hai utilizzato gkeadm
per creare la workstation di amministrazione, è stato generato un file di configurazione
denominato admin-cluster.yaml
.
Se non hai utilizzato gkeadm
per creare la workstation di amministrazione, genera
admin-cluster.yaml
eseguendo questo comando sulla workstation di amministrazione:
gkectl create-config admin
Questo file di configurazione serve per creare il cluster di amministrazione.
Familiarizza con il file di configurazione esaminando il documento File di configurazione del cluster di amministrazione. Ti consigliamo di tenere aperto questo documento in una scheda o finestra separata, perché lo consulterai mentre completi i passaggi successivi.
name
Se vuoi specificare un nome per il cluster di amministrazione, compila il campo
name
.
bundlePath
Il bundle è un file compresso che contiene i componenti del cluster. È incluso nella workstation di amministrazione. Questo campo è già compilato per te.
vCenter
I campi di questa sezione sono già compilati con i valori inseriti quando hai creato la workstation amministrativa.
enableAdvancedCluster
Se vuoi attivare la funzionalità avanzata del cluster in anteprima, imposta
enableAdvancedCluster
su true
.
Tieni presenti le seguenti limitazioni relative all'anteprima avanzata del cluster:
- Puoi abilitare il cluster avanzato al momento della creazione del cluster solo per i nuovi cluster 1.31.
- Una volta abilitato il cluster avanzato, non potrai eseguire l'upgrade del cluster alla versione 1.32. Attiva il cluster avanzato solo in un ambiente di test.
network
Compila la sezione
network.controlPlaneIPBlock
e la sezione
network.hostConfig
. Imposta anche
adminMaster.replicas
su 3
.
I campi network.podCIDR e network.serviceCIDR hanno valori precompilati che puoi lasciare invariati a meno che non siano in conflitto con gli indirizzi già utilizzati nella tua rete. Kubernetes utilizza questi intervalli per assegnare indirizzi IP a pod e servizi nel cluster.
Compila il resto dei campi nella sezione di rete del file di configurazione in base alle necessità.
loadBalancer
Metti da parte un VIP per il server API Kubernetes del cluster di amministrazione. Fornisci
il tuo VIP come valore per
loadBalancer.vips.controlPlaneVIP
Per saperne di più, vedi VIP nella subnet del cluster di amministrazione.
Decidi il tipo di bilanciamento del carico che vuoi utilizzare. Le opzioni sono:
Bilanciamento del carico in bundle MetalLB. Imposta
loadBalancer.kind
su"MetalLB"
.Bilanciamento del carico manuale. Imposta
loadBalancer.kind
su"ManualLB"
e rimuovi la sezionemanualLB
.
Per saperne di più sulle opzioni di bilanciamento del carico, consulta la Panoramica del bilanciamento del carico.
antiAffinityGroups
Imposta antiAffinityGroups.enabled
su true
o false
in base alle tue preferenze.
Utilizza questo campo per specificare se vuoi che Google Distributed Cloud crei regole anti-affinità Distributed Resource Scheduler (DRS) di VMware per i nodi del cluster di amministrazione, in modo da distribuirli in almeno tre host fisici del data center.
adminMaster
Se vuoi specificare CPU e memoria per i nodi del control plane del cluster di amministrazione, compila i campi cpus
e memoryMB
nella sezione adminMaster
.
I cluster di amministrazione devono avere tre nodi del control plane. Imposta il campo replicas
nella sezione adminMaster
su 3
.
proxy
Se la rete che ospiterà i nodi del cluster di amministrazione si trova dietro un server proxy,
compila la sezione
proxy
.
privateRegistry
Decidi dove vuoi conservare le immagini container per i componenti di Google Distributed Cloud. Le opzioni sono:
Artifact Registry
Il tuo registro Docker privato.
Se vuoi utilizzare il tuo registro privato, compila la sezione
privateRegistry
.
componentAccessServiceAccountKeyPath
Google Distributed Cloud utilizza il account di servizio di accesso ai componenti per scaricare i componenti del cluster da Artifact Registry. Questo campo contiene il percorso di un file delle chiavi JSON per l'account di servizio di accesso ai componenti.
Questo campo è già compilato per te.
gkeConnect
Registra il cluster di amministrazione
in un parco risorse Google Cloud compilando la sezione
gkeConnect
. Se includi le sezioni stackdriver
e cloudAuditLogging
nel file di configurazione, l'ID in gkeConnect.projectID
deve corrispondere all'ID impostato in stackdriver.projectID
e cloudAuditLogging.projectID
. Se gli ID progetto non sono uguali, la creazione del cluster non riesce.
Nella versione 1.28 e successive, puoi specificare facoltativamente una regione in cui vengono eseguiti i servizi Fleet e
Connect in gkeConnect.location
. Se non includi questo campo,
il cluster utilizza le istanze globali di questi servizi.
Se includi gkeConnect.location
, la regione specificata deve essere la stessa configurata in cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
e gkeOnPremAPI.location
. Se le regioni non sono uguali, la creazione del cluster non va a buon fine.
gkeOnPremAPI
Se l'API GKE On-Prem è abilitata nel tuo progettoGoogle Cloud , tutti i cluster del progetto vengono registrati automaticamente nell'API GKE On-Prem nella regione configurata in stackdriver.clusterLocation
.
La regione gkeOnPremAPI.location
deve essere la stessa specificata in
cloudAuditLogging.clusterLocation
, gkeConnect.location
e stackdriver.clusterLocation
. Se le regioni non sono le stesse, la creazione del cluster non va a buon fine.
Se vuoi registrare tutti i cluster del progetto nell'API GKE On-Prem, assicurati di eseguire i passaggi descritti in Prima di iniziare per attivare e utilizzare l'API GKE On-Prem nel progetto.
Se non vuoi registrare il cluster nell'API GKE On-Prem, includi questa sezione e imposta
gkeOnPremAPI.enabled
sufalse
. Se non vuoi registrare cluster nel progetto, disabilitagkeonprem.googleapis.com
(il nome del servizio per l'API GKE On-Prem) nel progetto. Per istruzioni, vedi Disattivare i servizi.
stackdriver
Se vuoi abilitare
Cloud Logging e Cloud Monitoring
per il tuo cluster, compila la sezione
stackdriver
.
Questa sezione è obbligatoria per impostazione predefinita. ovvero, se non compili questa
sezione, devi includere il flag --skip-validation-stackdriver
quando
esegui gkectl create admin
.
Tieni presente i seguenti requisiti:
Se attivi il cluster avanzato, devi specificare lo stesso percorso in
cloudAuditLogging.serviceAccountKeyPath
estackdriver.serviceAccountKeyPath
.L'ID in
stackdriver.projectID
deve essere uguale all'ID ingkeConnect.projectID
ecloudAuditLogging.projectID
.La regione Google Cloud impostata in
stackdriver.clusterLocation
deve essere la stessa della regione impostata incloudAuditLogging.clusterLocation
egkeConnect.location
. Inoltre, segkeOnPremAPI.enabled
ètrue
, ingkeOnPremAPI.location
deve essere impostata la stessa regione.
Se gli ID progetto e le regioni non sono gli stessi, la creazione del cluster non va a buon fine.
cloudAuditLogging
Se vuoi integrare gli audit log del server API Kubernetes del tuo cluster con Cloud Audit Logs, compila la sezione
cloudAuditLogging
.
Tieni presente i seguenti requisiti:
Se abiliti il cluster avanzato, devi specificare lo stesso percorso in
cloudAuditLogging.serviceAccountKeyPath
estackdriver.serviceAccountKeyPath
.L'ID in
cloudAuditLogging.projectID
deve essere uguale all'ID ingkeConnect.projectID
estackdriver.projectID
.La regione Google Cloud impostata in
cloudAuditLogging.clusterLocation
deve essere la stessa impostata instackdriver.clusterLocation
egkeConnect.location
(se il campo è incluso nel file di configurazione). Inoltre, segkeOnPremAPI.enabled
ètrue
, la stessa regione deve essere impostata ingkeOnPremAPI.location
.
Se gli ID progetto e le regioni non sono gli stessi, la creazione del cluster non va a buon fine.
clusterBackup
Se vuoi abilitare
il backup del cluster di amministrazione,
imposta
clusterBackup.datastore
sul
datastore vSphere
in cui vuoi salvare i backup del cluster.
Se abiliti il cluster avanzato, rimuovi questa sezione. Il backup del cluster amministrativo in un datastore vSphere non è supportato.
autoRepair
Se vuoi
attivare la riparazione automatica dei nodi
per il cluster di amministrazione, imposta
autoRepair.enabled
su true
.
secretsEncryption
Se vuoi attivare la
crittografia dei secret sempre attiva,
compila la sezione
secretsEncryption
.
Se abiliti il cluster avanzato, imposta secretsEncryption.enabled
su false
.
La crittografia dei secret sempre attiva non è supportata.
osImageType
Decidi quale tipo di immagine sistema operativo vuoi utilizzare per i nodi del cluster di amministrazione e
compila la sezione
osImageType
di conseguenza.
Se abiliti il cluster avanzato, imposta osImageType
su ubuntu_cgroupv2
o
ubuntu_containerd
.
Esempio di file di configurazione compilati
Ecco un esempio di file di configurazione del cluster di amministrazione compilato. La configurazione attiva alcune, ma non tutte, delle funzionalità disponibili.
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-full.tgz" vCenter: address: "vc01.example" datacenter: "vc-01" cluster: "vc01-workloads-1" resourcePool: "vc-01-pool-1" datastore: "vc01-datastore-1" caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem"" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "vc01-net-1" controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" kind: "MetalLB" antiAffinityGroups: enabled: true adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 componentAccessServiceAccountKeyPath: "sa-key.json" gkeConnect: projectID: "my-project-123" registerServiceAccountKeyPath: "connect-register-sa-2203040617.json" stackdriver: projectID: "my-project-123" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "log-mon-sa-2203040617.json" disableVsphereResourceMetrics: false clusterBackup: datastore: "vc-01-datastore-bu" autoRepair: enabled: true osImageType: "ubuntu_containerd"
Convalidare il file di configurazione
Dopo aver compilato il file di configurazione del cluster di amministrazione, esegui
gkectl check-config
per verificare che il file sia valido:
gkectl check-config --config ADMIN_CLUSTER_CONFIG
Sostituisci ADMIN_CLUSTER_CONFIG con il percorso del file di configurazione del cluster di amministrazione.
Se il comando restituisce messaggi di errore, risolvi i problemi e convalida di nuovo il file.
Se vuoi saltare le convalide più lunghe, passa il flag --fast
.
Per ignorare le singole convalide, utilizza i flag --skip-validation-xxx
. Per
scoprire di più sul comando check-config
, consulta
Esecuzione dei controlli preflight.
Ottenere le immagini sistema operativo
Esegui gkectl prepare
per inizializzare l'ambiente vSphere:
gkectl prepare --config ADMIN_CLUSTER_CONFIG
Il comando gkectl prepare
esegue le seguenti attività preparatorie:
Importa immagini del sistema operativo in vSphere e le contrassegna come modelli VM.
Se utilizzi un registro Docker privato, esegue il push delle immagini container nel tuo registro.
(Facoltativo) Convalida le attestazioni di build delle immagini container, verificando così che le immagini siano state create e firmate da Google e siano pronte per il deployment.
Crea il cluster di amministrazione
Crea il cluster di amministrazione:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Se utilizzi Controlli di servizio VPC, potresti visualizzare errori quando esegui alcuni comandi gkectl
, ad esempio "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Per evitare questi errori, aggiungi
il parametro --skip-validation-gcp
ai tuoi comandi.
Riprendere la creazione del cluster di amministrazione dopo un errore
Se la creazione del cluster di amministrazione non riesce o viene annullata, puoi eseguire di nuovo il comando create
:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Individua il file kubeconfig del cluster di amministrazione
Il comando gkectl create admin
crea un file kubeconfig denominato
kubeconfig
nella directory corrente. Avrai bisogno di questo file kubeconfig
in un secondo momento per interagire con il cluster di amministrazione.
Il file kubeconfig contiene il nome del cluster di amministrazione. Per visualizzare il nome del cluster, puoi eseguire:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
L'output mostra il nome del cluster. Ad esempio:
NAME gke-admin-tqk8x
Se vuoi, puoi modificare il nome e la posizione del file kubeconfig.
Gestire il file checkpoint.yaml
Questa sezione si applica solo ai cluster di amministrazione non HA. Il file checkpoint.yaml
non viene utilizzato per la creazione di cluster di amministrazione HA.
Quando hai eseguito il comando gkectl create admin
per creare il cluster di amministrazione, è stato creato un file checkpoint nella stessa cartella del datastore del disco di dati del cluster di amministrazione. Per impostazione predefinita, questo file ha il nome
DATA_DISK_NAME‑checkpoint.yaml
. Se la lunghezza di
DATA_DISK_NAME è maggiore o uguale a 245 caratteri, il nome è
DATA_DISK_NAME.yaml
a causa del limite di vSphere per la lunghezza del nome file.
Questo file contiene lo stato e le credenziali del cluster di amministrazione e viene utilizzato per gli upgrade futuri. Non eliminare questo file a meno che non segui la procedura per eliminare un cluster di amministrazione.
Se hai attivato la crittografia delle VM nella tua istanza di vCenter Server, devi disporre del privilegio
Operazioni di crittografia.Accesso diretto prima di creare o eseguire l'upgrade del cluster di amministrazione. In caso contrario, il checkpoint non verrà caricato. Se non riesci a ottenere
questo privilegio, puoi disattivare il caricamento del file checkpoint utilizzando il
flag nascosto --disable-checkpoint
quando esegui un comando pertinente.
Il file checkpoint.yaml
viene aggiornato automaticamente quando esegui il comando
gkectl upgrade admin
o quando esegui un comando gkectl update
che
interessa il cluster di amministrazione.
Verifica che il cluster di amministrazione sia in esecuzione
Verifica che il cluster di amministrazione sia in esecuzione:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Sostituisci ADMIN_CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster di amministrazione.
L'output mostra i nodi del cluster di amministrazione. Ad esempio:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
Eseguire il backup dei file
Ti consigliamo di eseguire il backup del file kubeconfig del cluster di amministrazione. ovvero copia il file kubeconfig dalla workstation amministrativa a un'altra posizione. In questo modo, se perdi l'accesso alla workstation amministrativa o se il file kubeconfig sulla tua workstation amministrativa viene eliminato accidentalmente, avrai comunque accesso al cluster amministrativo.
Ti consigliamo inoltre di eseguire il backup della chiave SSH privata per il cluster di amministrazione. In questo modo, se perdi l'accesso al cluster di amministrazione, puoi comunque utilizzare SSH per connetterti ai nodi del cluster di amministrazione. In questo modo potrai risolvere i problemi e analizzare eventuali problemi di connettività al cluster di amministrazione.
Estrai la chiave SSH dal cluster di amministrazione in un file denominato
admin-cluster-ssh-key
:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \ -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key
Ora puoi eseguire il backup di admin-cluster-ssh-key
in un'altra posizione a tua scelta.
Policy RBAC
Quando compili la sezione
gkeConnect
nel file di configurazione del cluster di amministrazione, il cluster viene registrato nel tuo
parco risorse durante la creazione o l'aggiornamento. Per abilitare la funzionalità di gestione del parco risorse, Google Cloud esegue il deployment dell'agente Connect e crea un account di servizio Google che rappresenta il progetto a cui è registrato il cluster.
L'agente Connect stabilisce una connessione con il account di servizio per gestire le richieste al server API Kubernetes del cluster. Ciò consente l'accesso alle funzionalità di gestione dei cluster e dei carichi di lavoro in Google Cloud, incluso l'accesso alla Google Cloud console, che ti consente di interagire con il cluster.
Il server API Kubernetes del cluster di amministrazione deve essere in grado di autorizzare le richieste dell'agente Connect. Per garantire questo, le seguenti norme di controllo dell'accesso basato sui ruoli (RBAC) sono configurate sul account di servizio:
Una policy di rappresentazione che autorizza l'agente Connect a inviare richieste al server API Kubernetes per conto del account di servizio.
Una policy di autorizzazione che specifica le operazioni consentite su altre risorse Kubernetes.
Il account di servizio e i criteri RBAC sono necessari per gestire il ciclo di vita dei cluster utente nella console Google Cloud .
Terraform
Panoramica della procedura
Prima di creare il cluster di amministrazione, devi eseguire il comando
gkectl register bootstrap
sulla workstation di amministrazione. Questo comando
esegue il deployment di un cluster Kubernetes in Docker
(kind) sulla workstation di amministrazione. Questo cluster bootstrap ospita i controller Kubernetes necessari per creare il cluster di amministrazione. Quando crei il cluster di amministrazione, i controller del cluster di bootstrap eseguono il provisioning dei nodi, eseguono controlli preflight e registrano il cluster di amministrazione nel parco risorse. Il cluster di bootstrap viene eliminato automaticamente dopo la creazione del cluster di amministrazione.
Di seguito sono riportati i passaggi di alto livello per creare un cluster di amministrazione utilizzando Terraform:
- Compila il file di configurazione.
- Utilizza la risorsa
google_gkeonprem_vmware_admin_cluster e l'esempio
che segue per creare il file di configurazione
main.tf
.
- Crea un cluster
bootstrap
. - Esegui
gkectl register bootstrap
per creare il cluster di bootstrap. Al termine della creazione del cluster di bootstrap, l'output del comando ti informa che devi completare la configurazione del cluster di amministrazione. Il processo continua a essere eseguito finché non viene creato il cluster di amministrazione.
- Crea un cluster
- Crea un cluster di amministrazione.
- In un'altra finestra del terminale o su un altro computer che ha accesso all'API GKE On-Prem, esegui i comandi
terraform
per creare un nuovo cluster di amministrazione come specificato nel file di configurazionemain.tf
completato.
Compila il file di configurazione
L'esempio seguente mostra la creazione di un cluster di amministrazione ad alta disponibilità
con tre nodi del control plane con MetalLB. Nelle versioni 1.28 e successive, i nuovi cluster di amministrazione devono essere a disponibilità elevata. A causa di questo requisito, devi impostare control_plane_node.replicas
su 3.
Per saperne di più e per altri esempi, consulta la
documentazione di riferimento di google_gkeonprem_vmware_admin_cluster
. Per informazioni
sull'utilizzo di un registro privato per le immagini di sistema, consulta
Configurare un registro di container privato.
Compila le variabili segnaposto nel seguente esempio, poi copia e incolla
il codice in main.tf
. Se hai utilizzato gkeadm
per creare la workstation amministrativa, apri
il file di configurazione della workstation amministrativa per copiare i valori dalla
sezione vCenter
nelle variabili segnaposto corrispondenti.
resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" { provider = google-beta name = "ADMIN_CLUSTER_NAME" project = "PROJECT_ID" location = "REGION" description = "DESCRIPTION" bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME" on_prem_version = "VERSION" image_type = "IMAGE_TYPE" vcenter { address = "VCENTER_ADDRESS" datacenter = "DATA_CENTER" cluster = "VCENTER_CLUSTER" resource_pool = "RESOURCE_POOL" datastore = "DATASTORE" ca_cert_data = "CA_CERT_DATA" } network_config { service_address_cidr_blocks = ["10.96.232.0/24"] pod_address_cidr_blocks = ["192.168.0.0/16"] vcenter_network = "NETWORK" dhcp_ip_config { enabled = true } host_config { dns_servers = ["DNS_SERVERS"] ntp_servers = ["NTP_SERVERS"] } ha_control_plane_config { control_plane_ip_block { gateway = "GATEWAY" netmask = "NETMASK" ips { hostname = "CONTROL_PLANE_HOST_1" ip = "CONTROL_PLANE_NODE_IP_1" } ips { hostname = "CONTROL_PLANE_HOST_2" ip = "CONTROL_PLANE_NODE_IP_2" } ips { hostname = "CONTROL_PLANE_HOST_3" ip = "CONTROL_PLANE_NODE_IP_3" } } } } control_plane_node { cpus = NUM_CPUS memory = MEMORY replicas = 3 } load_balancer { vip_config { control_plane_vip = "CONTROL_PLANE_VIP" } metal_lb_config { enabled = true } } }
Sostituisci quanto segue:
ADMIN_CLUSTER_NAME
: il nome del cluster di amministrazione. Il nome ha una lunghezza massima di 20 caratteri.PROJECT_ID
: l' Google Cloud ID progetto.REGION
: la Google Cloud regione in cui vengono eseguiti l'API GKE On-Prem (gkeonprem.googleapis.com
), il servizio Fleet (gkehub.googleapis.com
) e il servizio Connect (gkeconnect.googleapis.com
). Specificaus-west1
o un'altra regione supportata.Il campo
location
corrisponde al flag--location
nel comandogkectl register bootstrap
.DESCRIPTION
: una descrizione del cluster di amministrazione.VERSION
: la versione di Google Distributed Cloud per il cluster. La creazione di un cluster utilizzando Terraform è supportata solo nelle versioni 1.28 e successive. La versione specificata qui deve corrispondere alla versione del bundle specificata nel flag--bundle-path
del comandogkectl register bootstrap
. Per un elenco delle versioni, vedi Versioni di Google Distributed Cloud.IMAGE_TYPE
: il tipo di immagine del sistema operativo da eseguire sui nodi del cluster di amministrazione. Specifica uno dei seguenti valori: "ubuntu_containerd
", "cos
", "ubuntu_cgv2
" o "cos_cgv2
".VCENTER_ADDRESS
: l'indirizzo del server vCenter.File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.credentials.address
.Il campo
vcenter.address
corrisponde al flag--vcenter-address
nel comandogkectl register bootstrap
.
DATA_CENTER
: il nome del tuo data center vCenter.File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.datacenter
.Il campo
vcenter.datacenter
corrisponde al flag--vcenter-datacenter
nel comandogkectl register bootstrap
.
VCENTER_CLUSTER
: il nome del tuo cluster vCenter.File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.cluster
.Il campo
vcenter.cluster
corrisponde al flag--vcenter-cluster
nel comandogkectl register bootstrap
.
RESOURCE_POOL
: il nome o il percorso del tuo pool di risorse vCenter.File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.resourcePool
.Il campo
vcenter.resource_pool
corrisponde al flag--vcenter-resource-pool
nel comandogkectl register bootstrap
.
DATASTORE
: il nome del tuo datastore vCenter. Il valore specificato deve essere un nome, non un percorso. Se devi inserire un percorso, aggiungi il seguente campo:folder = "FOLDER"
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.datastore
.Il campo
vcenter.datastore
corrisponde al flag--vcenter-datastore
nel comandogkectl register bootstrap
.
Se vuoi utilizzare un criterio di archiviazione delle VM per i nodi del cluster, rimuovi il campo
vcenter.datastore
e aggiungivcenter.storage_policy_name
in alternativa. Inoltre, aggiungi il flag--vcenter-storage-policy
al comandogkectl register bootstrap
. Devi specificare un valore pervcenter.datastore
ovcenter.storage_policy_name
, ma non per entrambi.FOLDER
: il nome della cartella vCenter in cui si troveranno le VM del cluster. Se non utilizzi una cartella, rimuovi questo campo.File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.folder
.Il campo
vcenter.folder
corrisponde al flag--vcenter-folder
nel comandogkectl register bootstrap
.
CA_CERT_DATA
: inserisci il certificato CA vCenter in formato PEM. Per ottenere i dati del certificato CA:Esegui questo comando:
cat CA_CERT_PATH_LOCAL | tr '\n' '\\n'
Sostituisci
CA_CERT_PATH_LOCAL
con il percorso del certificato CA radice per il tuo vCenter Server. Se hai utilizzatogkeadm
per creare la workstation amministrativa, puoi utilizzare il valore del campocaCertPath
nel file di configurazione della workstation amministrativa, ovvero il percorso sul computer locale.gkeadm
ha copiato il file del certificato CA nella workstation amministrativa. Devi specificare il percorso della workstation di amministrazione nel flag--vcenter-ca-cert-path
del comandogkectl register bootstrap
.Copia il certificato generato dal comando precedente e incollalo in un editor di testo. Sostituisci tutte le istanze del carattere barra rovesciata (\) con un carattere di nuova riga (\n).
Copia il certificato modificato e incollalo nella variabile segnaposto
CA_CERT_DATA
.
NETWORK
: inserisci il nome della tua rete vCenter.File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.network
.Il campo
network_config.vcenter_network
corrisponde al flag--vcenter-network
nel comandogkectl register bootstrap
.
GATEWAY
: l'indirizzo IP del gateway predefinito per la subnet che contiene i nodi del cluster del control plane.NETMASK
: la maschera di rete per la subnet che contiene i nodi del cluster del control plane.DNS_SERVERS
: l'indirizzo IP del server DNS.NTP_SERVERS
: l'indirizzo IP del server dell'ora (NTP).Inserisci gli indirizzi IP e, facoltativamente, il nome host per i tre nodi del control plane nella sezione
control_plane_ip_block.ips
. Se non inserisci un nome host, rimuovi i campihostname
dalla configurazione.NUM_CPUS
: il numero di vCPU per ciascun nodo del control plane nel cluster di amministrazione. Deve essere almeno 4.MEMORY
: numero di mebibyte di memoria per ogni nodo del control plane nel cluster di amministrazione. Deve essere almeno 8192, ma consigliamo 16384.CONTROL_PLANE_VIP
: l'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il server API Kubernetes del cluster di amministrazione.
Verifica il file di configurazione e il piano
Nella directory in cui si trova main.tf
, esegui i seguenti comandi:
Inizializza Terraform:
terraform init
Terraform installa tutte le librerie necessarie, ad esempio il provider Google Cloud . Se necessario, correggi eventuali errori in
maint.tf
.Crea il piano Terraform:
terraform plan -out tfplan
Esamina la configurazione e apporta modifiche, se necessario.
Prima di applicare il piano, devi prima creare il cluster di bootstrap come descritto nella sezione successiva.
Crea il cluster di bootstrap
Quando esegui il comando gkectl register bootstrap
, ti viene chiesto il nome utente e la password dell'account vCenter. Assicurati di avere le credenziali
a portata di mano. Se hai utilizzato gkeadm
per creare la workstation di amministrazione, il nome utente
e la password si trovano nel file credential.yaml
.
Accedi alla workstation amministrativa utilizzando SSH.
Autenticati con Google Cloud CLI:
gcloud auth login
Esegui questo comando per creare il cluster di bootstrap. Molti valori dei flag sono uguali a quelli dei campi
main.tf
. Tieni presente, tuttavia, che il comando accetta valori aggiuntivi che devi specificare nelle variabili segnaposto fornite.gkectl register bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --vcenter-address=VCENTER_ADDRESS \ --vcenter-datacenter=DATA_CENTER \ --vcenter-cluster=VCENTER_CLUSTER \ --vcenter-resource-pool=RESOURCE_POOL \ --vcenter-datastore=DATASTORE \ --vcenter-network=NETWORK \ --vcenter-ca-cert-path=CA_CERT_PATH \ --bundle-path=BUNDLE_PATH \ --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \ --stackdriver-service-account-key-path=LOG_MON_SA_PATH \ --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
Sostituisci quanto segue con i percorsi della workstation di amministrazione:
CA_CERT_PATH
: il percorso del certificato CA radice per il tuo vCenter Server.BUNDLE_PATH
: il percorso del file bundle. Se hai utilizzatogkeadm
per creare la workstation di amministrazione, il file del bundle si trova in/var/lib/gke/bundles/
. Il nome del file dipende dalla versione di Google Distributed Cloud, ad esempiogke-onprem-vsphere-1.31.0-gke.889-full.tgz
.COMPONENT_ACCESS_SA_PATH
: il percorso del file della chiave per l'account di servizio di accesso ai componenti.CONNECT_REGISTER_SA_PATH
: il percorso del file della chiave per l'account di servizio connect-register.LOG_MON_SA_PATH
: il percorso del file della chiave per l'account di servizio logging-monitoring.CLOUD_AUDIT_SA_PATH
: il percorso dell'account di servizio di logging di controllo. Se non hai creato un account di servizio di logging di controllo, specifica il percorso del file di chiavi per il service account di logging e monitoraggio.
Modifica il comando in base alle esigenze per i seguenti flag:
- Se hai specificato una cartella in
main.tf
, aggiungi il seguente flag:--vcenter-folder=FOLDER
- Se hai specificato una policy di archiviazione VM in
main.tf
, rimuovi--vcenter-datastore
e aggiungi il seguente flag:--vcenter-storage-policy-name=STORAGE_POLICY_NAME
- Se la rete che ospiterà la workstation amministrativa si trova dietro un server proxy, aggiungi i seguenti flag:
--proxy-url=PROXY_URL
e--no-proxy=NO_PROXY
. Sostituisci PROXY_URL con l'URL del server proxy e NO_PROXY con il valore dei domini e degli indirizzi IP esclusi dal proxy, separati da virgole.
Se aggiungi un flag, assicurati di aggiungere il carattere barra rovesciata (\) di continuazione della riga di comando.
Quando richiesto, inserisci (o copia e incolla) il nome utente vCenter. Il nome utente non viene visualizzato sullo schermo.
Quando richiesto, inserisci (o copia e incolla) la password di vCenter. La password non viene visualizzata sullo schermo.
Il comando esegue numerose convalide. Dopo che gkectl
ha creato correttamente il
cluster di bootstrap, viene visualizzato un output simile al seguente, che è
troncato per facilitarne la lettura:
Running workstation validations - Validation Category: Workstation - [SUCCESS] Workstation OS - [SUCCESS] Workstation Hardware - [SUCCESS] Workstation Package - [SUCCESS] Workstation NTP - [SUCCESS] Workstation Docker ... All validation results were SUCCESS. Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz ... Successfully created and registered the bootstrap cluster ... Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -
Il processo continua a essere eseguito finché non viene creato il cluster di amministrazione.
Se esci dal comando gkectl register bootstrap
prima della creazione del cluster di amministrazione, la creazione del cluster di amministrazione non va a buon fine e dovrai eliminare il cluster di bootstrap utilizzando il seguente comando:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Crea il cluster di amministrazione
Applica il piano Terraform per creare il cluster di amministrazione:
terraform apply "tfplan"
La creazione del cluster di amministrazione richiede circa 15 minuti o più. Puoi visualizzare il cluster nella console Google Cloud nella pagina Cluster GKE.
Console
Panoramica della procedura
Prima di creare il cluster di amministrazione, devi eseguire il comando
gkectl register bootstrap
sulla workstation di amministrazione. Questo comando
esegue il deployment di un cluster Kubernetes in Docker
(kind) sulla workstation di amministrazione. Questo cluster bootstrap ospita i controller Kubernetes necessari per creare il cluster di amministrazione. Quando crei il cluster di amministrazione, i controller del cluster di bootstrap eseguono il provisioning dei nodi, eseguono controlli preflight e registrano il cluster di amministrazione nel parco risorse. Il cluster di bootstrap viene eliminato automaticamente dopo la creazione del cluster di amministrazione.
Di seguito sono riportati i passaggi di alto livello per creare un cluster di amministrazione utilizzando la console:
Nella console, inserisci le informazioni richieste da
gkectl register bootstrap
. La console mostra il comandogkectl register bootstrap
con le informazioni che hai inserito. Il comando visualizzato include anche flag per i percorsi che dovrai specificare prima di eseguire il comando.Sulla workstation di amministrazione, esegui
gkectl register bootstrap
per creare il cluster di bootstrap. Al termine della creazione del cluster di bootstrap, l'output ti comunica di completare la configurazione del cluster di amministrazione. Il processo continua a essere eseguito finché non viene creato il cluster di amministrazione.Torni alla console per completare l'inserimento delle informazioni necessarie per creare il cluster. Durante la creazione del cluster, il comando
gkectl register bootstrap
restituisce informazioni sullo stato di avanzamento e scrive i log sulla workstation di amministrazione. Quando viene creato il cluster di amministrazione, il cluster di bootstrap viene eliminato automaticamente.
Inizia a configurare il cluster
Nella console, vai alla pagina Crea un cluster su VMware.
Seleziona il Google Cloud progetto in cui vuoi creare il cluster.
Quando crei il cluster di bootstrap in una sezione successiva, l'ID progetto selezionato viene visualizzato nel comando
gkectl register bootstrap
nel flag--project-id
.Assicurati che l'opzione Crea un cluster di amministrazione sia selezionata.
Fai clic su Avanti: installa l'ambiente di bootstrap.
Installa ambiente di bootstrap
In questa sezione inserisci le informazioni richieste dal comando gkectl register bootstrap
. Man mano che inserisci i valori nei campi dell'interfaccia utente, la console li copia nei flag corrispondenti per il comando gkectl register bootstrap
visualizzato nella sezione Ambiente di bootstrap dalla workstation amministrativa nella parte inferiore della pagina.
Impostazioni di base dell'ambiente di bootstrap
Inserisci un nome per il cluster amministrativo. La console utilizza il nome del cluster come valore del flag
--target-cluster-name
nel comandogkectl register bootstrap
visualizzato nella parte inferiore della pagina. Il nome ha una lunghezza massima di 20 caratteri.Nel campo Google Cloud Località API, seleziona una Google Cloud regione dall'elenco. Questa impostazione specifica la regione in cui vengono eseguiti i seguenti servizi e API:
- API GKE On-Prem (
gkeonprem.googleapis.com
) - Servizio flotta (
gkehub.googleapis.com
) - Servizio Connect (
gkeconnect.googleapis.com
)
Questa impostazione controlla anche 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 campo Google Cloud API Location corrisponde al flag
--location
nel comandogkectl register bootstrap
.- API GKE On-Prem (
Nel campo Versione del cluster di amministrazione, inserisci la versione da utilizzare per creare il cluster. La versione selezionata qui deve corrispondere a quella del bundle specificata nel flag
--bundle-path
del comandogkectl register bootstrap
.
Configurazione vCenter
Se hai utilizzato gkeadm
per creare la tua workstation amministrativa, apri il file di configurazione della workstation amministrativa per poter copiare i valori dalla sezione vCenter
ai campi della console. Tieni presente che anche il file di configurazione del cluster di amministrazione generato contiene queste informazioni.
La maggior parte dei campi in questa sezione è immutabile. Consulta la
sezione vCenter
nel riferimento al file di configurazione del cluster di amministrazione se devi sapere se un campo
è modificabile o immutabile.
Nel campo Indirizzo, inserisci l'indirizzo di vCenter Server.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.credentials.address
.Il campo Indirizzo corrisponde al flag
--vcenter-address
nel comandogkectl register bootstrap
.
Nel campo Datacenter, inserisci il nome del tuo data center vCenter.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.datacenter
.Il campo Datacenter corrisponde al flag
--vcenter-datacenter
nel comandogkectl register bootstrap
.
Nel campo Nome cluster, inserisci il nome del tuo cluster vCenter.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.cluster
.Il campo Nome cluster corrisponde al flag
--vcenter-cluster
nel comandogkectl register bootstrap
.
Nel campo Pool di risorse, inserisci il nome o il percorso del tuo pool di risorse vCenter.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.resourcePool
.Il campo Pool di risorse corrisponde al flag
--vcenter-resource-pool
nel comandogkectl register bootstrap
.
Configura un'opzione di archiviazione inserendo uno dei seguenti valori:
Campo Datastore: inserisci il nome del datastore vCenter. Il valore specificato deve essere un nome, non un percorso. Se devi inserire un percorso, inseriscilo nel campo Cartella.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.datastore
.Il campo Datastore corrisponde al flag
--vcenter-datastore
nel comandogkectl register bootstrap
.
Campo Nome policy di archiviazione: inserisci il nome della policy di archiviazione VM per i nodi del cluster. Per ulteriori informazioni, consulta Configurare una policy di archiviazione.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.storagePolicyName
.Il campo Nome policy di archiviazione corrisponde al flag
--vcenter-storage-policy
nel comandogkectl register bootstrap
.
Devi inserire un valore nel campo Datastore o nel campo Nome policy di archiviazione, ma non in entrambi.
(Facoltativo) Nel campo Cartella, inserisci il nome della cartella vCenter in cui si troveranno le VM del cluster.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.folder
.Il campo Cartella corrisponde al flag
--vcenter-folder
nel comandogkectl register bootstrap
.
Nel campo Rete, inserisci il nome della tua rete vCenter.
File di configurazione della workstation amministrativa: utilizza il valore del campo
vCenter.network
.Il campo Network corrisponde al flag
--vcenter-network
nel comandogkectl register bootstrap
.
Nel campo Percorso certificato CA, inserisci il percorso del certificato CA radice per il tuo vCenter Server.
Se hai utilizzato
gkeadm
per creare la workstation di amministrazione,gkeadm
ha copiato il file del certificato CA che avevi localmente nella workstation di amministrazione.Il campo Percorso certificato CA corrisponde a
--vcenter-ca-cert-path
nel comandogkectl register bootstrap
.
Recuperare il certificato CA
Dopo aver creato il cluster di bootstrap, devi fornire il certificato CA vCenter in formato PEM nel campo Dati del certificato CA della pagina Informazioni di base del cluster. Esegui questo comando per visualizzare il certificato:
cat CA_CERT_PATH
Sostituisci CA_CERT_PATH
con il percorso del
certificato CA radice per vCenter Server. Se esegui questo comando
localmente, utilizza il percorso in vCenter.caCertPath
nel file di configurazione
della workstation amministrativa.
Copia l'intero certificato in un editor di testo in modo da poterlo incollare nel campo Dati del certificato CA nella pagina Informazioni di base del cluster dopo la creazione del cluster di bootstrap.
Esegui il bootstrap dalla workstation di amministrazione
Quando esegui il comando gkectl register bootstrap
, ti viene chiesto il nome utente e la password dell'account vCenter. Assicurati di avere le credenziali
a portata di mano. Se hai utilizzato gkeadm
per creare la workstation di amministrazione, il nome utente
e la password si trovano nel file credential.yaml
.
Scorri fino alla sezione Esegui il bootstrap dall'ambiente della workstation di amministrazione per visualizzare il comando
gkectl register bootstrap
.Lascia aperta questa pagina mentre vai alla workstation di amministrazione per creare il cluster di bootstrap.
Copia e incolla il comando
gkectl register bootstrap
in un editor di testo in modo da poter specificare i valori per i seguenti flag:./gkectl register bootstrap \ ... --bundle-path=BUNDLE_PATH \ ... --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \ --stackdriver-service-account-key-path=LOG_MON_SA_PATH \ --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
Sostituisci quanto segue con i percorsi della workstation di amministrazione:
BUNDLE_PATH
: il percorso del file bundle. Se hai utilizzatogkeadm
per creare la workstation di amministrazione, il file del bundle si trova in/var/lib/gke/bundles/
. Il nome del file dipende dalla versione di Google Distributed Cloud, ad esempiogke-onprem-vsphere-1.31.0-gke.889-full.tgz
.COMPONENT_ACCESS_SA_PATH
: il percorso del file della chiave per l'account di servizio di accesso ai componenti.CONNECT_REGISTER_SA_PATH
: il percorso del file della chiave per l'account di servizio connect-register.LOG_MON_SA_PATH
: il percorso del file della chiave per l'account di servizio logging-monitoring.CLOUD_AUDIT_SA_PATH
: il percorso dell'account di servizio di logging di controllo. Se non hai creato un account di servizio di logging di controllo, specifica il percorso del file di chiavi per il service account di logging e monitoraggio.
Inoltre, se hai utilizzato
gkeadm
per creare la workstation amministrativa,gkectl
è stato scaricato nella directory/usr/bin/
. In questo caso, rimuovi./
dall'inizio del comando poichégkectl
non si trova nella directory di lavoro corrente.Utilizza SSH per connetterti alla workstation amministrativa.
Copia il comando e incollalo in una finestra del terminale sulla workstation di amministrazione.
Quando richiesto, inserisci (o copia e incolla) il nome utente vCenter. Il nome utente non viene visualizzato sullo schermo.
Quando richiesto, inserisci (o copia e incolla) la password di vCenter. La password non viene visualizzata sullo schermo.
Il comando esegue numerose convalide. Dopo che gkectl
ha creato correttamente il
cluster di bootstrap, viene visualizzato un output simile al seguente, che è
troncato per facilitarne la lettura:
Running workstation validations - Validation Category: Workstation - [SUCCESS] Workstation OS - [SUCCESS] Workstation Hardware - [SUCCESS] Workstation Package - [SUCCESS] Workstation NTP - [SUCCESS] Workstation Docker ... All validation results were SUCCESS. Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz ... Successfully created and registered the bootstrap cluster ... Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -
Il processo continua a essere eseguito finché non viene creato il cluster di amministrazione.
Se esci dal comando gkectl register bootstrap
prima della creazione del cluster di amministrazione, la creazione del cluster di amministrazione non va a buon fine e dovrai eliminare il cluster di bootstrap utilizzando il seguente comando:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Completa la configurazione del cluster di amministrazione
Torna alla console e segui questi passaggi:
Nella pagina Installa ambiente bootstrap, 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
gkectl register bootstrap
:Assicurati che il valore di
--target-cluster-name
corrisponda al nome del cluster di amministrazione visualizzato nella sezione Nozioni di base sull'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, l'ID progetto o altri valori dei flag, procedi nel seguente modo:
- Inserisci
Ctrl-C
per uscire dagkectl register bootstrap
. Elimina il cluster di bootstrap:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Esegui di nuovo il comando
gkectl register bootstrap
.
Fai clic su Avanti: nozioni di base del cluster per iniziare a configurare il cluster di amministrazione.
Impostazioni di base del cluster
Nel campo Dati certificato CA, copia e incolla l'intero certificato CA vCenter in formato PEM come descritto in precedenza nella sezione Recuperare il certificato CA.
Nella sezione Autorizzazione, inserisci gli indirizzi email degli utenti a cui vuoi concedere il ruolo Kubernetes
clusterrole/view
di sola lettura. Tieni presente che il tuo indirizzo email viene aggiunto automaticamente. I criteri di controllo dell'accesso basato sui ruoli (RBAC) applicati consentono agli utenti di eseguire comandi di sola lettura tramite il gateway di connessione.Fai clic su Next Control Plane (Control Plane successivo).
Piano di controllo
Esamina le impostazioni predefinite nella sezione Control plane e modificale in base alle tue esigenze.
Nella sezione IP dei nodi del control plane, inserisci gli indirizzi IP nei seguenti campi:
Gateway: l'indirizzo IP del gateway predefinito per la subnet che contiene i nodi del cluster.
Netmask: la maschera di rete per la subnet che contiene i nodi del cluster.
Indirizzi IP: inserisci l'indirizzo IP e, facoltativamente, il nome host per i tre nodi del control plane.
Fai clic su Avanti: networking.
Networking
In questa sezione devi specificare le informazioni di networking necessarie per creare il cluster di amministrazione.
Nella sezione CIDR servizi e pod, accetta i valori predefiniti per gli intervalli di indirizzi IP dei pod e dei servizi Kubernetes oppure inserisci intervalli di indirizzi CIDR diversi.
CIDR servizio: intervallo più piccolo possibile:
/24
. Intervallo più ampio possibile:/12
.CIDR pod: intervallo più piccolo possibile:
/18
. Intervallo più grande possibile: /8`.
Nella sezione Host config, specifica i server NTP, i server DNS e, facoltativamente, i domini di ricerca DNS utilizzati dalle VM corrispondenti ai nodi del cluster. Dopo aver creato il cluster, non puoi modificare questi valori.
Fai clic su Avanti: bilanciatore del carico.
Bilanciatore del carico
In questa sezione, seleziona il tipo di bilanciatore del carico da utilizzare. Per ulteriori informazioni, consulta Panoramica del bilanciamento del carico.
Nell'elenco Tipo di bilanciatore del carico, seleziona un bilanciatore del carico:
In bundle con MetalLB: il bilanciatore del carico MetalLB è in bundle con e richiede meno configurazione rispetto al bilanciamento del carico manuale. I componenti MetalLB vengono eseguiti sui nodi del cluster, quindi non devi creare VM separate per il bilanciatore del carico.
Manuale: puoi utilizzare qualsiasi bilanciatore del carico a tua scelta, a condizione che lo configuri prima di creare il cluster. Con qualsiasi bilanciatore del carico che configuri manualmente, devi configurare i mapping tra gli IP virtuali (VIP), gli indirizzi dei nodi e i valori nodePort.
Nel campo VIP del control plane, inserisci il VIP da utilizzare per il traffico inviato al server API Kubernetes.
Fai clic su Verifica e crea.
La console mostra i messaggi di stato durante la verifica delle impostazioni e la creazione del cluster nel data center.
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 e riprovare a creare il cluster.
I dettagli sul processo di creazione del cluster vengono visualizzati sulla workstation di amministrazione. Se i controlli preflight vengono superati, viene visualizzato un risultato simile al seguente:
[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK [2023-03-22 23:15:47+0000] Writing kubeconfig file [2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig [2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster. [2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK [2023-03-22 23:20:17+0000] Please run [2023-03-22 23:20:17+0000] kubectl --kubeconfig gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes [2023-03-22 23:20:17+0000] to get cluster nodes status. [2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK [2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK [2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK [2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster [2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK [2023-03-22 23:27:41+0000] Flushing logs... OK [2023-03-22 23:27:41+0000] Deleting membership... OK [2023-03-22 23:27:42+0000] Deleting bootstrap cluster.
Connettiti al cluster di amministrazione
Il comando gkectl register bootstrap
crea un file kubeconfig
per il
cluster di amministrazione sulla workstation di amministrazione. La directory in cui si trova kubeconfig
e il nome del file si basano sul nome del cluster di amministrazione come segue:
gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Devi limitare l'accesso a questo kubeconfig
perché contiene
le credenziali di autenticazione per il cluster.
Inoltre, puoi eseguire comandi kubectl
di sola lettura tramite
Connect Gateway.
Esegui questo comando su un computer su cui è installata gcloud CLI per ottenere una voce
kubeconfig
che può accedere al cluster tramite il gateway di connessione.gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \ --project=PROJECT_ID
L'output è simile al seguente:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
Ora puoi eseguire comandi
kubectl
di sola lettura tramite il gateway di connessione:kubectl get pods -A
Se hai bisogno di privilegi amministrativi completi per il cluster amministrativo, consulta Configurare il gateway di connessione.
Risoluzione dei problemi
Consulta la sezione Risoluzione dei problemi relativi alla creazione e all'upgrade dei cluster.