Questo documento descrive i campi del file di configurazione del cluster utente per Google Distributed Cloud versione 1.30 e successive.
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
template generato. Se ometti questo flag, gkectl
denomina il file
user-cluster.yaml
e lo inserisce nella directory corrente.
VERSION
: il numero di versione di Google Distributed Cloud. Ad esempio:
gkectl create-config cluster --gke-on-prem-version=1.32.100-gke.106
.
Modello
Campi obbligatori e valori predefiniti
Se un campo è contrassegnato come Obbligatorio, il file di configurazione completato deve avere un valore compilato per il campo.
Alcuni campi sono obbligatori in base a determinate condizioni. Ad esempio,
loadBalancer.metalLB.addressPools
è obbligatorio se loadBalancer.kind
è uguale a
MetalLB
.
Se per un campo viene specificato un valore Predefinito, il cluster utilizzerà quel valore se non inserisci nulla nel campo. Puoi eseguire l'override di un valore predefinito inserendo un valore.
Se un campo non è contrassegnato come obbligatorio, è 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.
enableAdvancedCluster
1.32 e successive
Facoltativo
Modificabile (è consentito da false
a true
)
Booleano
Precompilato: true
Valore predefinito: true
Imposta enableAdvancedCluster
su false
se non vuoi abilitare il cluster avanzato quando crei un nuovo cluster. Quando questo flag è impostato su true
(cluster avanzato abilitato), il software Google Distributed Cloud sottostante esegue il deployment di controller che consentono un'architettura più estensibile. L'attivazione del cluster avanzato
ti consente di accedere a nuove funzionalità e capacità, come
i domini di topologia.
Questo campo deve avere lo stesso valore del campo enableAdvancedCluster
del cluster amministratore.
Assicurati di esaminare le differenze quando esegui cluster avanzati prima di attivare il cluster avanzato.
Per aggiornare un cluster esistente a un cluster avanzato, vedi Aggiornare un cluster a un cluster avanzato. Dopo l'aggiornamento al cluster avanzato, la disattivazione non è consentita.
1,31
Disponibile solo per i nuovi cluster
Anteprima
Facoltativo
Immutabile
Booleano
Precompilato: false
Predefinito: false
Imposta enableAdvancedCluster
su true
se vuoi abilitare il cluster avanzato
quando crei un nuovo cluster. Quando questo flag è impostato su true
(cluster avanzato
abilitato), il software Google Distributed Cloud sottostante esegue il deployment di controller
che consentono un'architettura più estensibile. L'attivazione del cluster avanzato
ti consente di accedere a nuove funzionalità e capacità, come
i domini di topologia.
Questo campo deve avere lo stesso valore del campo enableAdvancedCluster
del cluster amministratore.
1,30 e inferiore
Non disponibile.
name
Obbligatorio
Stringa
Un nome a tua scelta per il cluster utente. Il nome deve:
- Deve contenere al massimo 40 caratteri.
- contenere solo caratteri alfanumerici minuscoli o un trattino (
-
) - iniziare con un carattere alfabetico
- terminare con un carattere alfanumerico
Esempio:
name: "my-user-cluster"
gkeOnPremVersion
Obbligatorio
Modificabile
Stringa
La versione di Google Distributed Cloud per il cluster utente.
Esempio:
gkeOnPremVersion: "1.29.0-gke.1456"
preparedSecrets.namespace
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione, rimuovi questo campo.
Altrimenti, se vuoi utilizzare
credenziali preparate,
compila questo campo.
Immutabile
Stringa
Valori possibili: una stringa che inizia con "gke-onprem-secrets-"
Il nome di uno spazio dei nomi Kubernetes nel cluster di amministrazione in cui sono archiviati i secret preparati per questo cluster utente.
Esempio:
preparedSecrets: namespace: "gke-onprem-secrets-alice"
enableControlplaneV2
1.30 e successive
Modificabile (è consentito da false
a true
)
Booleano
Precompilato: true
Valore predefinito: true
Nella versione 1.30 e successive, Controlplane V2 è obbligatorio per i nuovi cluster utente. Se includi questo campo nel file di configurazione, deve
essere impostato su true
.
Per eseguire la migrazione di un cluster esistente a Controlplane V2, consulta Eseguire la migrazione di un cluster utente alle funzionalità consigliate. Dopo la migrazione a Controlplane V2, la disattivazione di Controlplane V2 non è consentita.
Con Controlplane V2, il control plane per un cluster utente viene eseguito su uno o più nodi nel cluster utente stesso. I vantaggi di Controlplane V2 includono:
Coerenza dell'architettura tra cluster di amministrazione e cluster utente.
Isolamento degli errori. 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 inserire i cluster di amministrazione e utente in domini di errore o siti geografici diversi. Ad esempio, un cluster utente in una posizione edge potrebbe trovarsi in un sito geografico diverso da quello 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. Se Controlplane V2 non è abilitato, il control plane del cluster utente viene eseguito nel cluster di amministrazione.
Ti consigliamo di abilitare Controlplane V2.
Esempio:
enableControlplaneV2: true
vCenter
Questa sezione contiene informazioni sull'ambiente vSphere e sulla connessione a vCenter Server.
Se infraConfigFilePath
è
configurato nel file di configurazione del cluster di amministrazione, rimuovi l'intera sezione.
Se hai incluso la sezione vCenter
nel file di configurazione del cluster di amministrazione:
Se vuoi che un campo di questa sezione sia uguale a quello specificato per il cluster amministratore, rimuovi il campo o lascialo commentato.
Se vuoi che un campo sia diverso da quello specificato per il cluster amministrativo, compilalo qui. I campi che compili qui nella sezione
vCenter
ignorano i campi corrispondenti nel file di configurazione del cluster di amministrazione.
vCenter.address
Immutabile
Stringa
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, vedi Trovare l'indirizzo del server vCenter.
Se specifichi un valore diverso dall'istanza di vCenter Server
utilizzata dal cluster di amministrazione, allora
Controlplane V2
deve essere abilitato 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
Immutabile
Stringa
Predefinito: ereditato 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 radice, 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
Immutabile
Stringa
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
Immutabile
Stringa
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, imposta questo valore 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 secondario 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
Immutabile
Stringa
Predefinito: ereditato dal cluster di amministrazione
Il nome di un datastore vSphere per il tuo 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 SPBM (Storage Policy Based Management).
vCenter.storagePolicyName
(Facoltativo)
(Immutabile)
Stringa
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 disponga di proprie norme.
Per saperne di più, consulta Configurare una policy di archiviazione.
Se specifichi un valore per questo campo, non specificare un valore per
vCenter.datastore
.
vCenter.caCertPath
Mutable
String
Default: Inherit from the admin cluster
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, vedi Aggiornare i riferimenti ai certificati vCenter.
vCenter.credentials.fileRef.path
Mutable
String
Default: Inherit from the admin cluster
Se fornisci 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 utente deve disporre del ruolo Amministratore o di 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 del service account.
Per informazioni sull'aggiornamento delle credenziali vCenter, vedi Aggiornamento delle credenziali del cluster.
Esempio:
vCenter: credentials: fileRef: path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
Mutable
String
Default: Inherit from the admin cluster
Il nome del blocco delle credenziali nel tuo 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
Immutabile
Stringa
Predefinito: ereditato 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
Default: Inherit from the admin cluster
Il percorso del file della chiave JSON per l'account di servizio di accesso ai componenti.
Esempio:
componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"
componentAccessServiceAccountKey.secretRef.version
Modificabile
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 di servizio di accesso ai componenti.
Esempio:
componentAccessServiceAccountKey: secretRef: version: "1"
privateRegistry
Compila questa sezione se il tuo cluster di amministrazione utilizza un registro dei container privato e vuoi che il tuo cluster utente utilizzi un registro privato diverso o impostazioni diverse. Se vuoi utilizzare un indirizzo del registro privato diverso, il tuo cluster deve avere Controlplane V2 abilitato. Le nuove impostazioni vengono selezionate durante la creazione e l'aggiornamento del cluster.
Se vuoi utilizzare le stesse impostazioni del cluster di amministrazione, rimuovi questa sezione o lasciala commentata.
privateRegistry.address
Immutabile
Stringa
Predefinito: eredita dal cluster di amministrazione
L'indirizzo IP o il nome di dominio completo (FQDN) della macchina che esegue il tuo registro Docker privato.
Esempi:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
Mutable
String
Default: Inherit from the admin cluster
Se prevedi di utilizzare il secret preparato per il registro 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 registro Docker privato.
Esempio:
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
Mutable
String
Default: Inherit from the admin cluster
Il nome del blocco delle credenziali nel tuo file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account del registro 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 secret preparato per un registro 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
Default: Inherit from the admin cluster
Quando Docker estrae un'immagine dal tuo registro privato, il registro deve dimostrare la sua identità presentando un certificato. Il certificato del registro è firmato da un'autorità di certificazione (CA). Docker utilizza il certificato della CA per convalidare il certificato del registro.
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 utente.
network.hostConfig
1.30 e successive
Questa sezione contiene informazioni su server NTP, server DNS e domini di ricerca DNS utilizzati dalle VM corrispondenti ai nodi del cluster.
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione (disponibile nella versione 1.31 e
successive), rimuovi l'intera sezione. In caso contrario, questa sezione è obbligatoria se
una o più delle seguenti condizioni sono vere:
network.ipMode.type
è impostato sustatic
.enableControlplaneV2
è impostato sutrue
o è consentito il valore predefinitotrue
. Tieni presente che Controlplane V2 è necessario per i nuovi cluster utente.
1,29 e versioni precedenti
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 di Seesaw, queste informazioni si applicano anche alle tue VM Seesaw.
Questa sezione è obbligatoria se una o più delle seguenti condizioni sono vere:
network.ipMode.type
è impostato sustatic
.enableControlplaneV2
è impostato sutrue
o è consentito il valore predefinitotrue
. Il bilanciatore del carico di Seesaw non è supportato sui cluster con Controlplane V2 abilitato.loadBalancer.kind
è impostato su"Seesaw"
.
network.hostConfig.dnsServers
Obbligatorio
Immutabile
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 sincronizzazione dell'ora da utilizzare per le VM.
Esempio:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
Immutabile
Array di stringhe
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
Immutabile
Stringa
Precompilato: "statico"
Predefinito: "dhcp"
Se vuoi che i nodi del cluster ricevano l'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 questo valore su "static"
. Se
enableControlplaneV2
è impostato su true
, questa
impostazione si applica solo ai nodi worker.
Esempio:
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
Questo campo è obbligatorio se network.ipMode.type
= static
o se
infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione.
Immutabile
Stringa
Il percorso assoluto o relativo del file di blocco IP per il tuo cluster.
Esempio:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
Immutabile
Stringa
Precompilato: "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
Immutabile
Stringa
Precompilato: "192.168.0.0/16"
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 indirizzi esterni al cluster che vuoi raggiungere dall'interno del cluster.
Ad esempio, supponiamo che l'intervallo di servizio sia 10.96.232.0/24 e l'intervallo di pod sia 192.168.0.0/16. Qualsiasi traffico inviato da un pod a un indirizzo in uno di questi intervalli verrà trattato come traffico in-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, dei server DNS e dei server NTP
Ti consigliamo di utilizzare intervalli di servizi e pod nello spazio di indirizzi RFC 1918.
Ecco un motivo per cui è consigliabile utilizzare gli indirizzi RFC 1918. Supponiamo che l'intervallo di pod o servizi contenga indirizzi IP esterni. Il traffico inviato da un pod a uno di questi indirizzi esterni verrà trattato come traffico in-cluster e non raggiungerà la destinazione esterna.
network.vCenter.networkName
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione, rimuovi questo campo.
In caso contrario, questo campo è obbligatorio se vCenter.address
è diverso dall'indirizzo vCenter che utilizzi per il cluster di amministrazione.
Immutabile
Stringa
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 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 nodi del cluster.
network.additionalNodeInterfaces[i].networkName
Obbligatorio se multipleNetworkInterfaces
= true
Immutabile
Stringa
Il nome della rete vSphere a cui si connetterà questa interfaccia di nodo aggiuntiva.
Esempio:
network: additionalNodeInterfaces: - networkName: "my-node-interface-1"
network.additionalNodeInterfaces[i].type
Obbligatorio se multipleNetworkInterfaces
= true
Immutabile
Stringa
Esempio:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static"
network.additionalNodeInterfaces[i].ipBlockFilePath
Obbligatorio se network.additionalNodeInterfaces[i].type
= static
Immutabile
Stringa
Il percorso di un file di blocco IP contenente gli indirizzi IP da utilizzare per questa interfaccia di rete sui nodi che la contengono.
Esempio:
network: additionalNodeInterfaces: - name: "my-node-interface-1" type: "static" ipBlockFilePath: "my-ipblock-file-1"
network.controlPlaneIPBlock
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione, rimuovi l'intera
sezione.
In caso contrario, l'inclusione di questa sezione dipende dal valore impostato in
enableControlplaneV2
:
- Se
enableControlplaneV2
ètrue
, compila questa sezione. - Se
enableControlplaneV2
èfalse
, rimuovi questa sezione.
network.controlPlaneIPBlock.netmask
Obbligatorio se enableControlplaneV2
= true
Immutabile
Stringa
Esempio:
network: controlPlaneIPBlock: netmask: "255.255.255.0"
network.controlPlaneIPBlock.gateway
Obbligatorio se enableControlplaneV2
= true
Immutabile
Stringa
Esempio:
network: controlPlaneIPBlock: gateway: "172.16.21.1"
network.controlPlaneIPBlock.ips
Obbligatorio se enableControlplaneV2
= true
Immutabile
Array di oggetti, ognuno dei quali ha un indirizzo IP e un nome host. Il nome host
è obbligatorio per la migrazione del control plane V2, altrimenti è facoltativo.
Per un cluster utente ad alta disponibilità (HA), l'array ha 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
Obbligatorio
Immutabile
Stringa
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
Obbligatorio
Immutabile
Stringa
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
Specifica il tipo di bilanciatore del carico da utilizzare.
1.32 e successive
Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"
Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che configurerai il cluster per utilizzare i domini di topologia. Si presume che il
cluster utilizzi i domini di topologia se il
campo infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione.
Con i domini di topologia, imposta questo valore su
"ManualLB"
. Devi configurare un bilanciatore del carico di terze parti (ad esempio F5 BIG-IP o Citrix) se vuoi utilizzare i domini di topologia.Domini senza topologia: imposta questo valore su
"ManualLB"
o"MetalLB"
. Utilizza"ManualLB"
se hai un bilanciatore del carico di terze parti o"MetalLB"
per la nostra soluzione in bundle. Se vuoi, puoi configurare un altro tipo di bilanciatore del carico per il traffico del control plane. Per ulteriori informazioni, vedimasterNode.controlPlaneLoadBalancer
.
1,31
Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"
Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che configurerai il cluster per utilizzare i domini di topologia. Si presume che il
cluster utilizzi i domini di topologia se il
campo infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione.
Con i domini di topologia, imposta questo valore su
"ManualLB"
. Devi configurare un bilanciatore del carico di terze parti (ad esempio F5 BIG-IP o Citrix) se vuoi utilizzare i domini di topologia.Domini senza topologia: imposta questo valore su
"ManualLB"
o"MetalLB"
. Utilizza"ManualLB"
se hai un bilanciatore del carico di terze parti o"MetalLB"
per la nostra soluzione in bundle.
1,30
Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"
Imposta questo valore su "ManualLB"
o "MetalLB"
. Utilizza "ManualLB"
se hai un
bilanciatore del carico di terze parti (come F5 BIG-IP o Citrix) o "MetalLB"
per la nostra
soluzione in bundle.
Anche se puoi eseguire l'upgrade di un cluster con kind
impostato su "F5BigIP"
o
"Seesaw"
, non puoi creare nuovi cluster. Per informazioni sulla migrazione delle configurazioni di bilanciamento del carico, consulta Pianificare la migrazione del cluster alle funzionalità consigliate.
Esempio:
loadBalancer:
kind: "MetalLB"
1.29 e precedenti
Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"
Imposta questo valore su "ManualLB"
, "F5BigIP"
, "Seesaw"
o "MetalLB"
.
Per abilitare Dataplane V2 e Controlplane V2, ti consigliamo di utilizzare
"ManualLB"
se hai un bilanciamento del carico di terze parti (ad esempio F5 BIG-IP o
Citrix) o "MetalLB"
per la nostra soluzione in bundle.
Esempio:
loadBalancer:
kind: "MetalLB"
Quando crei cluster utente utilizzando la console Google Cloud , gcloud CLI o Terraform, il tipo di bilanciatore del carico per il cluster di amministrazione e i relativi cluster utente deve essere lo stesso. L'unica eccezione è se il
cluster di amministrazione utilizza Seesaw, i cluster utente possono utilizzare MetalLB. Se vuoi che i cluster di amministrazione e utente utilizzino diversi tipi di bilanciatori del carico, devi creare i cluster utente utilizzando lo strumento a riga di comando gkectl
.
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
(vedi Nota sulla versione)
Immutabile
Numero intero
Precompilato: 30243
Il proxy in entrata in un cluster utente è esposto da un
servizio Kubernetes di tipo LoadBalancer
.
Il servizio ha una
ServicePort
per HTTP. Scegli un valore nodePort
per ServicePort HTTP e imposta questo campo
sul valore nodePort
.
Nota sulla versione: nella versione 1.30 e successive, le porte dei nodi Ingress sono facoltative per i cluster che utilizzano Controlplane V2.
Esempio:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
Obbligatorio se loadBalancer.kind
= ManualLB (see Version note)
Immutabile
Numero intero
Precompilato: 30879
Il proxy in entrata in un cluster utente viene esposto da un servizio
di tipo LoadBalancer. Il servizio ha una ServicePort per HTTPS. Scegli un valore nodePort
per ServicePort HTTPS e imposta questo campo sul valore nodePort
.
Nota sulla versione: nella versione 1.30 e successive, le porte dei nodi Ingress sono facoltative per i cluster che utilizzano Controlplane V2.
Esempio:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
loadBalancer.manualLB.controlPlaneNodePort
Obbligatorio se loadBalancer.kind
= ManualLB
e
enableControlplaneV2
= false
Immutabile
Numero intero
Precompilato: 30562
Il server API Kubernetes di un cluster utente viene eseguito nel cluster di amministrazione
ed è 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
Immutabile
Numero intero
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
1.30 e successive
Nelle versioni 1.30 e successive, il valore "F5BigIP"
non è consentito per
loadbalancer.kind
per i nuovi cluster di utenti. Se la sezione loadBalancer.f5BigIP
è presente nel file di configurazione, rimuovila o commentala.
Puoi comunque utilizzare il bilanciatore del carico F5 BIG-IP con i nuovi cluster di utenti, ma la configurazione è diversa. Per i dettagli della configurazione, vedi Attivazione della modalità di bilanciamento del carico manuale.
Se un cluster esistente ha questa sezione configurata, gli upgrade alla versione 1.32 vengono bloccati. Prima di eseguire l'upgrade alla versione 1.32, devi eseguire la migrazione dei cluster alle funzionalità consigliate.
1,29 e versioni precedenti
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 abilitare il bilanciamento del carico manuale, imposta loadbalancer.kind
su"ManualLB"
e compila la sezione loadBalancer.manualLB
. Per ulteriori informazioni, consulta Attivazione della modalità di bilanciamento del carico manuale.
Se hai un bilanciatore del carico F5-BIG-IP esistente e la configurazione del cluster utilizza questa sezione, dopo l'upgrade alla versione 1.29 o successive, ti consigliamo di eseguire la migrazione al bilanciamento del carico manuale.
loadBalancer.f5BigIP.address
1.30 e successive
Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind
= "F5BigIP"
Stringa
L'indirizzo del bilanciatore del carico F5 BIG-IP.
Esempio:
loadBalancer:
f5BigIP:
address: "203.0.113.2"
1,29 e versioni precedenti
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
1.30 e successive
Non consentito per i nuovi cluster
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 disporre di un ruolo utente con autorizzazioni sufficienti per configurare e gestire il bilanciamento del carico. È sufficiente il ruolo di amministratore o amministratore risorse.
Per informazioni sull'aggiornamento delle credenziali F5 BIG-IP, consulta Aggiornamento delle credenziali del cluster.
Esempio:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/user-creds.yaml"
1,29 e versioni precedenti
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 disporre di un ruolo utente con autorizzazioni sufficienti per configurare e gestire il bilanciamento del carico. È sufficiente il ruolo di amministratore o amministratore risorse.
Per informazioni sull'aggiornamento delle credenziali F5 BIG-IP, consulta Aggiornamento delle credenziali del cluster.
Esempio:
loadBalancer:
f5BigIP:
credentials:
fileRef:
path: "my-config-folder/user-creds.yaml"
loadBalancer.f5BigIP.credentials.fileRef.entry
1.30 e successive
Non consentito per i nuovi cluster
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"
1,29 e versioni precedenti
Obbligatorio se loadBalancer.kind
= "F5BigIP"
Stringa
Il nome del blocco delle credenziali nel tuo 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
1.30 e successive
Non consentito per i nuovi cluster
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"
1,29 e versioni precedenti
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
1.30 e successive
Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind
= "F5BigIP"
e utilizzi SNAT
Stringa
Il nome del pool SNAT.
Esempio:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
1,29 e versioni precedenti
Obbligatorio se loadBalancer.kind
= "F5BigIP"
e utilizzi SNAT
Stringa
Il nome del pool SNAT.
Esempio:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
loadBalancer.seesaw
1.30 e successive
Nelle versioni 1.30 e successive, il valore "Seesaw"
non è consentito per
loadbalancer.kind
per i nuovi cluster di utenti perché questo bilanciatore del carico non è
supportato con funzionalità nuove e avanzate. Se la sezione loadBalancer.seesaw
è presente nel file di configurazione, rimuovila o commentala.
Puoi invece configurare il bilanciatore del carico MetalLB in bundle. Per abilitare il bilanciatore del carico MetalLB, imposta loadbalancer.kind
su"MetalLB"
e compila la sezione
loadBalancer.metalLB
. Per ulteriori informazioni, consulta la sezione
Bilanciamento del carico in bundle con MetalLB.
1,29 e versioni precedenti
Se imposti loadbalancer.kind
su "Seesaw"
, compila questa sezione. In caso contrario,
rimuovi questa sezione o lasciala commentata.
Tieni presenti le seguenti limitazioni del bilanciatore del carico SeeSaw:
- Se questo cluster utente è gestito da un cluster di amministrazione ad alta disponibilità, non può utilizzare il bilanciamento del carico Seesaw.
- I cluster utente con Controlplane V2 abilitato non possono utilizzare il bilanciatore del carico Seesaw.
Per utilizzare queste funzionalità, ti consigliamo di configurare il bilanciamento del carico MetalLB. Per abilitare il bilanciatore del carico MetalLB, imposta loadbalancer.kind
su"MetalLB"
e compila la sezione
loadBalancer.metalLB
. Per ulteriori informazioni, consulta la sezione
Bilanciamento del carico in bundle con MetalLB.
loadBalancer.seesaw.ipBlockFilePath
1.30 e successive
Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind
= Seesaw
Immutabile
Stringa
Il percorso del file di blocco IP per le tue VM di Seesaw.
Esempio:
loadBalancer:
seesaw:
ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
1,29 e versioni precedenti
Obbligatorio se loadBalancer.kind
= Seesaw
Immutabile
Stringa
Il percorso del file di blocco IP per le tue VM di Seesaw.
Esempio:
loadBalancer:
seesaw:
ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
1.30 e successive
Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind
= Seesaw
Immutabile
Numero intero
Valori possibili: 1 - 255
Precompilato: 0
L'identificatore del router virtuale della tua VM Seesaw. Questo identificatore, che è un numero intero a tua scelta, deve essere univoco in una VLAN.
Esempio:
loadBalancer:
seesaw:
vrid: 125
1,29 e versioni precedenti
Obbligatorio se loadBalancer.kind
= Seesaw
Immutabile
Numero intero
Valori possibili: 1 - 255
Precompilato: 0
L'identificatore del router virtuale 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
1.30 e successive
Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind
= Seesaw
Immutabile
Stringa
L'indirizzo IP virtuale configurato sulla tua VM master Seesaw.
Esempio:
loadBalancer:
seesaw:
masterIP: 172.16.20.21
1,29 e versioni precedenti
Obbligatorio se loadBalancer.kind
= Seesaw
Immutabile
Stringa
L'indirizzo IP virtuale configurato sulla tua VM master Seesaw.
Esempio:
loadBalancer:
seesaw:
masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
1.30 e successive
Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind
= Seesaw
Modificabile
Numero intero
Precompilato: 4
Il numero di CPU per ciascuna delle tue VM Seesaw.
Esempio:
loadBalancer:
seesaw:
cpus: 8
1,29 e versioni precedenti
Obbligatorio se loadBalancer.kind
= Seesaw
Modificabile
Numero intero
Precompilato: 4
Il numero di CPU per ciascuna delle tue VM Seesaw.
Esempio:
loadBalancer:
seesaw:
cpus: 8
loadBalancer.seesaw.memoryMB
1.30 e successive
Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind
= Seesaw
Modificabile
Numero intero
Precompilato: 3072
Il numero di mebibyte di memoria per ciascuna delle tue 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 220 = 1.048.576 byte. Un megabyte corrisponde a 106 = 1.000.000 byte.
1,29 e versioni precedenti
Obbligatorio se loadBalancer.kind
= Seesaw
Modificabile
Numero intero
Precompilato: 3072
Il numero di mebibyte di memoria per ciascuna delle tue 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 220 = 1.048.576 byte. Un megabyte corrisponde a 106 = 1.000.000 byte.
loadBalancer.seesaw.vCenter.networkName
1.30 e successive
Non consentito per i nuovi cluster
Immutabile
Stringa
Predefinito: uguale ai nodi del cluster
Il nome della rete vCenter che contiene le VM di Seesaw.
Esempio:
loadBalancer:
seesaw:
vCenter:
networkName: "my-seesaw-network"
1,29 e versioni precedenti
Immutabile
Stringa
Valore predefinito: uguale ai 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
1.30 e successive
Non consentito per i nuovi cluster
Immutabile
Pertinente se loadBalancer.kind
= Seesaw
Booleano
Precompilato: false
Predefinito: false
Se vuoi creare un bilanciatore del carico di Seesaw ad alta disponibilità, imposta questo valore su true
. In caso contrario, impostalo su false
. Un bilanciatore del carico Seesaw HA utilizza
una coppia(principale, di backup)
di VM.
Esempio:
loadBalancer:
seesaw:
enableHA: true
1,29 e versioni precedenti
Immutabile
Pertinente se loadBalancer.kind
= Seesaw
Booleano
Precompilato: false
Predefinito: false
Se vuoi creare un bilanciatore del carico di Seesaw ad alta disponibilità (HA), imposta questo valore su true
. In caso contrario, impostalo su false
. Un bilanciatore del carico Seesaw HA utilizza
una coppia(principale, di backup)
di VM.
Esempio:
loadBalancer:
seesaw:
enableHA: true
loadBalancer.seesaw.disableVRRPMAC
1.30 e successive
Non consentito per i nuovi cluster
Immutabile
Pertinente se loadBalancer.kind
= Seesaw
Booleano
Precompilato: true
Predefinito: true
Se questo criterio viene impostato su true
(opzione consigliata), il bilanciamento del carico Seesaw non utilizza
l'apprendimento MAC
per il failover. Utilizza invece
ARP gratuito.
Se questo campo è impostato su false
, il bilanciatore del carico Seesaw utilizza l'apprendimento MAC. Se utilizzi vSphere 7 o versioni successive e disponi di un bilanciatore del carico Seesaw ad alta disponibilità, questo campo deve essere impostato su true
.
Esempio:
loadBalancer:
seesaw:
disableVRRPMAC: true
1,29 e versioni precedenti
Immutabile
Pertinente se loadBalancer.kind
= Seesaw
Booleano
Precompilato: true
Valore predefinito: true
Se imposti questo valore su true
(opzione consigliata), il bilanciatore del carico Seesaw non utilizza
l'apprendimento MAC
per il failover. Utilizza invece
ARP gratuita.
Se imposti questo valore su false
, il bilanciatore del carico Seesaw utilizza l'apprendimento MAC. Se utilizzi
vSphere 7 o versioni successive e hai un bilanciatore del carico di 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, vedi Bilanciamento del carico in bundle con MetalLB.
loadBalancer.metalLB.addressPools
Obbligatorio se loadBalancer.kind
= MetalLB
Modificabile (vedi eccezione)
Array di oggetti, ognuno dei quali contiene informazioni su un pool di indirizzi da utilizzare con il bilanciamento del carico MetalLB.
1.32 e successive
Il comportamento di questo campo è lo stesso quando
enableAdvancedCluster
è impostato su
true
(cluster avanzato attivato) o false
(cluster avanzato non attivato).
In entrambi i casi, l'array non è totalmente modificabile. Puoi aggiungere pool di indirizzi, ma
la rimozione di pool di indirizzi da un array di pool di indirizzi esistente non è supportata.
1,31
Il comportamento di questo campo dipende dal fatto che
enableAdvancedCluster
sia impostato su
true
(cluster avanzato attivato) o false
(cluster avanzato non attivato):
Se il cluster avanzato è abilitato, l'array non è totalmente modificabile. Puoi aggiungere pool di indirizzi, ma la rimozione di pool di indirizzi da un array di pool di indirizzi esistente non è supportata.
Se il cluster avanzato non è abilitato, l'array è modificabile. Puoi aggiungere e rimuovere pool di indirizzi da un array di pool di indirizzi esistente.
1.30 e precedenti
Puoi aggiungere e rimuovere pool di indirizzi da un array di pool di indirizzi esistente.
loadBalancer.metalLB.addressPools[i].name
Obbligatorio se loadBalancer.kind
= MetalLB
Modificabile (vedi eccezione)
Stringa
Un nome scelto da te per il pool di indirizzi.
1.32 e successive
Il comportamento di questo campo è lo stesso di quando
enableAdvancedCluster
è impostato su
true
(cluster avanzato abilitato) o false
(cluster avanzato non abilitato).
In entrambi i casi, la modifica del nome dopo la creazione del cluster non è
supportata.
1,31
Il comportamento di questo campo dipende dal fatto che
enableAdvancedCluster
sia impostato su
true
(cluster avanzato attivato) o false
(cluster avanzato non attivato):
Se il cluster avanzato è abilitato: la modifica del nome dopo la creazione del cluster non è supportata.
Se il cluster avanzato non è abilitato, puoi modificare il nome del pool dopo la creazione del cluster.
1.30 e precedenti
Puoi modificare il nome del pool dopo la creazione del cluster.
Esempio:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses
Obbligatorio se loadBalancer.kind
= MetalLB
Modificabile (vedi eccezione)
Array di stringhe, ognuna delle quali è un intervallo di indirizzi. Ogni intervallo deve essere in formato CIDR o in formato intervallo con trattino.
1.32 e successive
Il comportamento di questo campo è lo stesso di quando
enableAdvancedCluster
è impostato su
true
(cluster avanzato abilitato) o false
(cluster avanzato non abilitato).
In entrambi i casi, puoi aggiungere indirizzi a un pool di indirizzi esistente, ma la rimozione
degli indirizzi non è supportata.
1,31
Il comportamento di questo campo dipende dal fatto che
enableAdvancedCluster
sia impostato su
true
(cluster avanzato attivato) o false
(cluster avanzato non attivato):
Se il cluster avanzato è abilitato, puoi aggiungere indirizzi a un pool di indirizzi esistente, ma la rimozione degli indirizzi non è supportata.
Se il cluster avanzato non è abilitato, puoi aggiungere e rimuovere indirizzi da un pool di indirizzi esistente.
1.30 e precedenti
Puoi aggiungere e rimuovere indirizzi da un pool di indirizzi esistente.
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
Pertinente se loadBalancer.kind
= MetalLB
Modificabile
Booleano
Precompilato: false
Valore predefinito: false
Se imposti questo valore su true
, il controller MetalLB non assegnerà indirizzi IP che terminano con .0 o .255 ai servizi. In questo modo si evita il problema di dispositivi di consumo
buggati che eliminano per errore 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
Pertinente se loadBalancer.kind
= MetalLB
Modificabile
Booleano
Precompilato: false
Predefinito: false
Se non vuoi che il controller MetalLB assegni automaticamente gli indirizzi IP
di questo pool ai servizi, imposta questo valore su true
. Poi uno sviluppatore può creare un
servizio di tipo LoadBalancer
e specificare manualmente uno degli indirizzi del
pool.
In caso contrario, imposta questo valore su false
.
Esempio:
loadBalancer: metalLB: addressPools: - name: "my-address-pool-1" manualAssign: true
enableDataplaneV2
1.30 e successive
Modificabile (da false
a true
è consentito)
Booleano
Precompilato: true
Predefinito: false
Questo campo controlla la Container Network Interface (CNI) utilizzata dal cluster. L'abilitazione di Dataplane V2 è necessaria per utilizzare Controlplane V2. Puoi
modificare il campo da false
a true
per abilitare Dataplane V2, ma
la disattivazione di Dataplane V2 non è consentita.
Nella versione 1.30 e successive, Dataplane V2 è obbligatorio per i nuovi cluster utente e deve essere impostato su
true
. Per eseguire la migrazione di un cluster 1.30 esistente a Dataplane V2, consulta Eseguire la migrazione di un cluster utente alle funzionalità consigliate.Nella versione 1.31, Dataplane V2 è obbligatorio per tutti i cluster. Prima di eseguire l'upgrade alla versione 1.31, segui i passaggi descritti in Abilita Dataplane V2.
I vantaggi di Dataplane V2 includono:
Dataplane V2 offre un'interfaccia di rete del container (CNI) più avanzata e potente rispetto all'opzione CNI precedente, Calico. Calico è in modalità manutenzione, il che significa che riceve solo correzioni di bug critici e aggiornamenti della sicurezza, ma non lo sviluppo di nuove funzionalità. Al contrario, Dataplane V2 è in fase di sviluppo e miglioramento attivo, il che garantisce l'accesso alle più recenti innovazioni e funzionalità di rete.
Dataplane V2 è la CNI preferita per GKE e altri prodotti Google Distributed Cloud.
1,29 e versioni precedenti
Immutabile
Booleano
Precompilato: true
Predefinito: false
Se vuoi abilitare Dataplane V2
o se vuoi utilizzare Controlplane V2,
imposta questo valore su true
. In caso contrario, impostalo su false
.
Ti consigliamo di attivare Dataplane V2.
Esempio:
enableDataplaneV2: true
Per i passaggi per la risoluzione dei problemi, consulta Risoluzione dei problemi relativi a Google Distributed Cloud NFS e DataPlane v2.
dataplaneV2.forwardMode
Modificabile
Stringa
Valori possibili: "snat", "dsr"
Precompilato: "snat"
Predefinito: "snat"
La modalità di inoltro per un cluster con Dataplane V2 abilitato.
Con la modalità Network Address Translation dell'origine (SNAT), un pacchetto viene tradotto con 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à di ritorno diretto del server (DSR), un pacchetto conserva il suo indirizzo IP di origine 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"
multipleNetworkInterfaces
Immutabile
Booleano
Precompilato: false
Predefinito: false
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione, questo campo deve essere
false
.
Se vuoi abilitare più interfacce di rete per i pod, imposta questo valore su true
.
Per ulteriori informazioni, consulta Configurazione di più interfacce di rete per i pod.
Esempio:
multipleNetworkInterfaces: true
advancedNetworking
Immutabile
booleano
Precompilato: false
Predefinito: false
Se prevedi di creare un
gateway NAT in uscita, imposta questo valore 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
Modificabile
Precompilato: false
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
.
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione, questo campo deve essere true
.
Modificabile
Booleano
Precompilato: false
Predefinito: false
Esempio:
storage: vSphereCSIDisabled: false
masterNode
Questa sezione contiene informazioni sui nodi che fungono da nodi del control plane per questo cluster utente.
masterNode.controlPlaneLoadBalancer
1.32 e successive
(Facoltativo) Includi questa sezione per specificare il tipo di bilanciatore del carico da utilizzare
per il traffico del control plane nel cluster utente. Includi
masterNode.controlPlaneLoadBalancer.mode
nel file di configurazione
se vuoi impostare esplicitamente il tipo di bilanciatore del carico da utilizzare anziché
affidarti al valore predefinito. Inoltre, devi impostare
loadBalancer.kind
nel file di configurazione
per specificare il tipo di bilanciatore del carico da utilizzare per il data plane.
masterNode.controlPlaneLoadBalancer.mode
(Facoltativo)
(Immutabile)
(Stringa)
(Predefinito: dipende dal fatto che il cluster utilizzi domini di topologia)
Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che configurerai il cluster per utilizzare i domini di topologia. Si presume che il
cluster utilizzi i domini di topologia se il
campo infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione.
Con i domini di topologia: specifica
"manual"
, che è il valore predefinito. Devi configurare un bilanciatore del carico di terze parti (ad esempio F5 BIG-IP o Citrix) se vuoi utilizzare i domini di topologia.Senza domini di topologia: specifica
"manual"
o"bundled"
. Utilizza"manual"
se hai un bilanciatore del carico di terze parti o"bundled"
per la nostra soluzione in bundle, che utilizza keepalived + haproxy in esecuzione sui nodi del control plane. Il valore predefinito è "bundled"
.
Esempio:
adminMaster:
controlPlaneLoadBalancer:
mode: "manual"
1.31 e versioni precedenti
Questa sezione non è disponibile. Utilizza invece
loadBalancer.kind
per specificare il tipo di
bilanciatore del carico da utilizzare per il cluster utente.
masterNode.cpus
Mutable
Integer
Precompilato: 4
Predefinito: 4
Il numero di CPU per ciascun nodo che funge da control plane per questo cluster utente.
Esempio:
masterNode: cpus: 8
masterNode.memoryMB
Modificabile
Numero intero
Precompilato: 8192
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
Predefinito: 1
Il numero di nodi del control plane per questo cluster utente. Una volta creato il cluster, questo numero non può essere modificato. Se vuoi aggiornare il numero di repliche in un secondo momento, devi ricreare il cluster utente.
Se il campo enableAdvancedCluster
è
true
, devi impostare questo campo su 3
. Nei cluster avanzati sono supportati solo i cluster utente ad alta disponibilità (HA).
Esempio:
masterNode: replicas: 3
masterNode.autoResize.enabled
Modificabile
Booleano
Precompilato: false
Predefinito: false
Imposta questo valore su true
per abilitare il ridimensionamento automatico dei nodi del control plane per il cluster utente. In caso contrario, imposta questo valore su false
.
Per maggiori informazioni, vedi Attivare il ridimensionamento dei nodi per i nodi del control plane di un cluster utente.
Esempio:
masterNode: autoResize: enabled: true
masterNode.vsphere
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione, rimuovi l'intera
sezione.
masterNode.vsphere.datastore
(Facoltativo)
Immutabile
Stringa
Valore predefinito: il valore di vCenter.datastore
Il datastore in cui verranno creati i nodi del control plane 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 quando
migri un datastore a SPBM (Storage Policy Based Management).
masterNode.vsphere.storagePolicyName
(Facoltativo)
Immutabile
Stringa
Valore predefinito: il valore di vCenter.storagePolicyName
Il nome di un criterio di archiviazione VM per i nodi del control plane.
Per saperne di più, consulta Configurare una policy 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
.
masterNode.topologyDomains
1.32 e successive
Anteprima
Facoltativo
Array di stringhe | Consente un elemento o tre elementi diversi
Immutabile
Predefinito: vSphereInfraConfig.defaultTopologyDomain
se specificato nel
file di configurazione dell'infrastruttura vSphere
Un array di domini di topologia. Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione
(il che indica che il cluster utilizzerà
domini di topologia), includi facoltativamente
questo campo. Il numero di domini di topologia nell'array determina
la modalità di deployment dei nodi del control plane del cluster utente, come segue:
- Un elemento: tutti i nodi del control plane del cluster utente verranno implementati nel dominio di topologia specificato.
- Tre elementi: ogni nodo del control plane del cluster utente verrà deployment in un dominio di topologia diverso (ovvero un nodo per dominio di topologia).
1,31
Anteprima
Facoltativo
Array di stringhe, ma è supportato un solo elemento
Immutabile
Predefinito: vSphereInfraConfig.defaultTopologyDomain
se specificato nel
file di configurazione dell'infrastruttura vSphere
Un array di domini di topologia.
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione (il che indica che il
cluster utilizzerà
domini di topologia), includi facoltativamente
questo campo. I nodi del control plane del cluster utente verranno implementati nel dominio di topologia specificato.
1,30 e inferiore
Non disponibile.
nodePools
Obbligatorio
Modificabile
Array di oggetti, ognuno dei quali descrive un pool di nodi.
Per saperne di più, consulta la pagina Creare e gestire i pool di nodi.
nodePools[i].name
Obbligatorio
Immutabile
Stringa
Un nome scelto da te per il node pool. Il nome deve:
- Deve contenere al massimo 40 caratteri.
- contenere solo caratteri alfanumerici minuscoli o un trattino (
-
) - iniziare con un carattere alfabetico
- 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 alla versione precedente.
Se vuoi che questo pool di nodi rimanga alla versione precedente, impostalo sulla versione precedente. In caso contrario, rimuovi questo campo o impostalo sulla stringa vuota. Per ulteriori informazioni, vedi Eseguire l'upgrade di un cluster utente.
Modificabile
Stringa
Predefinito: il cluster gkeOnPremVersion
Esempio:
nodePools: - name: "my-node-pool" gkeOnPremVersion: "1.13.0-gke.16"
nodePools[i].cpus
Obbligatorio
Modificabile
Numero intero
Precompilato: 4
Il numero di vCPU per ogni nodo nel pool.
Esempio:
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
Obbligatorio
Modificabile
Numero intero
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
Modificabile
Numero intero
Precompilato: 3
Valori possibili: il numero totale di nodi compatibili 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
Modificabile
Numero intero
Precompilato: 40
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
Modificabile
Stringa
Valori possibili: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2"
Precompilato: "ubuntu_cgv2"
Predefinito: "ubuntu_containerd"
Il tipo di immagine del sistema operativo da eseguire sulle VM nel pool di nodi.
Nella versione 1.32, i node pool Windows Server sono deprecati e non saranno disponibili nella versione 1.33 e successive. Il supporto per i pool di nodi Windows Server termina il 5 maggio 2026. Ti consigliamo di non utilizzare "windows" come tipo di immagine del sistema operativo sui nuovi cluster.
Tieni presente la seguente limitazione relativa ai cluster avanzati:
Versione 1.31: se il campo
enableAdvancedCluster
ètrue
, sono supportati soloubuntu-cgroupv2
eubuntu_containerd
sui cluster avanzati.Versione 1.32: tutti i tipi di immagini del sistema operativo, ad eccezione di "windows", sono supportati nei cluster avanzati.
Esempio:
nodePools - name: "my-node-pool" osImageType: "ubuntu_cgv2"
nodePools[i].osImage
Obbligatorio se nodePools[i].osImageType
= windows
Modificabile
Stringa
Il nome di un modello di VM Windows. Il modello deve basarsi su un file ISO di Windows Server 2019 con il tag lingua/regione 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 nodo 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
Modificabile
Array di oggetti, ognuno dei quali descrive una
taint di Kubernetes applicata a ogni
nodo del pool. I taint 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
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione, rimuovi tutti i campi
nella sezione nodePools[i].vsphere
, ad eccezione di nodePools[i].vsphere.tags
.
nodePools[i].vsphere.datastore
Mutable
String
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
Mutable
String
Valore predefinito: il valore di vCenter.storagePolicyName
Il nome di un criterio di archiviazione VM per i nodi del pool.
Per saperne di più, consulta Configurare una policy 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.
modificabile
Array di stringhe, 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
Modificabile
Array di oggetti, ognuno dei quali descrive un
tag vSphere
da inserire nelle VM del 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 collegare tag a tutte le VM in un pool di nodi, il tuo account utente vCenter deve disporre di questi privilegi di tagging vSphere:
- vSphere Tagging.Assign o Unassign vSphere Tag
- vSphere Tagging.Assign or Unassign vSphere Tag on Object (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
Modificabile
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
Modificabile
Numero intero
Precompilato: 0
Il numero massimo di nodi che lo strumento di scalabilità automatica può impostare per il pool.
Esempio:
nodePools: - name: "my-node-pool" autoscaling: maxReplicas: 10
nodePools[i].enableLoadBalancer
Pertinente se loadBalancer.kind
= "MetalLB"
Modificabile
Booleano
Precompilato: true
Predefinito: false
1.32 e successive
Il comportamento di questo campo è lo stesso quando
enableAdvancedCluster
è impostato su
true
(cluster avanzato attivato) o false
(cluster avanzato non attivato).
In entrambi i casi, imposta questo valore su true
se vuoi consentire a MetalLB speaker di
essere eseguito sui nodi del pool. In caso contrario, impostalo su false
.
1,31
Il comportamento di questo campo dipende dal fatto che
enableAdvancedCluster
sia impostato su
true
(cluster avanzato attivato) o false
(cluster avanzato non attivato):
Se è abilitato il cluster avanzato, questo campo non ha effetto perché il componente speaker MetalLB viene sempre eseguito sui nodi del control plane del cluster utente.
Se il cluster avanzato non è abilitato: imposta questo valore su
true
se vuoi consentire l'esecuzione del componente speaker MetalLB sui nodi del pool. In caso contrario, impostalo sufalse
.
1,29 e versioni precedenti
Imposta questo valore su true
se vuoi consentire l'esecuzione del componente speaker di MetalLB sui nodi del pool. In caso contrario, impostalo su false
.
Per ulteriori informazioni, vedi Bilanciamento del carico in bundle con MetalLB.
Esempio:
nodePools: - name: "my-node-pool" enableLoadBalancer: true
nodePools[i].updateStrategy.rollingUpdate.maxSurge
Anteprima
Modificabile
Numero intero
Valore predefinito: 1
Il numero massimo di macchine nel pool di nodi che possono essere aggiornate contemporaneamente durante un aggiornamento.
nodePools: - name: "my-node-pool" updateStrategy: rollingUpdate: maxSurge: 3
nodePools[i].topologyDomains
1.31 e successive
Se infraConfigFilePath
è configurato nel file di configurazione del cluster di amministrazione (che attiva
i domini di topologia), includi facoltativamente
questo campo.
Array di stringhe | Ma è supportato un solo elemento
Immutabile
Predefinito: vSphereInfraConfig.defaultTopologyDomain
se specificato nel
file di configurazione dell'infrastruttura vSphere
I nodi in questo pool di nodi verranno inseriti nel dominio di topologia specificato da questo campo. Per ogni pool di nodi è consentito un solo dominio di topologia. Tutti i nodi in un pool di nodi verranno inseriti in un unico dominio di topologia.
1,30 e inferiore
Non disponibile.
schedulerConfiguration
1.32 e successive
Anteprima
Facoltativo
Quando configuri i domini di topologia,
puoi configurare facoltativamente impostazioni aggiuntive che verranno trasmesse a
kube-scheduler
.
schedulerConfiguration.defaultTopologySpreadConstraint
Anteprima
Facoltativo
Immutabile
Un oggetto che definisce una regola di vincolo di distribuzione della topologia predefinita a livello di cluster
che viene applicata alla pianificazione dei pod. Quando il cluster utente viene creato con
domini di topologia, se questa regola è configurata, kube-scheduler
prende
la chiave di topologia predefinita e distribuisce i pod di Deployment, StatefulSet
e ReplicaSet per impostazione predefinita. La struttura è la stessa dei vincoli predefiniti a livello di cluster Kubernetes.
Esempio:
schedulerConfiguration:
defaultTopologySpreadConstraint:
defaultConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
defaultingType: List
Per maggiori dettagli, consulta Vincoli predefiniti a livello di cluster nella documentazione di Kubernetes.
1.31 e versioni precedenti
Non disponibile.
antiAffinityGroups.enabled
Modificabile
Booleano
Precompilato: true
Valore predefinito: true
Questa funzionalità richiede che l'ambiente vSphere soddisfi le seguenti condizioni:
VMware DRS è abilitato. VMware DRS richiede la 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 a disposizione almeno quattro host ESXi.
Ricorda che se hai una licenza vSphere Standard, non puoi abilitare VMware DRS.
Se non hai abilitato DRS o se non hai almeno quattro host in cui
è possibile pianificare le VM vSphere, imposta antiAffinityGroups.enabled
su false
.
Tieni presente la seguente limitazione relativa ai cluster avanzati:
Versione 1.31: se il campo
enableAdvancedCluster
ètrue
, le regole di anti-affinità non sono supportate nei cluster avanzati e devi impostareantiAffinityGroups.enabled
sufalse
.Versione 1.32: le regole di anti-affinità sono supportate sui cluster avanzati.
Esempio:
antiAffinityGroups: enabled: false
enableVMTracking
Anteprima
Immutabile
Precompilato: false
Imposta questo valore su true
per attivare il monitoraggio delle VM con i tag vSphere. In caso contrario, impostalo
su false
.
Per maggiori informazioni, vedi Attivare il monitoraggio delle VM.
Esempio:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
Modificabile
Numero intero
Valori possibili: 0 o 1
Precompilato: 0
Predefinito: 0
Il numero di pool di nodi da aggiornare contemporaneamente. Un valore di 1
specifica che è possibile aggiornare un pool di nodi alla volta. Un valore di 0
specifica che è possibile aggiornare un numero illimitato di node pool contemporaneamente.
Tieni presente la seguente limitazione relativa ai cluster avanzati:
Versione 1.31: se il campo
enableAdvancedCluster
ètrue
, le policy di aggiornamento dei pool di nodi non sono supportate nei cluster avanzati, quindi rimuovi questa sezione dal file di configurazione.Versione 1.32: le policy di aggiornamento dei pool di nodi sono supportate sui cluster avanzati.
Esempio:
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge
Anteprima
Modificabile
Numero intero
Valore predefinito: 1
Il numero massimo di macchine in un pool di nodi che possono essere aggiornate contemporaneamente durante un aggiornamento. 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
Facoltativo
Stringa
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 sul account di servizio che vuoi utilizzare per registrare il cluster in un Google Cloud fleet. Google Cloud
gkeConnect.projectID
Obbligatorio
Immutabile
Stringa
L'ID del tuo
progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve corrispondere all'ID impostato in
stackdriver.projectID
e cloudAuditLogging.projectID
. Se gli ID progetto
non sono uguali, la creazione del cluster non riesce. Questo requisito non viene applicato ai cluster esistenti.
Esempio:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
Immutabile
Stringa
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. Nella versione 1.28 e successive, puoi specificare facoltativamente la regione in cui vengono eseguiti i servizi Fleet e Connect. Google CloudSe 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 API GKE On-Prem, ovvero la 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 la stessa 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
Obbligatorio
Modificabile
Stringa
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 sulla modifica della chiave del account di servizio connect-register, consulta la sezione Rotazione account di servizio account.
Esempio:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.registerServiceAccountKey.secretRef.version
Modificabile
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 di servizio connect-register.
Esempio:
gkeConnect: registerServiceAccountKey: secretRef: version: "1"
gkeOnPremAPI
Nelle versioni 1.16 e successive, 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
.
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
sufalse
. Se non vuoi registrare cluster nel progetto, disabilitagkeonprem.googleapis.com
(il nome del servizio per l'API GKE On-Prem) nel progetto. Per 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 visualizzare i dettagli del cluster. Ad esempio, puoi eseguire comandi gcloud
per
ottenere informazioni sul tuo cluster di utenti.
Dopo aver aggiunto questa sezione e creato o aggiornato il cluster, se in seguito rimuovi la sezione e aggiorni il cluster, l'aggiornamento non andrà a buon fine.
gkeOnPremAPI.enabled
Modificabile
Booleano
Predefinito: true
Per impostazione predefinita, il cluster viene registrato nell'API GKE On-Prem se questa è abilitata nel tuo progetto. Imposta false
se non vuoi registrare il cluster.
Dopo aver registrato il cluster nell'API GKE On-Prem, se devi annullare la registrazione, apporta la seguente modifica e poi aggiorna il cluster:
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
Immutabile
Stringa
Predefinito: stackdriver.clusterLocation
La regione Google Cloud in cui l'API GKE On-Prem viene eseguita e archivia
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
Modificabile
Se vuoi abilitare 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. ovvero, 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 API GKE On-Prem.
stackdriver.projectID
Obbligatorio per Logging e Monitoring
Immutabile
Stringa
L'ID del tuo
progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve corrispondere all'ID impostato in
gkeConnect.projectID
e cloudAuditLogging.projectID
. Se gli ID progetto
non sono uguali, la creazione del cluster non riesce. Questo requisito non viene applicato ai cluster esistenti.
Se necessario, puoi configurare un router dei log in questo progetto per instradare i log nei bucket di log di un altro progetto. Per informazioni su come configurare il router di log, vedi Destinazioni supportate.
Esempio:
stackdriver: projectID: "my-fleet-host-project"
stackdriver.clusterLocation
Obbligatorio per Logging e Monitoring
Immutabile
Stringa
Precompilato: "us-central1"
La regione Google Cloud in cui vuoi instradare e archiviare le metriche di Cloud Monitoring. Ti consigliamo di scegliere una regione vicina al tuo data center on-premise.
Specifichi il routing e la posizione di archiviazione dei log di Cloud Logging nella configurazione del router dei log. Per saperne di più sul routing dei log, consulta la panoramica su routing e archiviazione.
L'operatore Stackdriver (stackdriver-operator
) associa il valore di questo
campo a ogni voce di log e metrica prima che vengano indirizzate a Google Cloud. Queste
etichette allegate possono essere utili per filtrare i log e le metriche rispettivamente in
Esplora log eMetrics Explorerhe.
Per i nuovi cluster, se includi le sezioni gkeOnPremAPI
e cloudAuditLogging
nel file di configurazione, la regione che imposti qui deve essere
la stessa che imposti in gkeConnect.location
, gkeOnPremAPI.location
e cloudAuditLogging.clusterLocation
. Se le regioni non sono le stesse,
la creazione del cluster non va a buon fine.
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, tutti i dati di telemetria vengono trasmessi tramite gli indirizzi IP con limitazioni di Google.
In caso contrario, imposta questo valore su false
.
Esempio:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
Obbligatorio per logging e monitoraggio
Modificabile
Stringa
Il percorso del file della chiave JSON per l'account di servizio di logging e monitoraggio.
Per aggiornare il valore di questo campo, utilizza gkectl update cluster
.
Per informazioni sulla modifica della chiave del account di servizio di logging e monitoraggio, vedi Rotazione account di servizio account.
Esempio:
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.serviceAccountKey.secretRef.version
Modificabile
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 monitoraggio della registrazione.
Esempio:
stackdriver: serviceAccountKey: secretRef: version: "1"
stackdriver.disableVsphereResourceMetrics
Modificabile
Booleano
Precompilato: false
Predefinito: false
Imposta questo valore su true
per disabilitare la raccolta di metriche da vSphere.
In caso contrario, impostalo su false
.
Esempio:
stackdriver: disableVsphereResourceMetrics: true
usageMetering
1.32 e successive
La funzionalità di misurazione dell'utilizzo non è supportata nella versione 1.32 e successive. Non includere questa sezione quando crei nuovi cluster. Tuttavia, i cluster esistenti che utilizzano questa funzionalità continueranno a funzionare. In alternativa, ti consigliamo di utilizzare la dashboard predefinita Misurazione dell'utilizzo dei cluster Anthos per comprendere l'utilizzo delle risorse a diversi livelli. Contatta l'assistenza clienti Google Cloud se l'alternativa non soddisfa i tuoi casi d'uso.
1.30 e 1.31
Ti consigliamo di non utilizzare questa funzionalità di anteprima quando crei nuovi cluster. Tuttavia, i cluster esistenti che utilizzano questa funzionalità continueranno a funzionare. In alternativa, ti consigliamo di utilizzare la dashboard predefinita Anthos Cluster Utilization Metering per comprendere l'utilizzo delle risorse a diversi livelli.
Se il campo enableAdvancedCluster
è
true
, rimuovi questa sezione. La misurazione dell'utilizzo non è supportata nei cluster avanzati.
1,29 e versioni precedenti
Anteprima
Immutabile
Ti consigliamo di non utilizzare questa funzionalità di anteprima quando crei nuovi cluster. Tuttavia, i cluster esistenti che utilizzano questa funzionalità continueranno a funzionare. In alternativa, ti consigliamo di utilizzare la dashboard predefinita Anthos Cluster Utilization Metering per comprendere l'utilizzo delle risorse a diversi livelli.
usageMetering.bigQueryProjectID
Anteprima
Obbligatorio per la misurazione dell'utilizzo
Immutabile
Stringa
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
Immutabile
Stringa
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
Immutabile
Stringa.
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 sulla modifica della chiave del account di servizio BigQuery, vedi Rotazione account di servizio account.
Esempio:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.bigQueryServiceAccountKey.secretRef.version
Modificabile
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 basata sul consumo.
In caso contrario, impostalo 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
Immutabile
Stringa
L'ID del tuo progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve corrispondere all'ID impostato in
gkeConnect.projecID
e stackdriver.projectID
. Se gli ID progetto
non sono uguali, la creazione del cluster non riesce. Questo requisito non viene applicato ai cluster esistenti.
Se necessario, puoi configurare un router dei log in questo progetto per instradare i log nei bucket di log di un altro progetto. Per informazioni su come configurare il router di log, vedi Destinazioni supportate.
Esempio:
cloudAuditLogging: projectID: "my-fleet-host-project"
cloudAuditLogging.clusterLocation
Obbligatorio per Cloud Audit Logs
Immutabile
Stringa
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 che imposti qui deve essere
la stessa che imposti 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
Modificabile
Stringa
Il percorso del file della chiave JSON per l'account di servizio di audit logging.
Se creerai il cluster con
enableAdvancedCluster
impostato su true
(obbligatorio per
configurare i domini di topologia),
imposta cloudAuditLogging.serviceAccountKeyPath
sullo stesso percorso di
stackdriver.serviceAccountKeyPath
.
Per aggiornare il valore di questo campo, utilizza gkectl update cluster
.
Per informazioni sulla modifica della chiave del account di servizio di registrazione degli audit, consulta la sezione Rotazione account di servizio account.
Esempio:
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
cloudAuditLogging.serviceAccountKey.secretRef.version
Modificabile
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 di servizio di logging di controllo.
Esempio:
cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
autoRepair.enabled
(Facoltativo)
(Modificabile)
(Booleano)
(Precompilato: true)
Imposta questo valore su true
per abilitare 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 di altre dipendenze, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
Se creerai il cluster con
enableAdvancedCluster
impostato su true
(obbligatorio per
configurare i domini di topologia),
rimuovi questa sezione. Questa funzionalità non è supportata con i cluster avanzati.
secretsEncryption.mode
Obbligatorio per la crittografia dei secret
Immutabile
Stringa
Valore possibile: "GeneratedKey"
Precompilato: "GeneratedKey"
La modalità di crittografia Secret.
secretsEncryption: mode: "GeneratedKey"
secretsEncryption.generatedKey.keyVersion
Obbligatorio per la crittografia dei secret
Modificabile
Numero 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 sull'aggiornamento di questo campo per un cluster esistente, consulta Crittografia dei secret Always-on.
Esempio:
secretsEncryption: generatedKey: keyVersion: 1
secretsEncryption.generatedKey.disabled
Modificabile
Booleano
Precompilato: false
Imposta questo valore su true
per disattivare la crittografia dei secret. In caso contrario, impostalo su false
.
Per informazioni sull'aggiornamento di questo campo per un cluster esistente, consulta Crittografia dei secret Always-on.
Esempio:
secretsEncryption: generatedKey: disabled: false