Questo documento mostra come creare un cluster di amministrazione per i cluster Anthos su VMware (GKE On-Prem). Il cluster di amministrazione esegue il piano di controllo Kubernetes per il cluster di amministrazione stesso e per i cluster utente associati. Devi creare un cluster di amministrazione prima di creare qualsiasi cluster utente per eseguire i carichi di lavoro.
Per maggiori dettagli sul cluster di amministrazione, consulta la panoramica dell'installazione.
Panoramica della procedura
Ecco i passaggi principali necessari per la creazione di un cluster di amministrazione:
- Connettiti alla tua workstation di amministrazione.
- Questa VM ha gli strumenti necessari per creare nuovi cluster.
- Compila i file di configurazione.
- Specifica i dettagli per il 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 ed esegui il push di immagini container nel registro privato, se applicabile.
- Esegui
gkectl prepare
.
- (Facoltativo) Crea un bilanciatore del carico di Seesaw.
- Se hai deciso di utilizzare il bilanciatore del carico di Seesaw, esegui
gkectl create loadbalancer
.
- Crea un cluster di amministrazione.
- Utilizza
gkectl
per creare un nuovo cluster di amministrazione come specificato nei file di configurazione completati.
- 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 da utilizzare per creare e gestire i cluster utente.
Prima di iniziare
Assicurati di aver creato una workstation di amministrazione.
Consulta il documento di pianificazione degli indirizzi IP. Assicurati di avere a disposizione un numero sufficiente di indirizzi IP e rivedi la decisione su come vuoi che i nodi del cluster ricevano i loro indirizzi IP: DHCP o statico. Se decidi di utilizzare indirizzi IP statici, devi compilare un file di blocco IP contenente gli indirizzi che hai scelto.
Consulta la panoramica del bilanciamento del carico e rivedi la decisione sul tipo di bilanciatore del carico che vuoi utilizzare. Per alcuni bilanciatori del carico, devi configurare il bilanciatore del carico prima di creare il cluster di amministrazione.
Guarda la sezione
privateRegistry
e decidi se vuoi utilizzare un registro pubblico o privato per i cluster Anthos sui componenti VMware.Guarda al campo osImageType e decidi che tipo di sistema operativo vuoi eseguire sui nodi del cluster di amministrazione
1. Connettersi alla workstation di amministrazione
Segui le istruzioni per connettere una connessione SSH alla workstation di amministrazione. La workstation di amministrazione ha gli strumenti necessari per creare il tuo cluster di amministrazione. La workstation di amministrazione ha anche attivato l'account di servizio per l'accesso ai componenti.
Completa tutti i passaggi rimanenti in questo argomento sulla workstation di amministrazione della directory home.
2. Compila il file di configurazione
Quando gkeadm
ha creato la workstation di amministrazione, ha generato un file di configurazione denominato admin-cluster.yaml
. Questo file di configurazione consente di creare il cluster di amministrazione.
Acquisisci familiarità con il file di configurazione scansionando il documento del file di configurazione del cluster di amministrazione. Puoi mantenere il documento aperto in una scheda o in una finestra separata, perché ti farai riferimento quando completi i passaggi riportati di seguito.
name
Se vuoi specificare un nome per il cluster di amministrazione, compila il campo name
.
bundlePath
Il bundle è un file ZIP contenente componenti del cluster. È inclusa nella workstation di amministrazione. Questo campo è già stato compilato.
vCenter
La maggior parte dei campi di questa sezione è già compilata con i valori inseriti quando hai creato la workstation di amministrazione. L'unica eccezione è il campo dataDisk
, che devi compilare ora.
network
Decidi come vuoi che i nodi del tuo cluster ricevano gli indirizzi IP. Le opzioni sono:
Da un server DHCP che hai configurato in anticipo. Imposta
network.ipMode.type
su"dhcp"
.Da un elenco di indirizzi IP statici da te forniti. Imposta
network.ipMode.type
su"static"
e crea un file di blocco IP che fornisca gli indirizzi IP statici. Per un esempio di file di blocco IP, consulta Esempio di file di configurazione compilati.
Compila i restanti campi della sezione network in base alle tue esigenze:
Se hai deciso di utilizzare indirizzi IP statici per i nodi del cluster, il campo
network.ipMode.ipBlockFilePath
e la sezionenetwork.hostconfig
sono obbligatori. La sezionenetwork.hostconfig
contiene informazioni sui server NTP, sui server DNS e sui domini di ricerca DNS utilizzati dai nodi del cluster.Se utilizzi il bilanciatore del carico di Seesaw, la sezione
network.hostconfig
è obbligatoria anche se intendi utilizzare il DHCP per i nodi del cluster.I campi network.podCIDR e network.serviceCIDR contengono valori precompilati che puoi lasciare invariati, a meno che non siano in conflitto con gli indirizzi già in uso nella rete. Kubernetes utilizza questi intervalli per assegnare indirizzi IP ai pod e ai servizi nel tuo cluster.
Indipendentemente dal fatto che ti affidi a un server DHCP o specifichi un elenco di indirizzi IP statici, devi disporre di un numero di indirizzi IP sufficiente per i nodi del cluster di amministrazione. Sono inclusi i nodi nel cluster di amministrazione che eseguono i piani di controllo per eventuali cluster utente associati. Per una spiegazione del numero di indirizzi IP necessari, consulta Pianificare gli indirizzi IP.
loadBalancer
Metti da parte un VIP per il server API di Kubernetes del tuo cluster di amministrazione. Metti da parte un altro VIP per il server dei componenti aggiuntivi. Fornisci i VIP come valori per loadBalancer.vips.controlPlaneVIP
e loadBalancer.vips.addonsVIP
.
Per ulteriori informazioni, consulta la pagina relativa ai VIP nella subnet del cluster di amministrazione.
Decidi quale tipo di bilanciamento del carico utilizzare. Le opzioni sono:
Bilanciamento del carico in bundle MetalLB. Imposta
loadBalancer.kind
su"MetalLB"
.Vede il bilanciamento del carico in bundle. Imposta
loadBalancer.kind
su"Seesaw"
e compila la sezioneloadBalancer.seesaw
.Bilanciamento del carico integrato con F5 BIG-IP. Imposta
loadBalancer.kind
su"F5BigIP"
e compila la sezionef5BigIP
.Bilanciamento del carico manuale. Imposta
loadBalancer.kind
su"ManualLB"
e compila la sezionemanualLB
.
Per ulteriori informazioni 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 i cluster Anthos su VMware creino regole anti-affinità Distributed Resource Scheduler(DRS) per i nodi del cluster di amministrazione, determinando la loro distribuzione in almeno tre host fisici del data center.
adminMaster
Se vuoi specificare CPU e memoria per il nodo del piano di controllo del cluster di amministrazione, compila adminMaster
.
addonNode
Imposta addonNode.autoResize.enabled
su true
o false
in base alle tue preferenze.
proxy
Se la rete che avrà 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 cluster Anthos sui componenti VMware. Le opzioni sono:
Container Registry
Il tuo registro Docker privato.
Se vuoi utilizzare il tuo registro privato, compila la sezione privateRegistry
.
componentAccessServiceAccountKeyPath
I cluster Anthos su VMware utilizzano il tuo account di servizio di accesso ai componenti per scaricare i componenti del cluster da Container Registry. Questo campo contiene il percorso di un file della chiave JSON per l'account di servizio di accesso ai componenti.
Questo campo è già stato compilato.
gkeConnect
Se vuoi registrare il tuo cluster di amministrazione in un parco risorse Google Cloud, compila la sezione gkeConnect
.
stackdriver
Se vuoi abilitare Cloud Logging e Cloud Monitoring per il tuo cluster, compila la sezione stackdriver
.
cloudAuditLogging
Se vuoi integrare gli audit log dal server API Kubernetes del cluster con Cloud Audit Logs, compila la sezione cloudAuditLogging
.
clusterBackup
Se vuoi attivare il backup del cluster di amministrazione, imposta clusterBackup.datastore
sul datastore vSphere in cui vuoi salvare i backup del cluster.
autoRepair
Se vuoi attivare la riparazione automatica dei nodi per il cluster di amministrazione, imposta autoRepair.enabled
su true
.
secretsEncryption
Se vuoi abilitare la crittografia dei secret sempre attiva, compila la sezione secretsEncryption
.
osImageType
Decidi quale tipo di immagine del sistema operativo utilizzare per i nodi del cluster di amministrazione e compila la sezione osImageType
di conseguenza.
Esempio di file di configurazione compilati
Di seguito sono riportati un esempio di un file di blocco IP compilato e di un file di configurazione del cluster di amministrazione compilato. La configurazione attiva alcune, ma non tutte, le funzionalità disponibili.
vc-01-ipblock.yaml
blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.10 hostname: admin-host1 - ip: 172.16.20.11 hostname: admin-host2 - ip: 172.16.20.12 hostname: admin-host3 - ip: 172.16.20.13 hostname: admin-host4 - ip: 172.16.20.14 hostname: admin-host5 - ip: 172.16.20.15 hostname: admin-host6 - ip: 172.16.20.16 hostname: admin-host7 - ip: 172.16.20.17 hostname: admin-host8
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-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" dataDisk: "vc01-admin-disk.vmdk" network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "vc-01-ipblock.yaml" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "vc01-net-1" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" addonsVIP: "172.16.20.60" kind: "MetalLB" antiAffinityGroups: enabled: true 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"
Convalida 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 un messaggio di errore, correggi i problemi e convalida di nuovo il file.
Se vuoi saltare le convalide più lunghe, passa il flag --fast
.
Per saltare le singole convalide, utilizza i flag --skip-validation-xxx
. Per
ulteriori informazioni sul comando check-config
, consulta la pagina
Esecuzione dei controlli preliminari.
3. Recupero 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 le immagini del sistema operativo in vSphere e le contrassegna come modelli VM.
Se utilizzi un registro Docker privato, esegue il push delle immagini container al registro.
Facoltativamente, convalida le immagini container' crea attestazioni, verificando così che le immagini siano state create e firmate da Google e siano pronte per il deployment.
4. (Facoltativo) Crea un bilanciatore del carico di Seesaw
Ricorda che hai a disposizione diverse opzioni di bilanciamento del carico per il cluster di amministrazione: Metal LB, Seesaw, F5 BIG-IP o manuale.
Se hai scelto di utilizzare il bilanciatore del carico di Seesaw, esegui il passaggio in questa sezione. Altrimenti, puoi saltare questa sezione.
Crea e configura le VM per il bilanciatore del carico di Seesaw:
gkectl create loadbalancer --config ADMIN_CLUSTER_CONFIG
5. Crea il cluster di amministrazione
Crea il cluster di amministrazione:
gkectl create admin --config ADMIN_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. Avrai bisogno di questo file kubeconfig in un secondo momento per interagire con il cluster di amministrazione.
Se vuoi, puoi modificare il nome e la posizione del tuo file kubeconfig.
Gestisci il file checkpoint.yaml
Quando hai eseguito il comando gkectl create admin
per creare il cluster di amministrazione, è stato creato un file di checkpoint nella stessa cartella del datastore del disco di dati del cluster di amministrazione. Per impostazione predefinita, il nome di questo file è DATA_DISK_NAME‑checkpoint.yaml
. Se la lunghezza di DATA_DISK_NAME è maggiore o uguale a 245 caratteri, significa che, a causa del limite di vSphere sulla lunghezza dei nomi file, il nome è DATA_DISK_NAME.yaml
.
Questo file contiene lo stato e le credenziali del cluster di amministrazione e viene utilizzato per gli upgrade futuri. Non eliminare questo file se non segui la procedura per eliminare un cluster di amministrazione.
Se hai abilitato la crittografia delle VM nell'istanza di vCenter Server, devi disporre del privilegio Operazioni crittografiche.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 del 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.
6. 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:
gke-admin-master-hdn4z Ready control-plane,master ... gke-admin-node-7f46cc8c47-g7w2c Ready ... gke-admin-node-7f46cc8c47-kwlrs Ready ...
Risolvere i problemi
Consulta Risoluzione dei problemi di creazione e upgrade del cluster.