Esecuzione di controlli preliminari

Questa pagina spiega come eseguire controlli preflight per i cluster Anthos sul file di configurazione VMware (GKE on-prem).

Panoramica

Durante l'installazione, esegui gkectl create-config per generare un cluster Anthos sul file di configurazione VMware. Il file di configurazione favorisce l'installazione: fornisci informazioni sull'ambiente vSphere, sulla rete e sul bilanciatore del carico e sull'aspetto dei cluster. Puoi generare un file di configurazione prima o dopo aver creato una workstation di amministrazione. Per superare determinati controlli, devono essere eseguiti dalla workstation di amministrazione.

Dopo aver modificato il file per soddisfare le esigenze del tuo ambiente e dei tuoi cluster, puoi utilizzarlo per creare i tuoi cluster nell'ambiente on-prem.

Prima di creare i cluster, esegui gkectl check-config per convalidare il file di configurazione con diversi controlli preliminari. Se il comando restituisce un messaggio FAILURE, correggi i problemi e convalida di nuovo il file. Se una determinata convalida delle funzionalità restituisce messaggi di AVVISO, devi risolvere i problemi sottostanti prima di poter utilizzare tale funzionalità.

Modalità di verifica preflight e esclusione delle convalide

gkectl check-config ha una modalità predefinita e una modalità veloce:

  • In modalità predefinita, il comando convalida ogni campo in modo completo. Inoltre, la modalità predefinita crea macchine virtuali vSphere temporanee (VM) come parte delle relative convalide, che possono richiedere più tempo.

  • In modalità veloce, il comando ignora i controlli che creano VM di test ed esegue solo i controlli rapidi. Puoi attivare la modalità veloce passando nel flag --fast.

Puoi ignorare convalide specifiche passando in altri flag, descritti in gkectl check-config --help.

Traffico tra la workstation di amministrazione e le VM di test

In modalità predefinita, il controllo preliminare crea le VM di test per il cluster. Ogni VM di test esegue un server HTTP in ascolto sulla porta 443 e sulle porte dei nodi specificate nel file di configurazione.

Alle VM di test sono assegnati diversi indirizzi IP. Se il file di configurazione indica che i nodi del cluster ricevono gli indirizzi IP da un server DHCP, questo controllo utilizza un server DHCP per assegnare gli indirizzi IP alle VM di test. Se il file di configurazione indica che ai nodi del cluster verranno assegnati indirizzi IP statici, il controllo preliminare assegna gli indirizzi IP statici specificati nei file di blocco IP alle VM di test.

Il controllo preliminare, in esecuzione sulla workstation di amministrazione, invia richieste HTTP alle VM di test utilizzando i vari indirizzi IP assegnati alle VM. Le richieste vengono inviate alla porta 443 e alle porte dei nodi specificate nel file di configurazione.

Quando dovrei eseguire i controlli preliminari?

Una best practice consiste nell'eseguire controlli preliminari e prima di tentare di creare cluster. L'esecuzione anticipata di controlli preliminari può aiutarti a confermare di aver configurato correttamente l'ambiente vSphere e la rete.

Se utilizzi cluster Anthos su VMware versione 1.2.0-gke.6, esegui gkectl check-config due volte:

  1. Esegui gkectl check-config --fast.

  2. Esegui gkectl prepare.

  3. Esegui di nuovo gkectl check-config, senza il flag --fast.

Il motivo dell'esecuzione è due: gkectl prepare carica il modello VM per l'immagine del sistema operativo del nodo del cluster nel tuo ambiente vSphere. Il modello di VM deve essere attivo prima di eseguire l'insieme completo delle convalide.

Nei cluster Anthos su VMware versione 1.2.1 e successive, il comando check-config carica automaticamente il modello VM, quindi puoi eseguire l'intero insieme di convalide prima di eseguire gkectl prepare:

  1. Esegui gkectl check-config, senza il flag --fast.

  2. Esegui gkectl prepare.

I controlli preflight convalidano i valori che hai fornito al file. Non devi compilare ogni campo nel file di configurazione per eseguire controlli preflight contro il file, ma puoi convalidare il file in modo iterativo man mano che compili i campi. Ad esempio, se vuoi convalidare solo la configurazione di vCenter, puoi compilare solo i campi vcenter ed eseguire i controlli su questi campi.

Tieni presente che i tuoi cluster Anthos sulla configurazione VMware diventano immutabili dopo aver creato i cluster. L'esecuzione di controlli preliminari ti consente di individuare e risolvere i problemi nella configurazione prima di creare i cluster.

Conservazione della VM di test per il debug

A partire dai cluster Anthos su VMware versione 1.2.1, il comando gkectl check-config ha un flag --cleanup.

Quando esegue una serie completa di convalide, gkectl check-config crea una VM di test e una chiave SSH associata. Se vuoi conservare la VM di test e la chiave SSH a scopo di debug, imposta --cleanup su false.

Il valore predefinito di --cleanup è true.

Elenco dei controlli preliminari

I controlli preflight convalidano ogni campo nel file di configurazione. Ecco i controlli attuali:

Categoria Descrizione
File di configurazione

In genere convalida che ogni campo e specifica abbia il formato e i valori previsti.

Ignorato con flag --skip-validation-config.

Salta la convalida del campo proxy con il flag --skip-validation-proxy.

Internet

Convalida l'accesso a Internet per i domini richiesti. Convalida la configurazione del proxy in base a dove esegui gkectl.

Ignorato con il flag --skip-validation-internet.

Immagine sistema operativo

Convalida l'esistenza di immagini del sistema operativo.

Ignorato con il flag --skip-validation-os-images.

Versione del sistema operativo Windows

Convalida la versione del sistema operativo Windows.

Convalida la versione di Windows supportata quando si creano workstation di amministrazione con lo strumento a riga di comando gkeadm. Tieni presente che, sebbene lo strumento gkeadm sia disponibile per Windows 10, Windows Server 2019 e Linux, non esiste un controllo preliminare per Linux. Questa convalida inizia dalla versione 1.4.1.

Versione cluster

Convalida la versione del cluster di amministrazione, la versione del cluster utente e la versione gkectl per la creazione e l'upgrade.

Ignorato con il flag --skip-validation-cluster-version.

Integrità cluster

Convalida che l'amministratore o il cluster utente sia integro prima dell'upgrade:

  • Cluster di amministrazione: il controllo include servizio Kubernetes, stato dei componenti, DaemonSet, deployment, macchine e pod.
  • Cluster utente: il controllo include servizio Kubernetes, endpoint API del cluster, StatefulSet, deployment, deployment delle macchine, macchine e pod.

Ignorato con il flag --skip-validation-cluster-health.

In entrata

Controlla se il cluster utente ha un oggetto Gateway Istio prima dell'upgrade. Vedi Migrazione in entrata.

IP prenotato

Convalida la disponibilità di indirizzi IP sufficienti per la creazione e l'upgrade.

Ignorato con il flag --skip-validation-reserved-ips.

Google Cloud
ID progetto
[*].projectid
Convalida gli ID progetto forniti nei vari campi della configurazione. Se l'ID progetto non è presente, la convalida viene ignorata.
Registra account di servizio
registerserviceaccountkeypath
Convalida che l'account di servizio contenga i ruoli IAM richiesti. Convalida che le API richieste siano abilitate.
Connetti account di servizio
agentserviceaccountkeypath
Convalida che l'account di servizio contenga i ruoli IAM richiesti. Convalida che le API richieste siano abilitate.
Account di servizio della suite operativa di Google Cloud
stackdriver.serviceaccountkeypath
Convalida che l'account di servizio contenga i ruoli IAM richiesti. Convalida che le API richieste siano abilitate.
Ignorato con il flag --skip-validation-gcp.
Accesso a gcr.io/gke-on-prem-release Convalida l'accesso ai cluster Anthos sul Container Registry di VMware in Container Registry.

Ignorato dal flag --skip-validation-docker.

Registro Docker
privateregistryconfig
Se configurato, non ha accesso al registro Docker.

Ignorato con il flag --skip-validation-docker.

vCenter Verifica la presenza di tutti i campi vcenter e verifica anche quanto segue:
Credenziali
vcenter.credentials.[*]
Convalida l'autenticazione sul server vCenter utilizzando le credenziali utente fornite.
Versione vSphere Convalida la correttezza della versione vSphere.
Data center
vcenter.datacenter
Convalida l'esistenza del data center vSphere.
Datastore
vcenter.datastore
Convalida l'esistenza del datastore vSphere.
Disco dati
vcenter.datadisk
Convalida che il disco della macchina virtuale vSphere (VMDK) non esiste già in vSphere.
Pool di risorse
vcenter.resourcepool
Convalida l'esistenza del pool di risorse vSphere.
Rete
vcenter.network
Convalida l'esistenza della rete vSphere.
Driver CSI vSphere Convalida i prerequisiti del driver CSI vSphere.

Ignorato con il flag --skip-validation-infra.

Host per gruppi di anti-affinità

Convalida che il numero di host vCenter fisici è almeno tre se antiAffinityGroups è abilitato.

Per disabilitare antiAffinityGroups per un cluster, consulta antiAffinityGroups.enabled e questa nota di rilascio.

Ignorato con il flag --skip-validation-infra.

Bilanciatore del carico

Convalida la configurazione del bilanciamento del carico:

  • Se la modalità di bilanciamento del carico è integrata (lbmode: Integrated), convalida che tutti i campi bigip siano presenti nelle specifiche admincluster e usercluster.
  • Se la modalità di bilanciamento del carico è manuale (lbmode: Manual), convalida che tutti i campi manuallbspec siano presenti nelle specifiche admincluster e usercluster.
Bilanciamento del carico integrato
bigip.credentials.[*] Convalida le credenziali BIG-IP di F5.
bigip.partition Convalida l'esistenza della partizione fornita.
Ruolo utente BIG-IP di F5 Convalida che l'utente F5 BIG-IP fornito detiene il ruolo Amministratore o Amministratore risorsa.
bigip.vips.[*] Convalida i VIP forniti.

Ignorato con i flag --fast o --skip-validation-load-balancer.

Bilanciamento del carico manuale
Configurazione della rete Convalida VIP, IP nodo e così via

Ignorato con i flag --fast o --skip-validation-load-balancer.

[*].manuallbspec.[*] Convalida le porte dei nodi fornite.
Ignorato con il flag --skip-validation-load-balancer.
Networking

Convalida la disponibilità di intervalli CIDR, VIP e IP statici (se configurati). Verifica che gli indirizzi IP non si sovrappongano.

Ignorato con il flag --skip-validation-net-config.

DNS

Convalida la disponibilità del server DNS fornito.

Ignorato con il flag --skip-validation-dns.

NTP

Convalida la disponibilità del server NTP (Network Time Protocol).

Ignorato con il flag --skip-validation-tod.

VIP

Invia un ping ai VIP indicati. Questo controllo ha esito positivo se il ping non riesce, a indicare che il VIP previsto non è già stato preso.

Ignorato con il flag --skip-validation-vips.

IP dei nodi

Invia un ping agli indirizzi IP dei nodi forniti. Questo controllo ha esito positivo se il ping non riesce, a indicare che l'IP del nodo previsto non è già stato preso.

Ignorato con il flag --skip-validation-node-ips.

Risultati del controllo preliminare

I controlli preliminari possono restituire i seguenti risultati:

SUCCESS
Il campo e il relativo valore hanno superato il controllo.
FAILURE
Il campo e/o il relativo valore non hanno superato il controllo. Se un controllo restituisce un messaggio FAILURE, correggi i problemi e convalida di nuovo il file.
IGNORATO

Il controllo è stato ignorato, probabilmente perché non è pertinente alla configurazione. Ad esempio, se utilizzi un server DHCP, i controlli per i controlli DNS e IP dei nodi, che riguardano solo una configurazione IP statica, vengono ignorati.

Se passi un flag che ignora una convalida, il controllo ignorato non restituisce un risultato SALTATO; al contrario, la convalida non viene eseguita e non viene visualizzata nell'output comando.

SCONOSCIUTO

Il pulsante Salta ha restituito un codice diverso da zero. Puoi considerare i risultati UNKNOWN come controlli non riusciti. UNKNOWN di solito indica che il controllo non è riuscito a eseguire alcuni pacchetti di sistema, ad esempio l'esecuzione di nslookup o l'esecuzione di gcloud non riuscita.

disponibile a breve

I seguenti controlli preliminari verranno aggiunti in una release futura:

  • Server NTP

Esecuzione di controlli preliminari

Per eseguire i controlli preliminari, esegui questo comando:

gkectl check-config --config [CONFIG]

dove [CONFIG] è il percorso del tuo file di configurazione dei cluster Anthos su VMware

Esecuzione in modalità veloce

Se preferisci, puoi eseguire controlli preliminari in "modalità veloce", che ignora le convalide che creano VM di test temporanee, come il bilanciamento del carico VIP e le convalide IP dei nodi. A tale scopo, passa --fast:

gkectl check-config --config [CONFIG] --fast

Omissione convalide specifiche

Puoi ignorare i flag per ignorare in modo granulare convalide specifiche, come DNS, proxy e networking. Ogni flag di salto è preceduto dal prefisso --skip-[VALIDATION].

Per sapere di più sui flag di abbandono disponibili, esegui il comando seguente. In via facoltativa, consulta il riferimento per la configurazione di controllo gkectl:

gkectl check-config --help

Ad esempio, per ignorare le convalide del bilanciatore del carico:

gkectl check-config --config my-config.yaml --skip-validation-load-balancer 

Annullamento dei controlli preliminari

Se hai iniziato a eseguire i controlli preflight e vuoi annullare, premi due volte Ctrl + C. Se un controllo preflight ha creato una VM di test, l'annullamento dovrebbe anche pulire la VM automaticamente.

Pulizia di una VM di test

Se una VM di test è rimasta al termine dei controlli preflight, puoi eliminarla da vCenter. Una VM di test ha un nome simile al seguente:

check-config-[dhcp|static]-[random number]

Per eliminare la VM:

  1. Fai clic con il pulsante destro del mouse sulla VM, quindi fai clic su Spegni > Spegni

  2. Dopo aver spento la VM, fai nuovamente clic con il pulsante destro del mouse sulla VM e fai clic su Elimina dal disco.

Esempio

Di seguito è riportato un esempio dell'output del comando. In questo esempio, la configurazione convalidata utilizza la modalità di bilanciamento del carico integrata e gli IP statici senza un registro Docker esterno:

- Validation Category: Config Check
    - [SUCCESS] Config

- Validation Category: Internet Access
    - [SUCCESS] Internet access to required domains

- Validation Category: GCP
    - [SUCCESS] GCP Service
    - [SUCCESS] GCP Service Account

- Validation Category: Docker Registry
    - [SUCCESS] gcr.io/gke-on-prem-release access

- Validation Category: vCenter
    - [SUCCESS] Credentials
    - [SUCCESS] Version
    - [SUCCESS] Datacenter
    - [SUCCESS] Datastore
    - [SUCCESS] Data Disk
    - [SUCCESS] Resource Pool
    - [SUCCESS] Network
    - [SUCCESS] VSphere CSI Driver

- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster F5 (credentials, partition and user role)
    - [SUCCESS] User Cluster F5 (credentials, partition and user role)

- Validation Category: Network Configuration
    - [SUCCESS] CIDR, VIP and static IP (availability and overlapping)

- Validation Category: DNS
    - [SUCCESS] DNS (availability)

- Validation Category: VIPs
    - [SUCCESS] ping (availability)

- Validation Category: Node IPs
    - [SUCCESS] ping (availability)

Now running slow validation checks. ...

Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with admin cluster configuration...  DONE
Waiting to get IP addresses from test VMs...  DONE
Waiting for test VMs to become ready...  DONE

Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with user cluster configuration...  DONE
Waiting to get IP addresses from test VMs...  DONE
Waiting for test VMs to become ready...  DONE

- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster VIP and NodeIP
    - [SUCCESS] Admin Cluster F5 Access
    - [SUCCESS] User Cluster VIP and NodeIP
    - [SUCCESS] User Cluster F5 Access

- Validation Category: Internet Access
    - [SUCCESS] Internet access to required domains

- Validation Category: vCenter on test VMs
    - [SUCCESS] Test VM: VCenter Access and Permission

- Validation Category: DNS on test VMs
    - [SUCCESS] Test VM: DNS Availability

- Validation Category: TOD on test VMs
    - [SUCCESS] Test VM: TOD Availability

- Validation Category: Docker Registry
    - [SUCCESS] gcr.io/gke-on-prem-release access

Deleting test VMs with admin cluster configuration...  DONE
Deleting test VMs with user cluster configuration...  DONE

Problemi noti

  • Per la versione 1.3.0-gke.16:

    Devi eseguire controlli di convalida rapidi, gkectl check-config --fast, per i tuoi controlli preflight se si applicano entrambe le seguenti condizioni:

    1. Hai configurato i cluster Anthos su VMware per utilizzare un proxy.

    2. Hai installato uno dei seguenti bundle:

      • Il gruppo /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz dalla pagina Download.
      • Il bundle /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz della workstation di amministrazione.

    Puoi eseguire un set completo di convalida solo se hai installato il bundle completo. Ad esempio: /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16-full.tgz

  • Per la versione 1.2.0-gke.6:

    Se utilizzi pool di risorse nidificati o il pool di risorse predefinito, gkectl check-config non riesce quando provi a eseguire un set completo di convalide. Tuttavia, puoi eseguire una serie più limitata di convalide passando il flag --fast.

    gkectl check-config --config [CONFIG] --fast

Passaggi successivi