Crea un cluster di amministrazione

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, consulta privateRegistry. 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:

  1. 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.
  2. Importa le immagini del sistema operativo in vSphere e invia le immagini container al registro privato, se applicabile.
    Esegui gkectl prepare.
  3. 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.
  4. 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 di gkectl della versione che verrà utilizzata quando crei il cluster. Specifica la versione del cluster nel campo gkeOnPremVersion 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 di gkectl non è consentita. Le versioni patch non sono importanti. Ad esempio, puoi utilizzare la versione 1.29.0-gke.1456 di gkectl 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 versione gkectl 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 di gkectl.

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 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 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 su false. Se non vuoi registrare cluster nel progetto, disabilita gkeonprem.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 e stackdriver.serviceAccountKeyPath.

  • L'ID in stackdriver.projectID deve essere uguale all'ID in gkeConnect.projectID e cloudAuditLogging.projectID.

  • La regione Google Cloud impostata in stackdriver.clusterLocation deve essere la stessa della regione impostata in cloudAuditLogging.clusterLocation e gkeConnect.location. Inoltre, se gkeOnPremAPI.enabled è true, in gkeOnPremAPI.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 e stackdriver.serviceAccountKeyPath.

  • L'ID in cloudAuditLogging.projectID deve essere uguale all'ID in gkeConnect.projectID e stackdriver.projectID.

  • La regione Google Cloud impostata in cloudAuditLogging.clusterLocation deve essere la stessa impostata in stackdriver.clusterLocation e gkeConnect.location (se il campo è incluso nel file di configurazione). Inoltre, se gkeOnPremAPI.enabled è true, la stessa regione deve essere impostata in gkeOnPremAPI.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:

  1. 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.
  2. 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.
  3. 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 configurazione main.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). Specifica us-west1 o un'altra regione supportata.

    Il campo location corrisponde al flag --location nel comando gkectl 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 comando gkectl 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 comando gkectl 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 comando gkectl 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 comando gkectl 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 comando gkectl 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 comando gkectl register bootstrap.

    Se vuoi utilizzare un criterio di archiviazione delle VM per i nodi del cluster, rimuovi il campo vcenter.datastore e aggiungi vcenter.storage_policy_name in alternativa. Inoltre, aggiungi il flag --vcenter-storage-policy al comando gkectl register bootstrap. Devi specificare un valore per vcenter.datastore o vcenter.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 comando gkectl register bootstrap.

  • CA_CERT_DATA: inserisci il certificato CA vCenter in formato PEM. Per ottenere i dati del certificato CA:

    1. 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 utilizzato gkeadm per creare la workstation amministrativa, puoi utilizzare il valore del campo caCertPath 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 comando gkectl register bootstrap.

    2. 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).

    3. 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 comando gkectl 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 campi hostname 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:

  1. Inizializza Terraform:

    terraform init
    

    Terraform installa tutte le librerie necessarie, ad esempio il provider Google Cloud . Se necessario, correggi eventuali errori in maint.tf.

  2. 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.

  1. Accedi alla workstation amministrativa utilizzando SSH.

  2. Autenticati con Google Cloud CLI:

    gcloud auth login
    
  3. 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 utilizzato gkeadm 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 esempio gke-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.

  4. Quando richiesto, inserisci (o copia e incolla) il nome utente vCenter. Il nome utente non viene visualizzato sullo schermo.

  5. 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:

  1. Nella console, inserisci le informazioni richieste da gkectl register bootstrap. La console mostra il comando gkectl 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.

  2. 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.

  3. 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

  1. Nella console, vai alla pagina Crea un cluster su VMware.

    Vai a Crea un cluster on VMware

  2. 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.

  3. Assicurati che l'opzione Crea un cluster di amministrazione sia selezionata.

  4. 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

  1. Inserisci un nome per il cluster amministrativo. La console utilizza il nome del cluster come valore del flag --target-cluster-name nel comando gkectl register bootstrap visualizzato nella parte inferiore della pagina. Il nome ha una lunghezza massima di 20 caratteri.

  2. 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 comando gkectl register bootstrap.

  3. 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 comando gkectl 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.

  1. 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 comando gkectl register bootstrap.

  2. 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 comando gkectl register bootstrap.

  3. 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 comando gkectl register bootstrap.

  4. 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 comando gkectl register bootstrap.

  5. 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 comando gkectl 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 comando gkectl register bootstrap.

    Devi inserire un valore nel campo Datastore o nel campo Nome policy di archiviazione, ma non in entrambi.

  6. (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 comando gkectl register bootstrap.

  7. 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 comando gkectl register bootstrap.

  8. 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 comando gkectl 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.

  1. 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.

  2. 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 utilizzato gkeadm 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 esempio gke-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.

  3. Utilizza SSH per connetterti alla workstation amministrativa.

  4. Copia il comando e incollalo in una finestra del terminale sulla workstation di amministrazione.

  5. Quando richiesto, inserisci (o copia e incolla) il nome utente vCenter. Il nome utente non viene visualizzato sullo schermo.

  6. 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:

  1. 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:

    1. Inserisci Ctrl-C per uscire da gkectl register bootstrap.
    2. 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
      
    3. Esegui di nuovo il comando gkectl register bootstrap.

  2. Fai clic su Avanti: nozioni di base del cluster per iniziare a configurare il cluster di amministrazione.

Impostazioni di base del cluster

  1. 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.

  2. 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.

  3. Fai clic su Next Control Plane (Control Plane successivo).

Piano di controllo

  1. Esamina le impostazioni predefinite nella sezione Control plane e modificale in base alle tue esigenze.

  2. 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.

  3. Fai clic su Avanti: networking.

Networking

In questa sezione devi specificare le informazioni di networking necessarie per creare il cluster di amministrazione.

  1. 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`.

  2. 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.

  3. 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.

  1. 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.

  2. Nel campo VIP del control plane, inserisci il VIP da utilizzare per il traffico inviato al server API Kubernetes.

  3. 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.

  1. 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.
    
  2. 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.

Passaggi successivi

Creare un cluster utente