Creazione di un cluster di amministrazione

Questo documento mostra come creare un cluster di amministrazione per 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 creare un cluster di amministrazione:

  1. Connettiti alla workstation di amministrazione.
    Questa VM ha gli strumenti necessari per creare nuovi cluster.
  2. 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.
  3. Importa le immagini sistema operativo in vSphere ed esegui il push delle immagini container nel registro privato, se applicabile.
    Esegui gkectl prepare.
  4. (Facoltativo) Crea un bilanciatore del carico di Seesaw.
    Se hai deciso di utilizzare il bilanciatore del carico di Seesaw, esegui gkectl create loadbalancer.
  5. Creare un cluster di amministrazione.
    Usa gkectl per creare un nuovo cluster di amministrazione come specificato nei file di configurazione completati. La onprem-admin-cluster-controller nel cluster di bootstrap temporaneo gestisce la creazione del cluster di amministrazione.
  6. 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 disporre di un numero di indirizzi IP sufficiente e rivedi la tua 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 determinati bilanciatori del carico, devi configurarlo prima di creare il cluster di amministrazione.

  • Osserva la sezione privateRegistry e decidi se vuoi utilizzare un registro pubblico o privato per i cluster Anthos sui componenti VMware.

  • Osserva il campo osImageType e decidi quale tipo di sistema operativo vuoi eseguire sui nodi del cluster di amministrazione

1. Connettersi alla workstation di amministrazione

Segui le istruzioni per ottenere una connessione SSH alla workstation di amministrazione. La workstation di amministrazione dispone degli 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.

Esegui tutti i passaggi rimanenti di questo argomento nella workstation di amministrazione della directory home.

2. Compila il file di configurazione

Quando gkeadm ha creato la tua workstation di amministrazione, ha generato un file di configurazione denominato admin-cluster.yaml. Questo file di configurazione serve per creare il tuo cluster di amministrazione.

Acquisisci familiarità con il file di configurazione analizzando il file di configurazione del cluster di amministrazione. Puoi tenere aperto il documento in una scheda o una finestra separata, perché vi farai riferimento quando completi i seguenti passaggi.

name

Se vuoi specificare un nome per il cluster di amministrazione, compila il campo name.

bundlePath

Il bundle è un file ZIP contenente i componenti del cluster. Viene inclusa nella workstation di amministrazione. Questo campo è già compilato per te.

vCenter

La maggior parte dei campi di questa sezione contiene già i valori inseriti al momento della creazione della 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 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 IP di blocco che fornisca gli indirizzi IP statici. Per un esempio di file a blocchi di IP, consulta l'articolo Esempio di file di configurazione compilati.

Compila i restanti campi della sezione Rete del file di configurazione in base alle tue esigenze:

  • Se hai deciso di utilizzare indirizzi IP statici per i nodi del cluster, devi compilare il campo network.ipMode.ipBlockFilePath e la sezione network.hostconfig. La sezione network.hostconfig contiene informazioni sui server NTP, i server DNS e i 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 protocollo DHCP per i nodi del cluster.

  • 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 rete. Kubernetes utilizza questi intervalli per assegnare indirizzi IP a pod e servizi nel tuo cluster.

Che tu faccia affidamento su un server DHCP o specifichi un elenco di indirizzi IP statici, devi avere un numero sufficiente di indirizzi IP disponibili per i tuoi nodi 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 cluster di amministrazione. Metti da parte un altro VIP per il server dei componenti aggiuntivi. Specifica i tuoi 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".

  • Verifica il bilanciamento del carico in bundle. Imposta loadBalancer.kind su "Seesaw" e compila la sezione loadBalancer.seesaw.

  • Bilanciamento del carico integrato con F5 BIG-IP. Imposta loadBalancer.kind su "F5BigIP" e compila la sezione f5BigIP.

  • Bilanciamento del carico manuale. Imposta loadBalancer.kind su "ManualLB" e compila la sezione manualLB.

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 i cluster Anthos su VMware devono creare regole anti-affinità Distributed Resource Scheduler (DRS) per i nodi del cluster di amministrazione, in modo che siano distribuiti su almeno tre host fisici nel tuo 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 conterrà i nodi del cluster di amministrazione è protetta da un server proxy, compila la sezione proxy.

privateRegistry

Decidi dove vuoi mantenere 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

Cluster Anthos su VMware utilizza il tuo account di servizio per l'accesso ai componenti per scaricare i componenti del cluster da Container Registry. Questo campo contiene il percorso di un file della chiave JSON per il tuo account di servizio di accesso ai componenti.

Questo campo è già compilato per te.

gkeConnect

Registra il tuo cluster di amministrazione in un parco risorse Google Cloud compilando la sezione gkeConnect.

stackdriver

Se vuoi abilitare Cloud Logging e Cloud Monitoring per il tuo cluster, compila la sezione stackdriver.

Questa sezione è obbligatoria per impostazione predefinita. In altre parole, se non compili questa sezione, devi includere il flag --skip-validation-stackdriver quando esegui gkectl create admin.

cloudAuditLogging

Se vuoi integrare gli audit log dal server API Kubernetes del cluster con Cloud Audit Logs, compila la sezione cloudAuditLogging.

clusterBackup

Se vuoi abilitare il backup del cluster di amministrazione, imposta clusterBackup.datastore sul datastore vSphere in cui vuoi salvare i backup del cluster.

autoRepair

Se vuoi abilitare la riparazione automatica dei nodi per il tuo 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 di conseguenza la sezione osImageType.

Esempio di file di configurazione compilati

Ecco 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 eventuali messaggi di errore, correggi i problemi e convalida di nuovo il file.

Se vuoi saltare le convalide che richiedono più tempo, passa il flag --fast. Per saltare le singole convalide, utilizza i flag --skip-validation-xxx. Per scoprire di più sul comando check-config, consulta Controlli preflight.

3. Ottieni 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 di sistema operativo in vSphere e le contrassegna come modelli di VM.

  • Se utilizzi un registro Docker privato, esegue il push delle immagini container al registro.

  • Facoltativamente, convalida le attestazioni di compilazione delle immagini container, verificando che siano state create e firmate da Google e siano pronte per il deployment.

4. (Facoltativo) Creare un bilanciatore del carico di Seesaw

Ricorda che sono disponibili 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 di questa sezione. In caso contrario, 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 di datastore del disco di dati del cluster di amministrazione. Per impostazione predefinita, il nome del file è DATA_DISK_NAME‑checkpoint.yaml. Se la lunghezza di DATA_DISK_NAME è maggiore o uguale a 245 caratteri, il nome sarà DATA_DISK_NAME.yaml a causa del limite di vSphere sulla 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 tu non stia seguendo la procedura per eliminare un cluster di amministrazione.

Se hai abilitato la crittografia delle VM nell'istanza di vCenter Server, devi avere il 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 disabilitare 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 dei cluster.

Passaggi successivi

Crea un cluster utente