Questa pagina descrive i campi del file di configurazione del cluster utente di Google Distributed Cloud.
Generazione di un modello per il file di configurazione
Se hai utilizzato gkeadm
per creare la workstation di amministrazione, gkeadm
ha generato un modello per il file di configurazione del cluster utente. Inoltre, gkeadm
ha compilato alcuni campi per te.
Se non hai utilizzato gkeadm
per creare la workstation di amministrazione, puoi utilizzare
gkectl
per generare un modello per il file di configurazione del cluster utente.
Per generare un modello per il file di configurazione del cluster utente:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
Sostituisci quanto segue:
OUTPUT_FILENAME
: un percorso a tua scelta per il
modello generato. Se ometti questo flag, gkectl
assegna al file il nome
user-cluster.yaml
e lo inserisce nella directory corrente.
VERSION
: il numero di versione desiderato. Ad esempio:
gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8
.
Modello
Campi obbligatori e valori predefiniti
Se un campo è contrassegnato come Obbligatorio, il file di configurazione completato deve avere un valore inserito per il campo.
Alcuni campi sono obbligatori in base alle condizioni. Ad esempio,
loadBalancer.metalLB.addressPools
è obbligatorio se loadBalancer.kind
è uguale a
MetalLB
.
Se per un campo viene specificato un valore Predefinito, il cluster lo utilizzerà se non inserisci alcun valore per il campo. Puoi eseguire l'override di un valore predefinito inserendo un valore.
Se un campo non è contrassegnato come obbligatorio e non viene specificato alcun valore predefinito, il campo è facoltativo. Puoi compilarlo se è pertinente per te, ma non è obbligatorio.
Compilare il file di configurazione
Nel file di configurazione, inserisci i valori dei campi come descritto nelle sezioni seguenti.
name
Stringa obbligatoria
Un nome scelto da te per il cluster utente. Il nome deve:
- Deve contenere al massimo 40 caratteri.
- Deve contenere solo caratteri alfanumerici minuscoli o un trattino (
-
). - Deve iniziare con un carattere alfabetico
- Deve terminare con un carattere alfanumerico
Esempio:
name: "my-user-cluster"
gkeOnPremVersion
Stringa
mutabile obbligatoria
La versione di Google Distributed Cloud per il tuo cluster utente.
Esempio:
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
Se vuoi utilizzare credenziali preparate, compila questo campo. In caso contrario, rimuovi questo campo o lascialo commentato.
Stringa
non mutevole
Valori possibili: una stringa che inizia con "gke-onprem-secrets-"
Il nome di uno spazio dei nomi Kubernetes nel cluster di amministrazione in cui vengono conservati i secret preparati per questo cluster utente.
Esempio:
preparedSecrets: namespace: "gke-onprem-secrets-alice"
enableControlplaneV2
1.30 e successive
Immutabile
Booleano
Precompilato: true
Valore predefinito: true
Nella versione 1.30 e successive, Controlplane V2 è obbligatorio per i nuovi cluster di utenti. Se includi questo campo nel file di configurazione, deve essere impostato su true
. Con Controlplane V2, il control plane per un cluster utente viene eseguito su uno o più nodi nel cluster utente stesso. I vantaggi di Control Plane V2 includono:
Coerenza dell'architettura tra i cluster di amministrazione e utente.
Isolamento dei guasti. Un errore del cluster di amministrazione non influisce sui cluster utente.
Separazione operativa. L'upgrade di un cluster di amministrazione non causa tempi di inattività per i cluster utente.
Separazione del deployment. Puoi posizionare i cluster di amministrazione e utente in diversi domini di errore o siti geografici. Ad esempio, un cluster utente in una località remota potrebbe trovarsi in una località geografica diversa da quella del cluster di amministrazione.
1.29 e versioni precedenti
Immutabile
Booleano
Precompilato: true
Valore predefinito: true
Per attivare Controlplane V2, imposta enableControlplaneV2
su true
o rimuovi l'impostazione dal file di configurazione del cluster utente. In caso contrario, impostalo su false
.
Con Controlplane V2, il control plane per un cluster utente viene eseguito su uno o più
nodi nel cluster utente stesso. Quando il control plane v2 non è abilitato, il control plane del cluster utente viene eseguito nel cluster di amministrazione.
Ti consigliamo di attivare Controlplane v2.
Esempio:
enableControlplaneV2: true
vCenter
Questa sezione contiene informazioni sull'ambiente vSphere e sulla connessione a vCenter Server.
Se vuoi che un campo in questa sezione corrisponda a quello specificato per il tuo cluster di amministrazione, rimuovilo o lascialo commentato.
Se vuoi che un campo sia diverso da quello specificato per il tuo cluster amministrativo, compilalo qui. Tutti i campi che compili qui nella sezione vCenter
sovrascrivono i campi corrispondenti nel file di configurazione del cluster amministrativo.
vCenter.address
Stringa
non modificabile
Valore predefinito: eredita dal cluster di amministrazione
L'indirizzo IP o il nome host dell'istanza di vCenter Server che vuoi utilizzare per questo cluster utente.
Per ulteriori informazioni, consulta Trovare l'indirizzo del server vCenter.
Se specifichi un valore diverso dall'istanza di vCenter Server impiegata dal cluster di amministrazione, Controlplane V2
deve essere attivato e devi fornire valori per network.vCenter.networkName
e per tutti i campi obbligatori nella sezione vCenter
.
Esempi:
vCenter: address: "203.0.113.101"
vCenter: address: "my-vcenter-server-2.my-domain.example"
vCenter.datacenter
Stringa
non modificabile
Valore predefinito: eredita dal cluster di amministrazione
Il percorso relativo di un data center vSphere.
Se specifichi un valore per questo campo, devi specificare anche:
vCenter.networkName
vCenter.datastore
ovCenter.storagePolicyName
vCenter.cluster
ovCenter.resourcePool
Il valore specificato è relativo alla cartella principale denominata /
.
Se il data center si trova nella cartella principale, il valore è il nome del data center.
Esempio:
vCenter: datacenter: "my-uc-data-center"
In caso contrario, il valore è un percorso relativo che include una o più cartelle insieme al nome del data center.
Esempio:
vCenter: datacenter: "data-centers/data-center-2"
vCenter.cluster
Stringa
non modificabile
Valore predefinito: eredita dal cluster di amministrazione
Il percorso relativo di un cluster vSphere che rappresenta gli host ESXi su cui verranno eseguite le VM del cluster utente. Questo cluster vSphere rappresenta un sottoinsieme degli host ESXi fisici nel tuo data center vCenter.
Se specifichi un valore per questo campo, devi specificare anche:
vCenter.networkName
vCenter.datacenter
vCenter.datastore
ovCenter.storagePolicyName
Il valore specificato è relativo a /.../DATA_CENTER/vm/
.
Se il cluster vSphere si trova nella cartella /.../DATA_CENTER/vm/
, il valore è il nome del cluster vSphere
Esempio:
vCenter: cluster: "my-uc-vsphere-cluster"
In caso contrario, il valore è un percorso relativo che include una o più cartelle insieme al nome del cluster vSphere.
Esempio:
vCenter: cluster: "clusters/vsphere-cluster-2"
vCenter.resourcePool
Stringa
non modificabile
Valore predefinito: eredita dal cluster di amministrazione
Un pool di risorse vCenter per le VM del cluster utente.
Se vuoi utilizzare il pool di risorse predefinito, impostalo su
VSPHERE_CLUSTER/Resources
.
Esempio:
vCenter: resourcePool: "my-uc-vsphere-cluster/Resources"
Il valore specificato è relativo a
/.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
Se il pool di risorse è un elemento diretto di
/.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/
il valore è il nome del pool di risorse.
Esempio:
vCenter: resourcePool: "my-uc-resource-pool"
In caso contrario, il valore è un percorso relativo con due o più pool di risorse.
Esempio:
vCenter: resourcePool: "uc-resource-pool-1/uc-resource-pool-2"
vCenter.datastore
Facoltativo
Stringa
non modificabile
Valore predefinito: eredita dal cluster di amministrazione
Il nome di un datastore vSphere per il cluster utente.
Il valore specificato deve essere un nome, non un percorso. Non includere cartelle nel valore.
Esempio:
vCenter: datastore: "my-datastore"
Se specifichi un valore per questo campo, non specificare un valore per
vCenter.storagePolicyName
. Il campo vCenter.datastore
è immutabile, tranne quando lo imposti su una stringa vuota durante la migrazione di un datastore a Storage Policy Based Management (SPBM).
vCenter.storagePolicyName
Stringa
invariabile
facultativa
Il nome di un criterio di archiviazione VM per i nodi del cluster.
Puoi anche specificare un criterio di archiviazione VM per i nodi di un determinato pool di nodi. Tuttavia, le norme specificate qui si applicano a qualsiasi pool di nodi che non abbia le proprie norme.
Per ulteriori informazioni, consulta Configurare un criterio di archiviazione.
Se specifichi un valore per questo campo, non specificare un valore per
vCenter.datastore
.
vCenter.caCertPath
Mutable
String
Valore predefinito: eredita dal cluster di amministrazione
Il percorso del certificato CA per il server vCenter. Per saperne di più, consulta Ottenere il certificato CA di vCenter.
Esempio:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"
Per informazioni su come aggiornare questo campo, consulta Aggiornare i riferimenti ai certificati vCenter.
vCenter.credentials.fileRef.path
Mutable
String
Valore predefinito: eredita dal cluster di amministrazione
Se specifichi un valore per preparedSecrets.namespace, non specificare un valore per questo campo. Fornisci invece un valore per vCenter.credentials.secretRef.version.
Il percorso di un file di configurazione delle credenziali che contiene il nome utente e la password del tuo account utente vCenter. L'account dell'utente deve avere il ruolo Amministratore o privilegi equivalenti. Consulta i requisiti di vSphere.
Puoi utilizzare gkectl update credentials
per aggiornare questo campo in un cluster esistente. Per ulteriori informazioni, consulta la sezione Rotazione delle chiavi degli account di servizio.
Per informazioni su come aggiornare le credenziali di vCenter, consulta Aggiornamento delle credenziali del cluster.
Esempio:
vCenter: credentials: fileRef: path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
Mutable
String
Valore predefinito: eredita dal cluster di amministrazione
Il nome del blocco delle credenziali nel file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account utente vCenter.
Esempio:
vCenter: credentials: fileRef: entry: "vcenter-credentials-2"
vCenter.credentials.secretRef.version
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"
Se fornisci un valore per preparedSecrets.namespace, compila questo campo. In caso contrario, rimuovi questo campo o lascialo commentato.
La versione di un secret preparato nel cluster di amministrazione che contiene il nome utente e la password per l'istanza di vCenter Server che intendi utilizzare per questo cluster utente.
Esempio:
vCenter: credentials: secretRef: version: "1"
vCenter.folder
Stringa
non modificabile
Valore predefinito: eredita dal cluster di amministrazione
Il percorso relativo di una cartella vSphere che hai già creato. Questa cartella conterrà le VM del cluster utente.
Se non specifichi un valore, le VM del cluster utente verranno inserite in
/.../DATA_CENTER/vm/
.
Se specifichi un valore, questo è relativo a /.../DATA_CENTER/vm/
.
Il valore può essere il nome di una cartella.
Esempio:
vCenter: folder: "my-uc-folder"
In alternativa, il valore può essere un percorso relativo che include più di una cartella.
Esempio:
vCenter: folder: "folders/folder-2"
componentAccessServiceAccountKeyPath
Mutable
String
Valore predefinito: eredita dal cluster di amministrazione
Il percorso del file della chiave JSON per l'account di servizio di accesso del componente.
Esempio:
componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"
componentAccessServiceAccountKey.secretRef.version
Mutevole
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"
La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per l'account del servizio di accesso al componente.
Esempio:
componentAccessServiceAccountKey: secretRef: version: "1"
privateRegistry
Compila questa sezione solo se il cluster di amministrazione utilizza un registry privato e vuoi che il cluster di utenti utilizzi un registry privato diverso. In caso contrario,rimuovi questa sezione o lasciala commentata.
Se vuoi impostazioni diverse da quelle del cluster amministrativo:
Nome utente, password e certificato diversi
(Disponibile solo per il Control Plane V2) Indirizzo del registry privato diverso
Compila i campi privateRegistry
qui. Le nuove impostazioni vengono rilevate durante la creazione e l'aggiornamento del cluster.
privateRegistry.address
Stringa
non modificabile
Valore predefinito: eredita dal cluster di amministrazione
L'indirizzo IP o il FQDN (nome di dominio completo) della macchina che esegue il tuo registry Docker privato.
Esempi:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
Mutable
String
Valore predefinito: eredita dal cluster di amministrazione
Se prevedi di utilizzare il segreto preparato per il registry privato, non fornire un valore per questo campo. Fornisci invece un valore per privateRegistry.credentials.secretRef.version.
Il percorso di un file di configurazione delle credenziali che contiene il nome utente e la password di un account che Google Distributed Cloud può utilizzare per accedere al tuo registry Docker privato.
Esempio:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
Mutable
String
Valore predefinito: eredita dal cluster di amministrazione
Il nome del blocco delle credenziali nel file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account del registry Docker privato.
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.credentials.secretRef.version
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"
Se fornisci un valore per preparedSecrets.namespace e vuoi utilizzare il segreto preparato per un registry privato, compila questo campo. In caso contrario, rimuovi questo campo o lascialo commentato.
La versione di un secret preparato nel cluster di amministrazione che contiene il nome utente e la password per l'istanza di vCenter Server che intendi utilizzare per questo cluster utente.
Esempio:
privateRegistry: credentials: secretRef: version: "1"
privateRegistry.caCertPath
Mutable
String
Valore predefinito: eredita dal cluster di amministrazione
Quando Docker estrae un'immagine dal tuo registro privato, il registro deve dimostrare la propria identità presentando un certificato. Il certificato del registry è firmato da un'autorità di certificazione (CA). Docker utilizza il certificato della CA per verificare il certificato del registry.
Imposta questo campo sul percorso del certificato della CA.
Esempio:
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
network
Questa sezione contiene informazioni sulla rete del cluster di utenti.
network.hostConfig
Questa sezione contiene informazioni su server NTP, server DNS e domini di ricerca DNS utilizzati dalle VM corrispondenti ai nodi del cluster. Se utilizzi il bilanciatore del carico Seesaw, queste informazioni si applicano anche alle VM Seesaw.
Questa sezione è obbligatoria se una o più delle seguenti condizioni sono vere:
network.ipMode.type
è impostato sustatic
- L'opzione
enableControlplaneV2
è impostata sutrue
o è consentito che sia impostata sutrue
per impostazione predefinita. loadBalancer.kind
è impostato su"Seesaw"
network.hostConfig.dnsServers
Obbligatorio
Impossibile modificare
Array di stringhe.
Il numero massimo di elementi nell'array è tre.
Gli indirizzi dei server DNS delle VM.
Esempio:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
Obbligatorio
Immutabile
Array di stringhe
Gli indirizzi dei server di ora da utilizzare per le VM.
Esempio:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
Array di stringhe immutabile
I domini di ricerca DNS utilizzabili dagli host. Questi domini vengono utilizzati come parte di un elenco di ricerca di domini.
Esempio:
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
Stringa
non modificabile
Precompilata: "static"
Valore predefinito: "dhcp"
Se vuoi che i nodi del cluster ricevano il proprio indirizzo IP da un server DHCP, imposta questo valore su "dhcp"
. Se vuoi che i nodi del cluster abbiano indirizzi IP statici scelti da un elenco che fornisci, imposta questa opzione su "static"
.
Esempio:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
Obbligatorio se network.ipMode.type
= static
Stringa
non mutabile
Il percorso del file di blocco IP per il cluster.
Esempio:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
Stringa
precompilata immutabile: "10.96.0.0/20"
>
Un intervallo di indirizzi IP, in formato CIDR, da utilizzare per i servizi nel cluster. Deve essere un intervallo di almeno /24.
Esempio:
network: serviceCIDR: "10.96.0.0/20"
network.podCIDR
Stringa
non modificabile
Precompilata: "192.168.0.0/16"
Valore predefinito: "192.168.0.0/16"
Un intervallo di indirizzi IP, in formato CIDR, da utilizzare per i pod nel cluster. Deve essere un intervallo di almeno /18.
Esempio:
network: podCIDR: "192.168.0.0/16"
L'intervallo di servizi non deve sovrapporsi all'intervallo di pod.
Gli intervalli di servizi e pod non devono sovrapporsi a nessun indirizzo esterno al cluster che vuoi raggiungere dall'interno del cluster.
Ad esempio, supponiamo che l'intervallo del servizio sia 10.96.232.0/24 e l'intervallo del pod sia 192.168.0.0/16. Qualsiasi traffico inviato da un pod a un indirizzo in uno di questi intervalli verrà considerato all'interno del cluster e non raggiungerà alcuna destinazione al di fuori del cluster.
In particolare, gli intervalli di servizi e pod non devono sovrapporsi a:
Indirizzi IP dei nodi in qualsiasi cluster
Indirizzi IP utilizzati dalle macchine del bilanciatore del carico
VIP utilizzati dai nodi del control plane e dai bilanciatori del carico
Indirizzo IP dei server vCenter, DNS e NTP
Ti consigliamo di inserire gli intervalli di servizi e pod nello spazio di indirizzi RFC 1918.
Ecco un motivo per cui consigliamo di utilizzare gli indirizzi RFC 1918. Supponiamo che l'intervallo del pod o del servizio contenga indirizzi IP esterni. Qualsiasi traffico inviato da un pod a uno di questi indirizzi esterni verrà trattato come traffico all'interno del cluster e non raggiungerà la destinazione esterna.
network.vCenter.networkName
Obbligatorio se
vCenter.address
è diverso dall'indirizzo vCenter che utilizzi per il cluster di amministrazione.
Stringa
invariabile
Il nome della rete vSphere per i nodi del cluster utente.
Esempio:
network: vCenter: networkName: "my-network"
Se il nome contiene un carattere speciale, devi utilizzare una sequenza di escape.
Caratteri speciali | Sequenza di escape |
---|---|
Barra (/ ) |
%2f |
Barra rovesciata (\ ) |
%5c |
Simbolo della percentuale (% ) |
%25 |
Se il nome della rete non è univoco nel tuo data center, puoi specificare un percorso completo.
Esempio:
network: vCenter: networkName: "/my-uc-datacenter/network/my-network"
network.additionalNodeInterfaces
Se imposti multipleNetworkInterfaces
su true
, compila questa sezione.
In caso contrario, rimuovi questa sezione o lasciala commentata.
Immutabile
Un array di oggetti, ognuno dei quali descrive un'interfaccia di rete che può essere utilizzata su tutti o alcuni dei nodi del cluster.
network.additionalNodeInterfaces[i].networkName
Obbligatorio se multipleNetworkInterfaces
= true
Stringa
non mutabile
Il nome della rete vSphere a cui si collegherà questa interfaccia del nodo aggiuntivo.
Esempio:
network: additionalNodeInterfaces: - networkName: "my-node-interface-1"
network.additionalNodeInterfaces[i].type
Obbligatorio se multipleNetworkInterfaces
= true
Stringa
non mutabile
Esempio:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static"
network.additionalNodeInterfaces[i].ipBlockFilePath
Obbligatorio se network.additionalNodeInterfaces[i].type
= static
Stringa
non mutabile
Il percorso di un file di blocco IP contenente gli indirizzi IP da utilizzare per questa interfaccia di rete sui nodi che dispongono di questa interfaccia di rete.
Esempio:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static" ipBlockFilePath: "my-ipblock-file-1"
network.controlPlaneIPBlock
Se imposti enableControlplaneV2
su true
, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
network.controlPlaneIPBlock.netmask
Obbligatorio se enableControlplaneV2
= true
Stringa
non mutabile
Esempio:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
Obbligatorio se enableControlplaneV2
= true
Stringa
non mutabile
Esempio:
network: controlPlaneIPBlock: gateway: "172.16.21.1"
network.controlPlaneIPBlock.ips
Obbligatorio se enableControlplaneV2
= true
Impossibile modificare
Array di oggetti, ciascuno con un indirizzo IP e un nome host facoltativo.
Per un cluster utente ad alta disponibilità (HA), l'array contiene tre elementi. Per un cluster utente non HA, l'array ha un elemento.
Esempio:
network: controlPlaneIPBlock: ips: - ip: "172.16.21.6" hostname: "cp-vm-1" - ip: "172.16.21.7" hostname: "cp-vm-2" - ip: "172.16.21.8" hostname: "cp-vm-3"
loadBalancer
Questa sezione contiene informazioni sul bilanciatore del carico per il cluster utente.
loadBalancer.vips.controlPlaneVIP
Stringa
obbligatoria
non modificabile
L'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il server API Kubernetes del cluster utente.
Esempio:
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.vips.ingressVIP
Stringa
obbligatoria
non modificabile
L'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il proxy in entrata.
Esempio:
loadBalancer: vips: ingressVIP: "203.0.113.4"
loadBalancer.kind
Obbligatoria
Stringa
non mutabile
Precompilata: "MetalLB"
Imposta questo valore su "ManualLB"
, "F5BigIP"
, "Seesaw"
o "MetalLB"
.
Per attivare funzionalità nuove e avanzate, ti consigliamo di utilizzare "ManualLB"
se hai un bilanciatore del carico di terze parti (ad esempio F5 BIG-IP o Citrix) o "MetalLB"
per la nostra soluzione in bundle.
Esempio:
loadBalancer: kind: "MetalLB"
loadBalancer.manualLB
Se imposti loadbalancer.kind
su "manualLB"
, compila questa sezione. In caso contrario,rimuovi questa sezione o lasciala commentata.
loadBalancer.manualLB.ingressHTTPNodePort
Obbligatorio se loadBalancer.kind
= ManualLB
Immutabile
Intero
Precompilato: 30243
Il proxy in entrata in un cluster utente è esposto da un
servizio Kubernetes di tipo LoadBalancer
.
Il servizio ha un'attributo ServicePort per HTTP. Devi scegliere un valore nodePort
per il ServicePort HTTP.
Imposta questo campo sul valore nodePort
.
Esempio:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
Obbligatorio se loadBalancer.kind
= ManualLB
Immutabile
Intero
Precompilato: 30879
Il proxy di ingresso in un cluster utente è esposto da un servizio di tipo LoadBalancer. Il servizio ha un ServicePort per HTTPS. Devi scegliere un valore nodePort
per il ServicePort HTTPS.
Imposta questo campo sul valore nodePort
.
Esempio:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
Obbligatorio se loadBalancer.kind
= ManualLB
e
enableControlplaneV2
= false
Impossibile
modificare
Valore
precompilato: 30562
Il server API Kubernetes di un cluster utente viene eseguito nel cluster di amministrazione e viene esposto da un servizio di tipo LoadBalancer
. Devi scegliere un valore nodePort
per il servizio.
Imposta questo campo sul valore nodePort
.
Esempio:
loadBalancer: manualLB: controlPlaneNodePort: 30968
loadBalancer.manualLB.konnectivityServerNodePort
Obbligatorio se loadBalancer.kind
= ManualLB
e
enableControlplaneV2
= false
Impossibile
modificare
Numero
Precompilato: 30563
Il server API Kubernetes di un cluster utente che utilizza kubeception viene eseguito nel
cluster di amministrazione ed è esposto da un servizio di tipo LoadBalancer
. Il
server Konnectivity riutilizza questo servizio con un valore nodePort
diverso. Devi scegliere un valore nodePort
per il server Konnectivity.
Imposta questo campo sul valore nodePort
per il server Konnectivity.
Esempio:
loadBalancer: manualLB: konnectivityServerNodePort: 30969
loadBalancer.f5BigIP
Se imposti loadbalancer.kind
su "f5BigIP"
, compila questa sezione. In caso contrario,rimuovi questa sezione o lasciala commentata.
Per attivare funzionalità nuove e avanzate, ti consigliamo di configurare il bilanciamento del carico manuale per il bilanciatore del carico F5 BIG-IP. Per attivare il bilanciamento del carico manuale, imposta loadbalancer.kind
su "ManualLB"
e compila la sezione loadBalancer.manualLB
. Per ulteriori informazioni, consulta Attivare la modalità di bilanciamento del carico manuale.
loadBalancer.f5BigIP.address
Obbligatorio se loadBalancer.kind
= "f5BigIP"
Stringa
L'indirizzo del bilanciatore del carico F5 BIG-IP.
Esempio:
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.credentials.fileRef.path
Obbligatorio se loadBalancer.kind
= "f5BigIP"
Stringa
Il percorso di un file delle credenziali che contiene il nome utente e la password di un account che Google Distributed Cloud può utilizzare per connettersi al bilanciatore del carico F5 BIG-IP.
L'account utente deve avere un ruolo utente con autorizzazioni sufficienti per configurare e gestire il bilanciatore del carico. È sufficiente il ruolo Amministratore o Amministratore delle risorse.
Per informazioni su come aggiornare le credenziali F5 BIG-IP, consulta Aggiornamento delle credenziali di un cluster.
Esempio:
loadBalancer: f5BigIP: credentials: fileRef: path: ""my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.credentials.fileRef.entry
Obbligatorio se loadBalancer.kind
= "f5BigIP"
Stringa
Il nome del blocco delle credenziali nel file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account F5 BIG-IP.
Esempio:
loadBalancer: f5BigIP: credentials: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
Obbligatorio se loadBalancer.kind
= "f5BigIP"
Stringa
Il nome di una partizione BIG-IP che hai creato per il cluster utente.
Esempio:
loadBalancer: f5BigIP: partition: "my-f5-user-partition"
loadBalancer.f5BigIP.snatPoolName
Obbligatorio se loadBalancer.kind
= "f5BigIP"
e utilizzi SNAT
Stringa
Il nome del pool SNAT.
Esempio:
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
Se imposti loadbalancer.kind
su "Seesaw"
, compila questa sezione. In caso contrario,rimuovi questa sezione o lasciala commentata.
Tieni presente le seguenti limitazioni del bilanciatore del carico SeeSaw:
- Se un cluster di amministrazione ad alta disponibilità gestisce questo cluster utente, quest'ultimo non può utilizzare il bilanciatore di carica Seesaw.
- I cluster di utenti con Controlplane V2 abilitato non possono utilizzare il bilanciatore del carico Seesaw.
Per utilizzare queste funzionalità, ti consigliamo di configurare il bilanciatore del carico MetalLB. Per attivare il bilanciatore del carico MetalLB, imposta loadbalancer.kind
su"MetalLB"
e compila la sezione
loadBalancer.metalLB
. Per ulteriori informazioni, consulta Bilanciamento del carico in bundle con MetalLB.
Se al momento utilizzi il bilanciatore del carico SeeSaw, ti consigliamo di eseguire la migrazione a MetalLB.
loadBalancer.seesaw.ipBlockFilePath
Obbligatorio se loadBalancer.kind
= Seesaw
Stringa
non mutabile
Il percorso del file di blocco IP per le VM Seesaw.
Esempio:
loadBalancer: seesaw: ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
Obbligatorio se loadBalancer.kind
= Seesaw
Impossibile da modificare
Numero intero
Valori possibili: 1-255
Precompilato: 0
Il Virtual Router Identifier della tua VM Seesaw. Questo identificatore, che è un numero intero a tua scelta, deve essere univoco in una VLAN.
Esempio:
loadBalancer: seesaw: vrid: 125
loadBalancer.seesaw.masterIP
Obbligatorio se loadBalancer.kind
= Seesaw
Stringa
non mutabile
L'indirizzo IP virtuale configurato sulla VM Seesaw master.
Esempio:
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
Obbligatorio se loadBalancer.kind
= Seesaw
Mutabile
Numero
Precompilato: 4
Il numero di CPU per ogni VM Seesaw.
Esempio:
loadBalancer: seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
Obbligatorio se loadBalancer.kind
= Seesaw
Mutevole
Numero
Precompilato: 3072
Il numero di mebibyte di memoria per ogni VM Seesaw.
Esempio:
loadBalancer: seesaw: memoryMB: 8192
Nota: questo campo specifica il numero di mebibyte di memoria, non il numero di megabyte. Un mebibyte corrisponde a 2^20 = 1.048.576 byte. Un megabyte equivale a 10^6 = 1.000.000 byte.
loadBalancer.seesaw.vCenter.networkName
Stringa
non modificabile
Valore predefinito: uguale a quello dei nodi del cluster
Il nome della rete vCenter che contiene le VM di Seesaw.
Esempio:
loadBalancer: seesaw: vCenter: networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
Immutabile
Rilevante se loadBalancer.kind
= Seesaw
Booleano
Precompilato: false
Valore predefinito: false
Se vuoi creare un bilanciatore del carico Seesaw ad alta disponibilità (HA), imposta questo valore su true
. In caso contrario, impostalo su false
. Un bilanciatore del carico Seesaw ad alta disponibilità utilizza una coppia(principale, di riserva) di VM.
Esempio:
loadBalancer: seesaw: enableHA: true
loadBalancer.seesaw.disableVRRPMAC
Immutabile
Rilevante se loadBalancer.kind
= Seesaw
Booleano
Precompilato: true
Valore predefinito: true
Se imposti questo valore su true
, il bilanciatore del carico Seesaw non utilizza
l'apprendimento MAC
per il failover. Utilizza invece il protocollo ARP gratuito.
Se imposti questo valore su false
, il bilanciatore del carico Seesaw utilizza l'apprendimento MAC. Ti consigliamo di impostare questo valore su true
. Se utilizzi vSphere 7 o versioni successive e hai un bilanciatore del carico Seesaw ad alta disponibilità, devi impostare questo valore su true
.
Esempio:
loadBalancer: seesaw: disableVRRPMAC: true
loadBalancer.metalLB
Se imposti loadbalancer.kind
su "MetalLB"
, compila questa sezione. In caso contrario,rimuovi questa sezione o lasciala commentata.
Per ulteriori informazioni, consulta la sezione Bilanciamento del carico in bundle con MetalLB.
loadBalancer.metalLB.addressPools
Obbligatorio se loadBalancer.kind
= "MetalLB"
Modificabile
Array di oggetti, ognuno dei quali contiene informazioni su un pool di indirizzi da utilizzare dal bilanciatore del carico MetalLB.
loadBalancer.metalLB.addressPools[i].name
Obbligatorio se loadBalancer.kind
= MetalLB
Stringa
mutabile
Un nome scelto da te per il pool di indirizzi.
Esempio:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
Obbligatorio se loadBalancer.kind
= MetalLB
Mutable
Array di stringhe, ognuna delle quali è un intervallo di indirizzi. Ogni intervallo deve essere in formato CIDR o con trattini.
Esempio:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" addresses: - "192.0.2.0/26" - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs
Rilevante se loadBalancer.kind
= MetalLB
Mutabile
Booleano
Precompilato: false
Valore predefinito: false
Se imposti questo valore su true
, il controller MetalLB non assegnerà indirizzi IP ai servizi che terminano con .0 o .255. In questo modo si evita il problema dei dispositivi consumer con bug che eliminano erroneamente il traffico inviato a questi indirizzi IP speciali.
Esempio:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" - "192.0.2.0/26" - "192.0.2.64-192.0.2.72" avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign
Rilevante se loadBalancer.kind
= MetalLB
Mutabile
Booleano
Precompilato: false
Valore predefinito: false
Se non vuoi che il controller MetalLB assegni automaticamente gli indirizzi IP da questo pool ai servizi, imposta questo valore su true
. Uno sviluppatore può quindi creare un servizio di tipo LoadBalancer
e specificare manualmente uno degli indirizzi del pool.
In caso contrario, impostalo su false
.
Esempio:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" manualAssign: true
enableDataplaneV2
1.30 e successive
Immutabile
Booleano
Precompilato: true
Valore predefinito: true
Nella versione 1.30 e successive,
Dataplane V2 è obbligatorio
per i nuovi cluster utente e deve essere impostato su true
. Dataplane V2 è necessario per utilizzare Controlplane V2.
I vantaggi di Dataplane V2 includono:
Dataplane V2 offre un'interfaccia CNI (Container Network Interface) più avanzata e capace rispetto all'opzione CNI precedente, Calico. Calico è in modalità di manutenzione, il che significa che riceve solo correzioni di bug e aggiornamenti della sicurezza critici, ma non lo sviluppo di nuove funzionalità. Al contrario, Dataplane V2 viene sviluppato e migliorato attivamente, per garantirti l'accesso alle ultime innovazioni e funzionalità di rete.
Dataplane V2 è il CNI preferito per GKE e altri prodotti Google Distributed Cloud.
1.29 e versioni precedenti
Invariabile
Booleano
Precompilato: true
Valore predefinito: false
Se vuoi attivare Dataplane V2 o se vuoi utilizzare Control plane V2, imposta questo valore su true
. In caso contrario, impostalo su false
.
Ti consigliamo di attivare Dataplane V2.
Esempio:
enableDataplaneV2: true
Per la procedura di risoluzione dei problemi, consulta Risolvere i problemi di NFS e DataPlane v2 di Google Distributed Cloud.
dataplaneV2.forwardMode
Stringa
non modificabile
Valori possibili: "snat", "dsr"
Precompilato: "snat"
Valore predefinito: "snat"
La modalità di inoltro per un cluster in cui è abilitato Dataplane V2.
Con la modalità di Network Address Translation dell'origine (SNAT), un pacchetto viene sottoposto a SNAT quando viene inoltrato da un nodo del bilanciatore del carico a un pod di backend. Il pod non può vedere l'indirizzo IP di origine originale e il pacchetto di ritorno deve passare attraverso il nodo del bilanciatore del carico.
Con la modalità DSR (Direct Server Return), un pacchetto mantiene il suo indirizzo IP di origine originale quando viene inoltrato da un nodo del bilanciatore del carico a un pod di backend. Il pod può vedere l'indirizzo IP di origine originale e il pacchetto di ritorno va direttamente al client senza passare attraverso il nodo del bilanciatore del carico.
Esempio:
dataplaneV2: forwardMode: "dsr"
Nota:l'aggiornamento di questo campo potrebbe comportare un problema noto, a seconda delle versioni del cluster. Applica la soluzione alternativa indicata se la tua versione del cluster è interessata.
multipleNetworkInterfaces
Immutabile
Booleano
Precompilato: false
Valore predefinito: false
Se vuoi abilitare più interfacce di rete per i pod, imposta questo valore su true
. In caso contrario, impostalo su false
.
Per ulteriori informazioni, consulta la pagina Configurare più interfacce di rete per i pod.
Esempio:
multipleNetworkInterfaces: true
advancedNetworking
Booleano
non modificabile
Precompilato: false
Valore predefinito: false
Se prevedi di creare un
gateway NAT in uscita, impostalo su
true
. In caso contrario, impostalo su false
.
Se imposti questo campo su true
, devi impostare anche enableDataplaneV2
su
true
.
Esempio:
advancedNetworking: true
disableBundledIngress
Imposta questo valore su true
se vuoi
disattivare l'ingresso in bundle
per il cluster. In caso contrario, impostalo su false
.
Booleano
Mutabile
Precompilato: false
Valore predefinito: false
Esempio:
disableBundledIngress: true
storage.vSphereCSIDisabled
Se vuoi disattivare il deployment dei componenti vSphere CSI, imposta questo valore su
true
. In caso contrario, impostalo su false
.
Mutevole
Booleano
Precompilato: false
Valore predefinito: false
Esempio:
storage: vSphereCSIDisabled: false
masterNode
Questa sezione contiene informazioni sui nodi che fungono da nodi del piano di controllo per questo cluster utente.
masterNode.cpus
Numerico
mutabile
Precompilato: 4
Valore predefinito: 4
Il numero di CPU per ogni nodo che funge da control plane per questo cluster utente.
Esempio:
masterNode: cpus: 8
masterNode.memoryMB
Numerico
mutabile
Precompilato: 8192
Valore predefinito: 8192
La quantità di mebibyte di memoria per ogni nodo che funge da control plane per questo cluster utente. Deve essere un multiplo di 4.
Esempio:
masterNode: memoryMB: 8192
Nota:questo campo specifica il numero di mebibyte di memoria, non il numero di megabyte. Un mebibyte corrisponde a 2^20 = 1.048.576 byte. Un megabyte corrisponde a 10^6 = 1.000.000 byte.
masterNode.replicas
Immutabile
Numero intero
Valori possibili: 1 o 3
Precompilato: 1
Valore predefinito: 1
Il numero di nodi del piano di controllo per questo cluster utente. Questo numero non può essere modificato dopo aver creato il cluster. Se vuoi aggiornare il numero di repliche in un secondo momento, devi ricreare il cluster utente.
Esempio:
masterNode: replicas: 3
masterNode.autoResize.enabled
Mutevole
Booleano
Precompilato: false
Valore predefinito: false
Imposta questo valore su true
per abilitare il ridimensionamento automatico dei nodi del piano di controllo per il cluster utente. In caso contrario, impostalo su false
.
Per ulteriori informazioni, consulta Abilitare il ridimensionamento dei nodi per i nodi del piano di controllo di un cluster utente.
Esempio:
masterNode: autoResize: enabled: true
masterNode.vsphere.datastore
(Facoltativo)
Stringa
invariabile
Valore predefinito: il valore di vCenter.datastore
Il datastore in cui verranno creati i nodi del piano di controllo per questo cluster utente.
Il valore specificato deve essere un nome, non un percorso. Non includere cartelle nel valore.
Esempio:
masterNode: vSphere: datastore: "control-plane-datastore"
Se specifichi un valore per questo campo, non specificare un valore per
masterNode.vsphere.storagePolicyName
. Il campo masterNode.vsphere.datastore
è immutabile, tranne quando lo imposti su una stringa vuota durante la migrazione di un data store a Storage Policy Based Management (SPBM).
masterNode.vsphere.storagePolicyName
Facoltativo
Stringa
invariabile
Valore predefinito: il valore di vCenter.storagePolicyName
Il nome di un criterio di archiviazione VM per i nodi del piano di controllo.
Per ulteriori informazioni, consulta Configurare un criterio di archiviazione.
Esempio:
masterNode: vSphere: storagePolicyName: "control-plane-storage-policy"
Se specifichi un valore per questo campo, non specificare un valore per
masterNode.vsphere.datastore
.
nodePools
Obbligatorio
Modificabile
Array di oggetti, ognuno dei quali descrive un pool di nodi.
Per scoprire di più, consulta la pagina Creare e gestire i pool di nodi.
nodePools[i].name
Stringa
obbligatoria
non modificabile
Un nome scelto da te per il node pool. Il nome deve:
- Deve contenere al massimo 40 caratteri.
- Deve contenere solo caratteri alfanumerici minuscoli o un trattino (
-
). - Deve iniziare con un carattere alfabetico
- Deve terminare con un carattere alfanumerico
Esempio:
nodePools: - name: "my-node-pool-1"
nodePools[i].gkeOnPremVersion
Quando esegui l'upgrade di un cluster utente, puoi specificare che i pool di nodi selezionati rimangano nella versione precedente.
Se vuoi che questo pool di nodi rimanga nella versione precedente, impostalo sulla versione precedente. In caso contrario, rimuovi questo campo o impostalo sulla stringa vuota. Per ulteriori informazioni, consulta Eseguire l'upgrade di un cluster di utenti.
Stringa
modificabile
Valore predefinito: il cluster gkeOnPremVersion
Esempio:
nodePools: - name: "my-node-pool" gkeOnPremVersion: "1.13.0-gke.16"
nodePools[i].cpus
Obbligatorio
Numero
intero
modificabile
Precompilato: 4
Il numero di vCPU per ogni nodo nel pool.
Esempio:
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
Obbligatorio
Numerico
mutabile
Precompilato: 8192
La quantità di mebibyte di memoria per ogni nodo nel pool. Deve essere un multiplo di 4.
Esempio:
nodePools" - name: "my-node-pool" memoryMB: 8192
Nota: questo campo specifica il numero di mebibyte di memoria, non il numero di megabyte. Un mebibyte corrisponde a 2^20 = 1.048.576 byte. Un megabyte corrisponde a 10^6 = 1.000.000 byte.
nodePools[i].replicas
Obbligatorio
Mutabile
Intero
Precompilato: 3
Valori possibili: il numero totale di nodi non compromessi in tutti i node pool del
cluster deve essere almeno 3.
Il numero di nodi nel pool.
Esempio:
nodePools: - name: "my-node-pool" replicas: 5
nodePools[i].bootDiskSizeGB
Mutevole
Numero intero
Precompilato: 40
Valore predefinito: 40
La dimensione del disco di avvio in gibibyte per ogni nodo nel pool.
Esempio:
nodePools - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].osImageType
Stringa
Valori possibili: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2", "windows"
Precompilato: "ubuntu_cgv2"
Valore predefinito: "ubuntu_containerd"
Il tipo di immagine del sistema operativo da eseguire sulle VM nel pool di nodi.
Esempio:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
nodePools[i].osImage
Obbligatorio se nodePools[i].osImageType
= windows
Stringa
mutevole
Il nome di un modello di VM Windows. Il modello deve essere basato su un'immagine ISO di Windows Server 2019 con il tag regione/lingua en-US.
Per ulteriori informazioni, consulta la Guida dell'utente per i pool di nodi del sistema operativo Windows Server.
nodePools[i].labels
Mappatura
modificabile
Etichette da applicare a ogni oggetto Node Kubernetes nel pool.
Esempio:
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
Per motivi di sicurezza, kubelet non può applicare etichette a se stesso in determinati spazi dei nomi.
Gli spazi dei nomi delle etichette dei nodi riservati sono : kubernetes.io
, k8s.io
, googleapis.com
.
nodePools[i].taints
Mutabile
Array di oggetti, ognuno dei quali descrive un
contaminante Kubernetes applicato a ogni
nodo del pool. Le contaminazioni sono coppie chiave-valore associate a un effect
. Le incompatibilità vengono utilizzate con le tolleranze per la pianificazione dei pod. Specifica uno dei seguenti valori per effect
: NoSchedule
, PreferNoSchedule
, NoExecute
.
Esempio:
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].vsphere.datastore
Stringa
modificabile
Valore predefinito: il valore di vCenter.datastore
Il nome del datastore vCenter in cui verranno creati i nodi.
Esempio:
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
Se specifichi un valore per questo campo, non specificare un valore per
nodePools[i].vsphere.storagePolicyName
.
nodePools[i].vsphere.storagePolicyName
Stringa
modificabile
Valore predefinito: il valore di vCenter.storagePolicyName
Il nome di un criterio di archiviazione VM per i nodi del pool.
Per ulteriori informazioni, consulta Configurare un criterio di archiviazione.
Esempio:
nodePools: - name: "my-node-pool" vsphere: storagePolicyName: "my-storage-policy"
Se specifichi un valore per questo campo, non specificare un valore per
nodePools[i].vsphere.datastore
.
nodePools[i].vsphere.hostgroups
Compila questa sezione se vuoi configurare il cluster in modo che utilizzi l'affinità VM-host.
Array di stringhe
immutabile, ognuna delle quali è il nome di un
gruppo DRS host.
L'array può avere un solo elemento.
Esempio:
nodePools: - name: "my-node-pool" vsphere: hostgroups: - "my-hostgroup"
nodePools[i].vsphere.tags
Mutevole
Array di oggetti, ognuno dei quali descrive un
tag vSphere
da posizionare sulle VM nel pool di nodi.
Ogni tag ha una categoria e un nome.
Esempio:
nodePools: - name: "my-node-pool" vsphere: tags: - category: "purpose" name: "testing"
Se vuoi associare tag a tutte le VM in un pool di nodi, il tuo account utente vCenter deve disporre di questi privilegi di tagging vSphere:
- Tagging vSphere.Assegna o annulla l'assegnazione del tag vSphere
- Tagging vSphere.Assegna o annulla l'assegnazione del tag vSphere all'oggetto (vSphere 7)
nodePools[i].autoscaling
Modificabile
Se vuoi abilitare la scalabilità automatica per il pool di nodi, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
nodePools[i].autoscaling.minReplicas
Mutabile
Numero intero
Valori possibili: maggiore o uguale a 1
Precompilato: 0
Il numero minimo di nodi che il gestore della scalabilità automatica può impostare per il pool.
Esempio:
nodePools: - name: "my-node-pool" autoscaling: minReplicas: 5
nodePools[i].autoscaling.maxReplicas
Mutevole
Numero intero
Precompilato: 0
Il numero massimo di nodi che lo scalatore può impostare per il pool.
Esempio:
nodePools: - name: "my-node-pool" autoscaling: maxReplicas: 10
nodePools[i].enableLoadBalancer
Rilevante se loadBalancer.kind
= "MetalLB"
Mutabile
Booleano
Precompilato: true
Valore predefinito: false
Imposta questo valore su true
se vuoi consentire all'oratore MetalLB di funzionare sui nodi
nel pool. In caso contrario, impostalo su false
.
Per ulteriori informazioni, consulta la sezione Bilanciamento del carico in bundle con MetalLB.
Esempio:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
nodePools[i].updateStrategy.rollingUpdate.maxSurge
Anteprima
Numero
mutabile
Valore predefinito: 1
Il numero massimo di macchine nel pool di nodi che possono essere aggiornate contemporaneamente durante un aggiornamento o un upgrade.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
antiAffinityGroups.enabled
Mutevole
Booleano
Precompilato: true
Valore predefinito: true
Se questo campo è true
, Google Distributed Cloud crea regole anti-affinità Distributed Resource Scheduler (DRS) di VMware per i nodi del cluster utente, in modo che vengano distribuiti su almeno tre host ESXi fisici nel data center.
Questa funzionalità richiede che l'ambiente vSphere soddisfi le seguenti condizioni:
VMware DRS è abilitato. VMware DRS richiede la versione della licenza vSphere Enterprise Plus.
Il tuo account utente vSphere dispone del privilegio
Host.Inventory.Modify cluster
.Sono disponibili almeno quattro host ESXi.
Anche se la regola richiede che i nodi del cluster siano distribuiti su tre host ESXi, ti consigliamo vivamente di avere almeno quattro host ESXi disponibile.
Ricorda che se hai una licenza vSphere Standard, non puoi attivare VMware DRS.
Se non hai attivato DRS o se non disponi di almeno quattro host su cui pianificare le VM vSphere, imposta antiAffinityGroups.enabled
su false
.
Esempio:
antiAffinityGroups: enabled: false
enableVMTracking
Anteprima
Impossibile modificare
Precompilato: false
Imposta questo valore su true
per attivare il monitoraggio delle VM con i tag vSphere. In caso contrario, impostalo su false
.
Per ulteriori informazioni, consulta Attivare il monitoraggio delle VM.
Esempio:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
Mutabile
Numero intero
Valori possibili: 0 o 1
Precompilato: 0
Valore predefinito: DA FARE: RECENSORI: QUESTO HA UN VALORE PREDEFINITO?
Il numero di pool di nodi da aggiornare contemporaneamente. Un valore 1
specifica che è possibile aggiornare un solo pool di nodi alla volta. Un valore 0
specifica che è possibile aggiornare un numero illimitato di node pool alla volta.
Esempio:
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge
Anteprima
Numero
mutabile
Valore predefinito: 1
Il numero massimo di macchine in un pool di nodi che possono essere aggiornate contemporaneamente durante un aggiornamento o un upgrade. Si applica a qualsiasi pool di nodi che non specifica la propria strategia di aggiornamento.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
authentication
Questa sezione contiene informazioni su come vengono autenticati e autorizzati gli utenti del cluster.
authentication.oidc
Non utilizzare questa sezione. Dopo la creazione del cluster, modifica la risorsa personalizzata ClientConfig come descritto in Configurazione dei cluster per Anthos Identity Service con OIDC .
authentication.sni
Se vuoi fornire un certificato di pubblicazione aggiuntivo per il server API Kubernetes del cluster, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
authentication.sni.certPath
Stringa
Il percorso di un certificato di servizio per il server API Kubernetes.
Esempio:
authentication: sni: certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
Stringa facoltativa
Il percorso del file della chiave privata del certificato.
Esempio:
authentication: sni: keyPath: "my-cert-folder/example.com.key"
gkeConnect
Obbligatorio
Immutabile
Questa sezione contiene informazioni sul progetto e sull'account di servizio Google Cloud che vuoi utilizzare per registrare il tuo cluster in un parco risorse Google Cloud.
gkeConnect.projectID
Stringa
obbligatoria
non modificabile
L'ID del
progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve essere uguale a quello impostato in stackdriver.projectID
e cloudAuditLogging.projectID
. Se gli ID progetto
non sono uguali, la creazione del cluster non va a buon fine. Questo requisito non si applica ai cluster esistenti.
Esempio:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
Stringa
non modificabile
Valore predefinito: globale
L'appartenenza al parco risorse di ogni cluster è gestita dal servizio Fleet
(gkehub.googleapis.com
) e dal servizio Connect
(gkeconnect.googleapis.com
). La posizione dei servizi può essere globale
o regionale. In 1.28 e versioni successive, puoi specificare facoltativamente la regione Google Cloud in cui vengono eseguiti i servizi Fleet e Connect. Se non specificato, vengono utilizzate le istanze globali dei servizi. Tieni presente quanto segue:
I cluster utente creati prima della versione 1.28 sono gestiti dai servizi globali Fleet e Connect.
I nuovi cluster creati utilizzando i client dell'API GKE On-Prem (console Google Cloud, Google Cloud CLI o Terraform) utilizzano la stessa regione specificata per l'API GKE On-Prem.
Per i nuovi cluster, se includi questo campo, la regione specificata deve essere uguale a quella configurata in
cloudAuditLogging.clusterLocation
,stackdriver.clusterLocation
egkeOnPremAPI.location
. Se le regioni non sono uguali, la creazione del cluster non va a buon fine.
Esempio:
gkeConnect: location: "us-central1"
gkeConnect.registerServiceAccountKeyPath
Stringa
mutabile obbligatoria
Il percorso del file della chiave JSON per il tuo account di servizio connect-register.
Per aggiornare il valore di questo campo, utilizza gkectl update cluster
.
Per informazioni su come modificare la chiave dell'account di servizio connect-register, consulta la sezione Ruotare le chiavi degli account di servizio.
Esempio:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.registerServiceAccountKey.secretRef.version
Mutevole
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"
La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per il tuo account di servizio connect-register.
Esempio:
gkeConnect: registerServiceAccountKey: secretRef: version: "1"
gkeOnPremAPI
In 1.16 e versioni successive, se l'API GKE On-Prem è abilitata nel progetto Google Cloud, tutti i cluster del progetto vengono registrati nell'API GKE On-Prem automaticamente nella regione configurata in stackdriver.clusterLocation
.
Se vuoi registrare tutti i cluster del progetto nell'API GKE On-Prem, assicurati di seguire 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
sufalse
. Se non vuoi registrare cluster nel progetto, disattivagkeonprem.googleapis.com
(il nome del servizio per l'API GKE On-Prem) nel progetto. Per le istruzioni, vedi Disattivare i servizi.
La registrazione del cluster utente nell'API GKE On-Prem ti consente di utilizzare gli strumenti standard, ovvero la console Google Cloud, Google Cloud CLI e Terraform, per gestire il ciclo di vita del cluster. Inoltre, la registrazione del cluster ti consente di utilizzare la console o gcloud CLI per visualizzarne i dettagli. Ad esempio, puoi eseguire comandi gcloud
per
ottenere informazioni sul cluster di utenti.
Dopo aver aggiunto questa sezione e creato o aggiornato il cluster, se successivamenterimuovi la sezione e aggiorni il cluster, l'aggiornamento non andrà a buon fine.
gkeOnPremAPI.enabled
Booleano mutabile
Valore predefinito: true
Per impostazione predefinita, il cluster è registrato nell'API GKE On-Prem se l'API GKE On-Prem è abilitata nel progetto. Imposta false
se non vuoi registrare il cluster.
Dopo aver registrato il cluster nell'API GKE On-Prem, se devi annullarne la registrazione, apporta la seguente modifica e poi aggiorna il cluster:
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
Valore predefinito: stackdriver.clusterLocation
Stringa immutabile
La regione Google Cloud in cui viene eseguita l'API GKE On-Prem e in cui vengono archiviati i metadati del cluster. Scegli una delle
regioni supportate.
Devi utilizzare la stessa regione configurata in gkeConnect.location
,
stackdriver.clusterLocation
e cloudAuditLogging.clusterLocation
. Se
gkeOnPremAPI.enabled
è false
, non includere questo campo.
stackdriver
Obbligatorio per impostazione predefinita
Mutabile
Se vuoi attivare Cloud Logging e Cloud Monitoring per il tuo cluster, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
Questa sezione è obbligatoria per impostazione predefinita. In altre parole, se non includi questa sezione,
devi includere il flag --skip-validation-stackdriver
quando esegui
gkectl create cluster
.
Questa sezione è obbligatoria se vuoi gestire il ciclo di vita del cluster utente utilizzando i client dell'API GKE On-Prem.
stackdriver.projectID
Obbligatorio per Logging e Monitoring
Stringa
non modificabile
L'ID del
progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve essere uguale a quello impostato in gkeConnect.projectID
e cloudAuditLogging.projectID
. Se gli ID progetto
non sono uguali, la creazione del cluster non va a buon fine. Questo requisito non si applica ai cluster esistenti.
Se necessario, puoi configurare un router dei log in questo progetto per instradare i log in bucket di log di un altro progetto. Per informazioni su come configurare il router dei log, consulta la sezione Destinazioni supportate.
Esempio:
stackdriver: projectID: "my-fleet-host-project"
stackdriver.clusterLocation
Obbligatorio per il logging e il monitoraggio
Stringa
non modificabile
Precompilato: "us-central1"
La regione Google Cloud in cui vuoi archiviare i log. È buona idea scegliere una regione vicina al tuo data center on-premise.
Per i nuovi cluster, se includi le sezioni gkeOnPremAPI
e cloudAuditLogging
nel file di configurazione, la regione impostata qui deve essere la stessa impostata in gkeConnect.location
, gkeOnPremAPI.location
e cloudAuditLogging.clusterLocation
. Se le regioni non sono uguali, la creazione del cluster non riesce.
Esempio:
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
Immutabile
Booleano
Precompilato: false
Se la rete del cluster è controllata da un VPC, imposta questo valore su true
.
In questo modo, tutta la telemetria viene inoltrata tramite gli indirizzi IP soggetti a limitazioni di Google.
In caso contrario, impostalo su false
.
Esempio:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
Obbligatorio per Logging e monitoraggio
Stringa
mutabile
Il percorso del file della chiave JSON per l'account di servizio di monitoraggio e generazione di log.
Per aggiornare il valore di questo campo, utilizza gkectl update cluster
.
Per informazioni su come modificare la chiave dell'account di servizio per il monitoraggio e la registrazione, consulta la sezione Ruotare le chiavi dell'account di servizio.
Esempio:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.serviceAccountKey.secretRef.version
Mutevole
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"
La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per il tuo account del servizio di monitoraggio del logging.
Esempio:
stackdriver: serviceAccountKey: secretRef: version: "1"
stackdriver.disableVsphereResourceMetrics
Mutevole
Booleano
Precompilato: false
Valore predefinito: false
Imposta questo valore su true
per disattivare la raccolta delle metriche da vSphere.
In caso contrario, impostalo su false
.
Esempio:
stackdriver: disableVsphereResourceMetrics: true
usageMetering
Anteprima
Impossibile modificare
Se vuoi attivare la misurazione dell'utilizzo per il tuo cluster, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
usageMetering.bigQueryProjectID
Anteprima
Obbligatorio per la misurazione dell'utilizzo
Stringa
non modificabile
L'ID del progetto Google Cloud in cui vuoi archiviare i dati di misurazione dell'utilizzo.
Esempio:
usageMetering: bigQueryProjectID: "my-bq-project"
usageMetering.bigQueryDatasetID
Anteprima
Obbligatorio per la misurazione dell'utilizzo
Stringa
non modificabile
L'ID del set di dati BigQuery in cui vuoi archiviare i dati di misurazione dell'utilizzo. Esempio:
usageMetering: bigQueryDatasetID: "my-bq-dataset"
usageMetering.bigQueryServiceAccountKeyPath
Anteprima
Obbligatorio per la misurazione dell'utilizzo
Stringa
non modificabile.
Il percorso del file della chiave JSON per il tuo account di servizio BigQuery.
Per aggiornare il valore di questo campo, utilizza gkectl update cluster
.
Per informazioni su come modificare la chiave dell'account di servizio BigQuery, consulta Ruotare le chiavi dell'account di servizio.
Esempio:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.bigQueryServiceAccountKey.secretRef.version
Mutevole
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"
La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per il tuo account di servizio BigQuery.
Esempio:
gkeConnect: bigQueryServiceAccountKey: secretRef: version: "1"
usageMetering.enableConsumptionMetering
Anteprima
Obbligatorio per la misurazione dell'utilizzo
Immutabile
Booleano
Precompilato: false
Imposta questo valore su true
se vuoi attivare la misurazione in base al consumo.
In caso contrario, imposta questo valore su false.
Esempio:
usageMetering: enableConsumptionMetering: true
cloudAuditLogging
Se vuoi integrare gli audit log del server API Kubernetes del tuo cluster con Cloud Audit Logs, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
cloudAuditLogging.projectID
Obbligatorio per Cloud Audit Logs
Stringa
non modificabile
L'ID del progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve essere uguale a quello impostato in gkeConnect.projecID
e stackdriver.projectID
. Se gli ID progetto
non sono uguali, la creazione del cluster non va a buon fine. Questo requisito non si applica ai cluster esistenti.
Se necessario, puoi configurare un router dei log in questo progetto per instradare i log in bucket di log di un altro progetto. Per informazioni su come configurare il router dei log, consulta la sezione Destinazioni supportate.
Esempio:
cloudAuditLogging: projectID: "my-fleet-host-project"
cloudAuditLogging.clusterLocation
Obbligatorio per Cloud Audit Logs
Stringa
non modificabile
La regione Google Cloud in cui vuoi archiviare gli audit log. È consigliabile scegliere una regione vicina al tuo data center on-premise
Per i nuovi cluster, se includi le sezioni gkeOnPremAPI
e stackdriver
nel file di configurazione, la regione impostata qui deve essere la stessa impostata in gkeConnect.location
, gkeOnPremAPI.location
e stackdriver.clusterLocation
. Se le regioni non sono uguali, la creazione del cluster non va a buon fine.
Esempio:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
Obbligatorio per Cloud Audit Logs
Stringa
mutabile
Il percorso del file della chiave JSON per l'account di servizio di registrazione degli audit.
Per aggiornare il valore di questo campo, utilizza gkectl update cluster
.
Per informazioni su come modificare la chiave dell'account di servizio per la registrazione di controllo, consulta Eseguire la rotazione delle chiavi degli account di servizio.
Esempio:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
cloudAuditLogging.serviceAccountKey.secretRef.version
Mutevole
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"
La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per il tuo account servizio di registrazione dei log di controllo.
Esempio:
cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
autoRepair.enabled
Facoltativo
Mutabile
Booleano
Precompilato: true
Imposta questo valore su true
per attivare la riparazione automatica dei nodi. In caso contrario, impostalo su false
.
Esempio:
autoRepair: enabled: true
secretsEncryption
Se vuoi criptare i secret senza la necessità di un KMS (Key Management Service) esterno o altre dipendenze, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
secretsEncryption.mode
Obbligatorio per la crittografia dei secret
Stringa
non modificabile
Valore possibile: "GeneratedKey"
Precompilato: "GeneratedKey"
La modalità di crittografia del secret.
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
Obbligatorio per la crittografia dei secret
Mutabile
Intero
Precompilato: 1
Un numero intero a tua scelta da utilizzare per il numero di versione della chiave. Ti consigliamo di iniziare con 1
.
Per informazioni su come aggiornare questo campo per un cluster esistente, consulta Crittografia dei secret sempre attivi.
Esempio:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
Mutevole
Booleano
Precompilato: false
Imposta questo valore su true
per disattivare la crittografia dei secret. In caso contrario, impostalo su false
.
Per informazioni su come aggiornare questo campo per un cluster esistente, consulta Crittografia dei secret sempre attivi.
Esempio:
secretsEncryption: generatedKey: disabled: false