Questo documento mostra come creare un cluster di amministrazione per Google Distributed Cloud. Il cluster di amministrazione gestisce i cluster utente che eseguono per i carichi di lavoro.
Questa pagina si rivolge agli amministratori, agli architetti e agli operatori che configurano, monitorare e gestire l'infrastruttura tecnica. Per scoprire di più sui ruoli comuni e ad esempio di attività a cui facciamo riferimento nei contenuti di Google Cloud, Ruoli e attività utente comuni di GKE Enterprise.
Per maggiori dettagli sul cluster di amministrazione, consulta panoramica dell'installazione.
Panoramica della procedura
Questi sono i passaggi principali necessari per creare un cluster di amministrazione:
- Prepara una workstation di amministrazione.
- Questa macchina dispone degli strumenti necessari per creare nuovi cluster.
- Compila i file di configurazione.
- Specifica i dettagli per il nuovo amministratore completando e convalidando un file di configurazione del cluster di amministrazione, di configurazione delle credenziali ed eventualmente un file dei blocchi IP.
- Importa immagini del sistema operativo in vSphere ed esegui il push delle immagini container al registro privato, se applicabile.
- Esegui
gkectl prepare
.
- Creare un cluster di amministrazione.
- Utilizza
gkectl
per creare un nuovo cluster di amministrazione come specificato in di configurazione completati. Quando Google Distributed Cloud crea un amministratore esegue il deployment di un Kubernetes in Docker (tipo) per ospitare temporaneamente i controller Kubernetes necessari per creare del cluster di amministrazione. Questo cluster temporaneo è chiamato cluster di bootstrap. Utente vengono creati e sottoposti a upgrade dall'amministratore responsabile senza l'uso 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 per creare e gestire i cluster utente.
Se utilizzi Controlli di servizio VPC, potresti riscontrare errori quando esegui
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.
Prima di iniziare
Esamina il Documento di pianificazione degli indirizzi IP. Assicurati di disporre di un numero sufficiente di indirizzi IP per il piano di controllo nodi e un VIP del piano di controllo. Se prevedi di creare qualsiasi cluster kubeception, devi disporre di un numero sufficiente di indirizzi IP per i nodi del piano di controllo a ciascuno di questi cluster utente.
Esamina il panoramica del bilanciamento del carico e rivedi la tua 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 avanti
privateRegistry
e decidi se utilizzare un registry pubblico o privato Google Distributed Cloud.Guarda avanti osImageType e decidi quale tipo di sistema operativo eseguire sul tuo nodi del cluster.
Se la tua organizzazione richiede che il traffico in uscita passi attraverso un proxy il server web, assicurati di lista consentita delle API richieste e l'indirizzo di Container Registry.
Nella versione 1.29 e successive, i controlli preflight lato server vengono abilitati predefinito. I controlli preflight lato server richiedono regole firewall aggiuntive. Nel Regole firewall per i cluster di amministrazione, cerca "Controlli preflight" e assicurati che tutte le regole firewall obbligatorie siano configurato. I controlli preflight lato server vengono eseguiti sul cluster di bootstrap anziché a livello locale sulla workstation di amministrazione.
1. Prepara la workstation di amministrazione
Assicurati di aver configurato la workstation di amministrazione e di poter accedere come descritto nel Crea una workstation di amministrazione. La workstation di amministrazione ha gli strumenti necessari per creare il cluster di amministrazione.
Esegui tutti i passaggi rimanenti in questo documento sulla workstation di amministrazione.
2. Compila il file di configurazione
Se hai utilizzato gkeadm
per creare la tua workstation di amministrazione, è stato generato una configurazione
file denominato admin-cluster.yaml
.
Se non hai utilizzato gkeadm
per creare la tua workstation di amministrazione, genera
admin-cluster.yaml
eseguendo questo comando sulla workstation di amministrazione:
gkectl create-config admin
Questo file di configurazione consente di creare il cluster di amministrazione.
Acquisisci familiarità con il file di configurazione analizzando file di configurazione del cluster di amministrazione documento. Ti consigliamo di tenere il documento aperto in una scheda o finestra separata perché vi farai riferimento man mano che completi i passaggi seguenti.
name
Se vuoi specificare un nome per il cluster di amministrazione, compila il
name
.
bundlePath
Il bundle è un file compresso che contiene i componenti del cluster. È inclusa con la workstation di amministrazione. Questo campo è già stato compilato.
vCenter
I campi di questa sezione sono già compilati con i valori che hai inserito quando hai creato la workstation di amministrazione.
network
Compila il campo
network.controlPlaneIPBlock
e la sezione
network.hostConfig
. Imposta anche
adminMaster.replicas
a 3
.
La network.podCIDR e network.serviceCIDR campi contengono valori precompilati che puoi lasciare invariati, a meno che non sono in conflitto con indirizzi già in uso nella rete. Kubernetes usa questi intervalli per assegnare indirizzi IP a pod e servizi nel tuo cluster.
Compila il resto dei campi della relativa del file di configurazione dell'oggetto o eliminare definitivamente una versione archiviata, in base alle necessità.
loadBalancer
Riserva un VIP per il server API Kubernetes del tuo cluster di amministrazione. Fornisci
il tuo VIP come valore
loadBalancer.vips.controlPlaneVIP
Per ulteriori informazioni, vedi VIP nella subnet del cluster di amministrazione.
Decidi il tipo di bilanciamento del carico da utilizzare. Le opzioni sono:
Bilanciamento del carico in bundle con MetalLB. Imposta
loadBalancer.kind
a"MetalLB"
.Bilanciamento del carico integrato con F5 BIG-IP. Imposta
loadBalancer.kind
su"F5BigIP"
e compila ilf5BigIP
: .Bilanciamento del carico manuale. Imposta
loadBalancer.kind
su"ManualLB"
e compila ilmanualLB
: .
Per ulteriori informazioni sulle opzioni di bilanciamento del carico, consulta Panoramica del bilanciamento del carico.
antiAffinityGroups
Imposta antiAffinityGroups.enabled
a true
o false
in base alle tue preferenze.
Utilizza questo campo per specificare se vuoi che Google Distributed Cloud crei VMware Pianificatore risorse distribuite (DRS) regole di anti-affinità per i nodi del cluster di amministrazione, che vengono quindi visualizzate distribuiti su almeno tre host fisici nel tuo data center.
adminMaster
Se vuoi specificare CPU e memoria per i nodi del piano di controllo dell'amministratore
compila i campi cpus
e memoryMB
nel
adminMaster
:
.
Imposta il campo replicas
nella sezione adminMaster
su 3
.
proxy
Se la rete che avrà i nodi del cluster di amministrazione è dietro un server proxy,
compila
proxy
.
privateRegistry
Decidi dove vuoi conservare le immagini container per Google Distributed Cloud componenti. Le opzioni sono:
Container Registry
Il tuo registro Docker privato.
Se vuoi utilizzare il tuo registro privato, compila
privateRegistry
.
componentAccessServiceAccountKeyPath
Google Distributed Cloud utilizza il tuo account di servizio di accesso ai componenti per scaricare componenti cluster da Container Registry. Questo campo contiene il percorso di un file JSON chiave per il tuo account di servizio di accesso ai componenti.
Questo campo è già stato compilato.
gkeConnect
Registra il cluster di amministrazione
a un parco risorse Google Cloud
gkeConnect
:
. Se includi le sezioni stackdriver
e cloudAuditLogging
nella
di configurazione del file di configurazione, l'ID in gkeConnect.projectID
deve corrispondere all'ID
impostato in stackdriver.projectID
e cloudAuditLogging.projectID
. Se il progetto
Gli ID non sono uguali, la creazione del cluster non va a buon fine.
Nella versione 1.28 e successive, puoi facoltativamente specificare una regione in cui il parco risorse
Collega i servizi eseguiti 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
della regione configurata in cloudAuditLogging.clusterLocation
,
stackdriver.clusterLocation
e gkeOnPremAPI.location
. Se le regioni
non corrispondono, la creazione del cluster ha esito negativo.
gkeOnPremAPI
Se l'API GKE On-Prem è abilitata nel tuo
progetto Google Cloud, tutti i cluster nel progetto vengono
registrato nell'API GKE On-Prem
automaticamente 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 le stesse,
la creazione non riesce.
Se vuoi registrare tutti i cluster del progetto nell'API GKE On-Prem, segui i passaggi 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
. In caso contrario registrare eventuali cluster nel progetto, disabilitagkeonprem.googleapis.com
(il nome del servizio per l'API GKE On-Prem) nel progetto. Per istruzioni, vedi Disattivazione dei servizi.
stackdriver
Se vuoi abilitare
Cloud Logging e Cloud Monitoring
per il cluster, compila
stackdriver
:
.
Questa sezione è obbligatoria per impostazione predefinita. Vale a dire che se non compili questo
devi includere il flag --skip-validation-stackdriver
quando
esegui gkectl create admin
.
Tieni presente i seguenti requisiti per i nuovi cluster:
L'ID in
stackdriver.projectID
deve essere uguale all'ID tragkeConnect.projectID
ecloudAuditLogging.projectID
.La regione Google Cloud impostata in
stackdriver.clusterLocation
deve essere la stessa della regione impostata incloudAuditLogging.clusterLocation
egkeConnect.location
(se il campo è incluso nel file di configurazione). Inoltre, segkeOnPremAPI.enabled
ètrue
, la stessa regione deve essere impostato ingkeOnPremAPI.location
.
Se gli ID progetto e le regioni non sono uguali, la creazione del cluster non riesce.
cloudAuditLogging
Se vuoi integrare gli audit log dall'API Kubernetes del cluster
server con Cloud Audit Logs,
cloudAuditLogging
.
Tieni presente i seguenti requisiti per i nuovi cluster:
L'ID in
cloudAuditLogging.projectID
deve essere uguale all'ID tragkeConnect.projectID
estackdriver.projectID
.La regione Google Cloud impostata in
cloudAuditLogging.clusterLocation
deve essere corrisponde alla regione impostata instackdriver.clusterLocation
egkeConnect.location
(se il campo è incluso nel file di configurazione). Inoltre, segkeOnPremAPI.enabled
ètrue
, la stessa regione deve essere impostato ingkeOnPremAPI.location
.
Se gli ID progetto e le regioni non sono uguali, la creazione del cluster non riesce.
clusterBackup
Se vuoi abilitare
il backup del cluster di amministrazione,
imposta
clusterBackup.datastore
:
alla
Datastore vSphere
in cui vuoi salvare i backup del cluster.
autoRepair
Se vuoi
abilita la riparazione automatica dei nodi
per il cluster di amministrazione, imposta
autoRepair.enabled
:
a true
.
secretsEncryption
Se vuoi abilitare
crittografia dei secret sempre attivi,
compila
secretsEncryption
:
.
osImageType
Decidi quale tipo di immagine del sistema operativo utilizzare per i nodi del cluster di amministrazione
compila
osImageType
di conseguenza.
Esempio di file di configurazione compilati
Ecco un esempio di file di configurazione del cluster di amministrazione compilato. La consente solo alcune 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 la validità del file:
gkectl check-config --config ADMIN_CLUSTER_CONFIG
Sostituisci ADMIN_CLUSTER_CONFIG con il percorso del cluster di amministrazione di configurazione del deployment.
Se il comando restituisce messaggi di errore, correggi i problemi e convalida .
Se vuoi saltare le convalide che richiedono più tempo, passa il flag --fast
.
Per saltare le singole convalide, utilizza i flag --skip-validation-xxx
. A
scopri di più sul comando check-config
, consulta
Esecuzione dei controlli preflight.
3. Recupera immagini sistema operativo
Esegui gkectl prepare
per inizializzare il tuo 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 di VM.
Se utilizzi un registro Docker privato, esegue il push delle immagini container a nel registro.
Facoltativamente, convalida le immagini container creare attestazioni, per verificare che le immagini siano state create e firmate da Google e siano pronte per e deployment continuo.
5. Crea il cluster di amministrazione
Crea il cluster di amministrazione:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Se utilizzi Controlli di servizio VPC, potresti riscontrare errori quando esegui
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.
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
Individuare il file kubeconfig del cluster di amministrazione
Il comando gkectl create admin
crea un file kubeconfig denominato
kubeconfig
nella directory attuale. Avrai bisogno di questo file kubeconfig
in un secondo momento per interagire
con il tuo 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.
Gestisci il file checkpoint.yaml
Quando hai eseguito il comando gkectl create admin
per creare il cluster di amministrazione,
ha creato un file di checkpoint nella stessa cartella del datastore dell'amministratore
il disco dati del cluster. Per impostazione predefinita, questo file ha il nome
DATA_DISK_NAME‑checkpoint.yaml
. Se la lunghezza
Il campo DATA_DISK_NAME supera o uguale a 245 caratteri, alla scadenza
fino al limite di vSphere della lunghezza del nome file, il nome è
DATA_DISK_NAME.yaml
.
Questo file contiene lo stato e le credenziali del cluster di amministrazione e viene utilizzato per per gli upgrade futuri. Non eliminare questo file a meno che stanno seguendo il processo eliminazione di un cluster di amministrazione.
Se hai abilitato la crittografia delle VM nella tua istanza di vCenter Server,
deve avere
Operazioni crittografiche.Accesso diretto
prima di creare o eseguire l'upgrade dell'amministratore
in un cluster Kubernetes. In caso contrario, il checkpoint non verrà caricato. Se non riesci a ottenere
questo privilegio, puoi disabilitare il caricamento del file di checkpoint utilizzando
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
influisce sul 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 cluster di amministrazione kubeconfig.
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 ...
7. Esegui il backup dei file
Ti consigliamo di eseguire il backup del file kubeconfig del cluster di amministrazione. Vale a dire che il testo dalla workstation di amministrazione a un'altra posizione. Se poi perdono l'accesso alla workstation di amministrazione o se il file kubeconfig sulla console la workstation viene eliminata per errore, hai ancora accesso in un cluster Kubernetes.
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 connettersi ai nodi del cluster di amministrazione. In questo modo potrai risolvere i problemi indaga su 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.
Criteri RBAC
Quando compili il
Sezione gkeConnect
nel file di configurazione del cluster di amministrazione, il cluster è registrato
flotta durante la creazione o l'aggiornamento. Per attivare
di gestione del parco risorse, Google Cloud esegue il deployment
Connetti agente e crea un account Google
l'account di servizio che rappresenta il progetto in cui è registrato il cluster.
L'agente Connect stabilisce una connessione con l'account di servizio da gestire
al server API Kubernetes del cluster. Ciò consente l'accesso
funzionalità di gestione di cluster e carichi di lavoro in Google Cloud, incluso l'accesso
alla console Google Cloud, che ti consente di interagire
nel tuo cluster.
Il server API Kubernetes del cluster di amministrazione deve essere in grado di autorizzare dall'agente Connect. A questo scopo, procedi nel seguente modo: Criteri di controllo dell'accesso basato su ruoli (RBAC) sono configurate nell'account di servizio:
Le norme relative al furto d'identità che autorizza l'agente Connect a inviare richieste all'API Kubernetes per conto dell'account di servizio.
Un criterio di autorizzazione che specifica le operazioni consentite e le altre risorse Kubernetes.
L'account di servizio e i criteri RBAC sono necessari per poter gestire del ciclo di vita dei tuoi cluster utente nella console Google Cloud.
Risoluzione dei problemi
Consulta: Risoluzione dei problemi di creazione e upgrade del cluster.