Questa pagina mostra come creare un cluster di amministrazione da utilizzare nei domini di topologia di Google Distributed Cloud. Il cluster di amministrazione gestisce i cluster utente che eseguono i tuoi carichi di lavoro. Per utilizzare i domini di topologia è necessaria la versione 1.31 o successive di Google Distributed Cloud.
Per configurare un dominio di topologia, devi attivare il cluster avanzato. Tieni presenti le seguenti limitazioni dell'anteprima avanzata del cluster:
- Puoi attivare il cluster avanzato al momento della creazione solo per i nuovi cluster 1.31.
- Una volta attivato il cluster avanzato, non potrai eseguire l'upgrade del cluster alla versione 1.32. Attiva il cluster avanzato solo in un ambiente di test.
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 per gli utenti di GKE Enterprise.
Per ulteriori dettagli sul cluster di amministrazione, consulta la panoramica dell'installazione.
Panoramica della procedura
Di seguito sono riportati i passaggi principali per creare un cluster di amministrazione:
- Compila il file di configurazione dell'amministratore
- Specifica i dettagli del nuovo cluster di amministrazione compilando un file di configurazione del cluster di amministrazione.
- Compila il file di configurazione dell'infrastruttura vSphere
- Specifica i dettagli dei domini di topologia in un file di configurazione dell'infrastruttura vSphere.
- Compila il file di blocco IP
- Specifica gli indirizzi IP per il gateway, la netmask e i nodi del piano di controllo in un file di blocco IP.
- Scaricare le immagini del sistema operativo
- Scarica il normale bundle Google Distributed Cloud. Quindi esegui
gkectl prepare
, che importa le immagini del sistema operativo in vSphere e invia le immagini dei container al registry privato, se applicabile.
- 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 transitorio è 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 nei domini di topologia.
Prima di iniziare
Assicurati di aver configurato e di poter accedere alla tua workstation di amministrazione come descritto in Creare una workstation di amministrazione. La workstation di amministrazione dispone degli strumenti necessari per creare il cluster di amministrazione. Esegui tutti i passaggi descritti in questo documento sulla workstation di amministrazione.
Consulta il documento relativo alla pianificazione degli indirizzi IP. Assicurati di disporre di indirizzi IP sufficienti per i tre nodi del piano di controllo e un VIP del piano di controllo.
Configura il bilanciatore del carico per il bilanciamento del carico manuale. Il bilanciatore del carico deve essere configurato prima di creare il cluster di amministrazione.
Consulta la sezione
privateRegistry
e decidi se utilizzare un registry pubblico o privato per i componenti di Google Distributed Cloud.Esamina in anticipo il campo osImageType e decidi quale tipo di sistema operativo vuoi eseguire sui nodi del cluster amministrativo.
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.
Raccogli le informazioni necessarie per accedere a ogni istanza di vCenter Server. Queste informazioni sono necessarie per compilare la sezione
Secret
e la sezioneVSphereInfraConfig.credentials.vCenters
nel file di configurazione dell'infrastruttura vSphere. Per scoprire come ottenere le informazioni necessarie, consulta quanto segue:
Compila il file di configurazione del cluster di amministrazione
Se hai utilizzato gkeadm
per creare la tua workstation amministrativa, è stato generato un
file di configurazione denominato admin-cluster.yaml
.
Se non hai utilizzato gkeadm
per creare la workstation di amministrazione, generaadmin-cluster.yaml
eseguendo questo comando sulla workstation di amministrazione:
gkectl create-config admin
Questo file di configurazione serve per creare il cluster di amministrazione.
Acquisisci familiarità con il file di configurazione esaminando il documento relativo al file di configurazione del cluster di amministrazione. Ti consigliamo di tenere aperto questo documento in una scheda o una finestra separata, poiché lo consulterai durante l'esecuzione dei passaggi che seguono.
name
Se vuoi specificare un nome per il cluster amministrativo, compila il campo
name
.
bundlePath
Il bundle è un file compresso che contiene i componenti del cluster. È incluso con la workstation di amministrazione. Questo campo è già stato compilato per te.
enableAdvancedCluster
Imposta enableAdvancedCluster
su true
. In questo modo vengono attivati i cluster avanzati, necessari per configurare i domini topolog.
infraConfigFilePath
Aggiungi il percorso completo al
file di configurazione dell'infrastruttura vSphere
nel campo infraConfigFilePath
.
vCenter
Rimuovi l'intera sezione. ma le informazioni di vCenter Server nel file di configurazione dell'infrastruttura vSphere.
network
Rimuovi quanto segue dal file di configurazione:
- L'intera sezione
network.hostConfig
. Queste informazioni sono configurate nel file di configurazione dell'infrastruttura vSphere per dominio di topologia. - Il campo
network.vCenter.networkName
. Questo campo è configurato nel file di configurazione dell'infrastruttura vSphere per dominio di topologia. - L'intera sezione
network.controlPlaneIPBlock
. Gli indirizzi IP per il gateway, la netmask e i nodi del control plane sono configurati in un file di blocco IP.
- L'intera sezione
Imposta
network.ipMode.ipBlockFilePath
sul percorso del file di blocco IP.Imposta
network.ipMode.type
sustatic
.I campi network.podCIDR e network.serviceCIDR hanno valori precompilati che puoi lasciare invariati, a meno che non entro in conflitto con gli indirizzi già in uso nella tua rete. Kubernetes utilizza questi intervalli per assegnare indirizzi IP ai pod e ai servizi nel cluster.
loadBalancer
Imposta
loadBalancer.kind
su"ManualLB"
e rimuovi la sezionemanualLB
.Metti da parte un VIP per il server API Kubernetes del tuo cluster di amministrazione. Fornisci il tuo VIP come valore per
loadBalancer.vips.controlPlaneVIP
Per ulteriori informazioni, consulta VIP nella sottorete del cluster di amministrazione.
antiAffinityGroups
Imposta
antiAffinityGroups.enabled
sufalse
.
Le regole di anti-affinità di Distributed Resource Scheduler (DRS) non sono supportate con i domini di topologia.
adminMaster
Se vuoi specificare la CPU e la memoria per i nodi del piano di controllo del cluster amministrativo, compila i campi
cpus
ememoryMB
nella sezioneadminMaster
.I cluster di amministrazione devono avere tre nodi del control plane. Imposta il campo
replicas
nella sezioneadminMaster
su3
.Se vuoi specificare un dominio di topologia specifico da utilizzare per i nodi del piano di controllo, aggiungi il nome del dominio di topologia al campo
adminMaster.topologyDomains
. Se non specifichi un nome qui, devi impostarne uno invSphereInfraConfig.defaultTopologyDomain
nel file di configurazione dell'infrastruttura vSphere.
proxy
Se la rete su cui si trovano i nodi del cluster di amministrazione è protetta da un server proxy, compila la sezione proxy
.
privateRegistry
Decidi dove 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 tuo account di servizio di accesso ai componenti per scaricare i componenti del cluster da Artifact Registry. Questo campo contiene il percorso di un file di chiavi JSON per l'account di servizio di accesso al componente.
Questo campo è già stato compilato per te.
gkeConnect
Registra il tuo cluster di amministrazione
a un parco Google Cloud compilando la sezione
gkeConnect
. L'ID in gkeConnect.projectID
deve essere uguale a quello impostato in
stackdriver.projectID
e cloudAuditLogging.projectID
. Se gli ID progetto
non sono uguali, la creazione del cluster non va a buon fine.
Se vuoi, puoi specificare 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 uguale a quella 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
Questa sezione descrive come i cluster vengono registrati nell'API GKE On-Prem.
Lo strumento a riga di comando gkectl
è l'unico
strumento di gestione del ciclo di vita del cluster
disponibile per i cluster che utilizzano domini di topologia. Sebbene la console Google Cloud , Google Cloud CLI e Terraform non siano supportati per i cluster che utilizzano i domini di topologia, puoi facoltativamente registrare il cluster nell'API GKE On-Prem al momento della creazione.
Se l'API GKE On-Prem è attivata nel tuo progetto Google Cloud , tutti i cluster
nel progetto vengono registrati automaticamente nell'API GKE On-Prem nella regione
configurata in stackdriver.clusterLocation
. La regione gkeOnPremAPI.location
deve essere uguale a quella specificata in cloudAuditLogging.clusterLocation
, gkeConnect.location
e stackdriver.clusterLocation
. Se le regioni non sono uguali, la creazione del cluster non riesce.
Se vuoi registrare tutti i cluster del progetto nell'API GKE On-Prem, assicurati di svolgere 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, disattivagkeonprem.googleapis.com
(il nome del servizio per l'API GKE On-Prem) nel progetto. Per le istruzioni, vedi Disattivare i servizi.
stackdriver
Compila la sezione
stackdriver
per attivare
Cloud Logging e Cloud Monitoring
per il tuo cluster.
Tieni presente i seguenti requisiti:
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
, deve essere impostata la stessa regione ingkeOnPremAPI.location
.
Se gli ID progetto e le regioni non sono uguali, 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 per i nuovi cluster:
Poiché
enableAdvancedCluster
è impostato sutrue
, devi specificare lo stesso percorso incloudAuditLogging.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 uguale alla regione impostata instackdriver.clusterLocation
egkeConnect.location
(se il campo è incluso nel file di configurazione). Inoltre, segkeOnPremAPI.enabled
ètrue
, deve essere impostata la stessa regione ingkeOnPremAPI.location
.
Se gli ID progetto e le regioni non sono uguali, la creazione del cluster non va a buon fine.
clusterBackup
Rimuovi questa sezione. L'esecuzione del backup del cluster di amministrazione su un data store vSphere non è supportata.
autoRepair
Se vuoi
abilitare la riparazione automatica dei nodi
per il tuo cluster di amministrazione, imposta
autoRepair.enabled
su true
.
secretsEncryption
Poiché enableAdvancedCluster
è impostato su true
, rimuovi questa sezione.
osImageType
Imposta osImageType
.
a ubuntu_cgroupv2
e ubuntu_containerd
.
preparedSecrets
Rimuovi il campo preparedSecrets
.
Le credenziali preparate
non sono supportate se i domini di topologia sono abilitati.
Esempio di file di configurazione compilati
Di seguito è riportato un esempio di file di configurazione del cluster di amministrazione compilato. La configurazione attiva alcune, ma non tutte, le funzionalità disponibili.
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.1-full.tgz" enableAdvancedCluster: true infraConfigFilePath: "/my-config-folder/vsphere-infrastructure-config.yaml" network: serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" ipMode: type: "static" ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" kind: "ManualLB" antiAffinityGroups: enabled: false adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 topologyDomains: "admin-cluster-domain" 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 autoRepair: enabled: true osImageType: "ubuntu_containerd"
Compila il file di configurazione dell'infrastruttura vSphere
Copia il modello per il
file di configurazione dell'infrastruttura vSphere
nel file nella directory specificata nel campo infraConfigFilePath
nel file di configurazione del cluster di amministrazione. Esiste un solo file di configurazione dell'infrastruttura vSphere per il cluster di amministrazione e per tutti i cluster di utenti gestiti.
Secret
Compila la sezione Secret
nel file di configurazione dell'infrastruttura vSphere. Questa sezione descrive il segreto delle credenziali vSphere che memorizza le credenziali di ciascun server vCenter.
VSphereInfraConfig.name
Compila il campo VSphereInfraConfig,name
.
VSphereInfraConfig.credentials.vCenters
Per ogni Secret
, aggiungi una sezione corrispondente
VSphereInfraConfig.credentials.vCenters
.
VSphereInfraConfig,topologyDomains
Compila la sezione VSphereInfraConfig.topologyDomains
per definire i domini di topologia.
Compila il file di blocco IP
Copia il modello per il
file di blocco IP nel
file nella directory specificata nel
campo network.ipMode.ipBlockFilePath
nel file di configurazione del cluster di amministrazione. Aggiungi gli indirizzi IP per il gateway, la netmask e i tre nodi del piano di controllo. Per ogni indirizzo IP del nodo del piano di controllo, aggiungi isControlPlane: true
come mostrato nell'esempio per i domini di topologia.
Scaricare le immagini del sistema operativo
Scarica il normale bundle Google Distributed Cloud sulla workstation di amministrazione:
gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz /var/lib/gke/bundles/gke-onprem-vsphere-VERSION.tgz
Sostituisci
VERSION
con la versione di Google Distributed Cloud che vuoi installare.Questo comando scarica il bundle normale. Non scaricare il pacchetto completo perché non è supportato con i cluster avanzati.
Esegui
gkectl prepare
per inizializzare l'ambiente vSphere:gkectl prepare --config ADMIN_CLUSTER_CONFIG
Sostituisci
ADMIN_CLUSTER_CONFIG
con il percorso della configurazione del cluster amministrativo.Il comando
gkectl prepare
esegue le seguenti attività preparatorie:Importa le immagini del sistema operativo in vSphere e le contrassegna come modelli VM.
Se utilizzi un registry Docker privato, esegui il push delle immagini del contenitore nel tuo registry.
Facoltativamente, convalida le attestazioni di compilazione 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 --configADMIN_CLUSTER_CONFIG
Riprendi 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. Ti servirà 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.
Verificare 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 ...
Configura PodTemplate
L'etichetta della topologia viene compilata nelle etichette dei nodi nel dominio della topologia.
A meno che la configurazione del dominio di topologia non abbia utilizzato il vincolo predefinito,
"topology.kubernetes.io/zone"
come chiave di topologia, devi configurare la chiave di topologia nel
modello di pod del tuo deployment, StatefulSet o ReplicaSet, a seconda dei casi.
Ad esempio, supponiamo di aver definito la chiave nell'etichetta della topologia come"topology.examplepetstore.com/zone"
. In PodTemplate
, specifica la chiave come valore per il campo topologySpreadConstraints.topologyKey
. In questo modo, lo scheduler Kubernetes può distribuire i pod nel dominio della topologia per garantire un'alta disponibilità ed evitare una concentrazione eccessiva in una singola area in caso di guasto.
Per ulteriori informazioni sulla configurazione di topologySpreadConstraints
, consulta la sezione Limiti di distribuzione della topologia del pod nella documentazione di Kubernetes.
Eseguire il backup dei file
Ti consigliamo di eseguire il backup del file kubeconfig del cluster di amministrazione. In altre parole, copia il file kubeconfig dalla workstation di amministrazione in un'altra posizione. In questo modo, se perdi l'accesso alla stazione di lavoro di amministrazione o se il file kubeconfig sulla stazione di lavoro di amministrazione viene eliminato per errore, avrai comunque accesso al cluster di amministrazione.
Ti consigliamo inoltre di eseguire il backup della chiave SSH privata per il cluster di amministrazione. 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 e esaminare eventuali problemi di connettività con il cluster di amministrazione.
Estrai la chiave SSH dal cluster di amministrazione in un file denominato
admin-cluster-ssh-key
:
kubectl --kubeconfigADMIN_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.
Risoluzione dei problemi
Consulta la sezione Risoluzione dei problemi relativi alla creazione e all'upgrade dei cluster.
Passaggi successivi
Creare un cluster utente da utilizzare nel dominio di topologia