Il file di configurazione del cluster utente consente di definire le specifiche e le impostazioni per i cluster utente nel software Distributed Cloud solo per VMware. Puoi generare un modello per il file, quindi esaminare i campi obbligatori, i valori predefiniti e altri campi disponibili nelle versioni 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 tua workstation di amministrazione, puoi utilizzare gkectl per generare un template per il file di configurazione del cluster utente.
Per generare un template 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 di tua scelta per il template 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 di Google Distributed Cloud. Ad esempio:
gkectl create-config cluster --gke-on-prem-version=1.36.200-gke.118.
Modello
Campi obbligatori e valori predefiniti
Se un campo è contrassegnato come Obbligatorio, il file di configurazione completato deve contenere un valore 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 fornito 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.
Compilazione del file di configurazione
Nel file di configurazione, inserisci i valori dei campi come descritto nelle sezioni seguenti.
enableAdvancedCluster
1.33 e successive
Tutti i nuovi cluster vengono creati come cluster avanzati. Se includi questo campo nel file di configurazione durante la creazione di un nuovo cluster, deve essere impostato su true. Se imposti questo campo su false, la creazione del cluster verrà bloccata.
1.32
Facoltativo
Modificabile (da false a true è consentito)
Booleano
Precompilato: true
Valore predefinito: true
Imposta enableAdvancedCluster su false se non vuoi attivare il cluster avanzato durante la creazione di un nuovo cluster. Quando questo flag è impostato su true (cluster avanzato abilitato), il software Google Distributed Cloud sottostante esegue il deployment dei controller che consentono un'architettura più estensibile. L'attivazione del cluster avanzato ti consente di accedere a nuove funzionalità, come i domini di topologia.
Questo campo deve avere lo stesso valore del campo enableAdvancedCluster del cluster di amministrazione.
Assicurati di esaminare le differenze durante l'esecuzione di cluster avanzati prima di attivare il cluster avanzato.
Per aggiornare un cluster esistente a un cluster avanzato, consulta Aggiorna 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
Valore predefinito: false
Imposta enableAdvancedCluster su true se vuoi attivare 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 dei controller che consentono un'architettura più estensibile. L'attivazione del cluster avanzato ti consente di accedere a nuove funzionalità, come i domini di topologia.
Questo campo deve avere lo stesso valore del campo enableAdvancedCluster del cluster di amministrazione.
1.30 e versioni precedenti
Non disponibile.
name
Obbligatorio
Stringa
Un nome scelto da te per il cluster utente. Il nome 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.
In caso contrario, se vuoi utilizzare le 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 (da false a true è consentito)
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 Esegui la migrazione di un cluster utente alle funzionalità consigliate. Dopo la migrazione a Controlplane V2, non è consentito disabilitarlo.
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 i cluster di amministrazione e i 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 dei deployment. Puoi inserire i cluster di amministrazione e utente in domini in errore o siti geografici diversi. Ad esempio, un cluster utente in una località perimetrale 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. Quando il control plane 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 di amministrazione, rimuovilo o lascialo commentato.
Se vuoi che un campo sia diverso da quello specificato per il cluster di amministrazione, compilalo qui. Tutti i campi che compili qui nella sezione
vCentereseguono l'override dei campi corrispondenti nel file di configurazione del cluster di amministrazione.
vCenter.address
Immutabile
Stringa
Valore predefinito: eredita dal cluster di amministrazione
L'indirizzo IP o il nome host dell'istanza del server vCenter che vuoi utilizzare per questo cluster utente.
Per saperne di più, consulta Individuazione dell'indirizzo del server vCenter.
Se specifichi un valore diverso dall'istanza del server vCenter
utilizzata dal cluster di amministrazione,
Controlplane V2
deve essere abilitato e devi fornire i valori per
network.vCenter.networkName e 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
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.networkNamevCenter.datastoreovCenter.storagePolicyNamevCenter.clusterovCenter.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
Immutabile
Stringa
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.networkNamevCenter.datacentervCenter.datastoreovCenter.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
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, 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 che ha due o più pool di risorse.
Esempio:
vCenter: resourcePool: "uc-resource-pool-1/uc-resource-pool-2"
vCenter.datastore
Facoltativo
Immutabile
Stringa
Valore predefinito: eredita 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 alla gestione basata su criteri di archiviazione (SPBM).
vCenter.storagePolicyName
Facoltativo
Immutabile
Stringa
Il nome di una policy di archiviazione delle VM per i nodi del cluster.
Puoi anche specificare una policy di archiviazione delle VM per i nodi di un determinato node pool. Tuttavia, la policy specificata qui si applica a qualsiasi pool di nodi che non ha una propria policy.
Per saperne di più, consulta Configura una policy di archiviazione.
Se specifichi un valore per questo campo, non specificare un valore per vCenter.datastore.
vCenter.caCertPath
Modificabile
Stringa
Valore predefinito: eredita dal cluster di amministrazione
Il percorso del certificato CA per il server vCenter. Per saperne di più, consulta Recupero del certificato CA vCenter.
Esempio:
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"
Per informazioni su come aggiornare questo campo, consulta Aggiorna i riferimenti ai certificati vCenter.
vCenter.credentials.fileRef.path
Modificabile
Stringa
Valore predefinito: eredita dal cluster di amministrazione
Se fornisci un valore per preparedSecrets.namespace, non fornire 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 saperne di più, consulta Rotazione account di servizio account.
Per informazioni sull'aggiornamento delle credenziali vCenter, consulta Aggiornamento delle credenziali del cluster.
Esempio:
vCenter:
credentials:
fileRef:
path: "my-config-directory/my-credentials-2.yaml"
vCenter.credentials.fileRef.entry
Modificabile
Stringa
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
Immutabile
Stringa
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
Modificabile
Stringa
Valore predefinito: eredita dal cluster di amministrazione
Il percorso del file della chiave JSON per il 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 il service account di accesso ai componenti.
Esempio:
componentAccessServiceAccountKey:
secretRef:
version: "1"
privateRegistry
Compila questa sezione se il tuo cluster di amministrazione utilizza un Container Registry privato e vuoi che il tuo cluster utente utilizzi un registry privato o impostazioni diverse. Se vuoi utilizzare un indirizzo di registry privato diverso, il tuo cluster deve avere Controlplane V2 abilitato. Le nuove impostazioni vengono applicate durante la creazione e l'aggiornamento del cluster.
Se vuoi utilizzare le stesse impostazioni del cluster di amministrazione, rimuovi questa sezione o lasciala commentata. Se lasci vuota questa sezione, le immagini di sistema vengono impostate per impostazione predefinita su gcr.io/gke-on-prem-release.
privateRegistry.address
Immutabile
Stringa
Valore 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
Modificabile
Stringa
Valore predefinito: eredita dal cluster di amministrazione
Se prevedi di utilizzare un secret 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
Modificabile
Stringa
Valore predefinito: eredita dal cluster di amministrazione
Il nome del blocco di 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 secret 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
Modificabile
Stringa
Valore predefinito: eredita dal cluster di amministrazione
Quando Docker esegue il pull di un'immagine dal tuo registry privato, quest'ultimo 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 convalidare 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 utente.
network.hostConfig
1.30 e successive
Questa sezione contiene informazioni sui server NTP, sui server DNS e sui 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 sutrueo è consentito il valore predefinitotrue. Tieni presente che Controlplane V2 è obbligatorio per i nuovi cluster utente.
1.29 e versioni precedenti
Questa sezione contiene informazioni sui server NTP, sui server DNS e sui 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 tue VM Seesaw.
Questa sezione è obbligatoria se una o più delle seguenti condizioni sono vere:
network.ipMode.typeè impostato sustatic.enableControlplaneV2è impostato sutrueo è consentito il valore predefinitotrue. Il bilanciatore del carico 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 riferimento ora che le VM devono utilizzare.
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: "static"
Valore 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 del 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 tuo 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"
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 indirizzi esterni al cluster che vuoi raggiungere dall'interno del cluster.
Ad esempio, supponiamo che l'intervallo di servizi 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 interno al 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.
Questo è uno dei motivi per cui si consiglia di utilizzare indirizzi RFC 1918. Supponiamo che l'intervallo di pod o servizi contenga indirizzi IP esterni. Qualsiasi traffico inviato da un pod a uno di questi indirizzi esterni verrà trattato come traffico interno al 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 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
Immutabile
Stringa
Il nome della rete vSphere a cui si connetterà questa interfaccia 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 che contiene gli indirizzi IP da utilizzare per questa interfaccia di rete sui nodi che hanno questa interfaccia di rete.
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 quando esegui la migrazione da Controlplane V1 a Controlplane V2; altrimenti è facoltativo. I nomi host devono essere univoci in tutto vCenter.
Per un cluster utente ad alta affidabilità (HA), l'array ha tre elementi. Per un cluster utente non ad alta disponibilità, 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 se disableBundledIngress = false
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 tu abbia configurato o meno il cluster per l'utilizzo dei 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". Se vuoi utilizzare i domini di topologia, devi configurare un bilanciatore del carico di terze parti (come F5 BIG-IP o Citrix).Senza domini di 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. Facoltativamente, puoi configurare un tipo diverso di bilanciatore del carico per il traffico del control plane. Per saperne di più, consultamasterNode.controlPlaneLoadBalancer.
1,31
Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"
Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che tu abbia configurato o meno il cluster per l'utilizzo dei 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". Se vuoi utilizzare i domini di topologia, devi configurare un bilanciatore del carico di terze parti (come F5 BIG-IP o Citrix).Senza domini di 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.
Sebbene tu possa 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 Pianifica la migrazione del cluster alle funzionalità consigliate.
Esempio:
loadBalancer:
kind: "MetalLB"
1.29 e versioni 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 bilanciatore del carico di terze parti (come F5 BIG-IP o Citrix) o "MetalLB" per la nostra soluzione in bundle.
Esempio:
loadBalancer:
kind: "MetalLB"
Quando crei i 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, nel qual caso i cluster utente possono utilizzare MetalLB. Se vuoi che i cluster di amministrazione e utente utilizzino tipi diversi 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 la 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 un 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 in entrata 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 è esposto da un servizio di tipo LoadBalancer. Il servizio ha un ServicePort per HTTPS. Scegli un valore nodePort per il ServicePort HTTPS e imposta questo campo sul valore nodePort.
Nota sulla versione: nella versione 1.30 e successive, le porte dei nodi in entrata 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
Nella versione 1.30 e successive, il valore "F5BigIP" non è consentito per loadbalancer.kind per i nuovi cluster utente. Se la sezione loadBalancer.f5BigIP è presente nel file di configurazione, rimuovila o impostala come commento.
Puoi comunque utilizzare il bilanciatore del carico BIG-IP di F5 con i nuovi cluster utente, ma la configurazione è diversa. Per i dettagli sulla configurazione, consulta Attivazione della modalità di bilanciamento manuale del carico.
Se un cluster esistente ha questa sezione configurata, gli upgrade alla versione 1.32 sono bloccati. Devi eseguire la migrazione dei cluster alle funzionalità consigliate prima di eseguire l'upgrade alla versione 1.32.
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 attivare il bilanciamento manuale del carico, imposta loadbalancer.kind su "ManualLB" e compila la sezione loadBalancer.manualLB. Per saperne di più, consulta Attivazione della modalità di bilanciamento manuale del carico.
Se hai un bilanciatore del carico F5-BIG-IP esistente e la configurazione del cluster utilizza questa sezione, dopo aver eseguito l'upgrade alla versione 1.29 o successive, ti consigliamo di eseguire la migrazione al bilanciamento manuale del carico.
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 di 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 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 di 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 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 di 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 di 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
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
String
Il nome del pool SNAT.
Esempio:
loadBalancer:
f5BigIP:
snatPoolName: "my-snat-pool"
loadBalancer.seesaw
1.30 e successive
Nella versione 1.30 e successive, il valore "Seesaw" non è consentito per loadbalancer.kind per i nuovi cluster utente perché questo bilanciatore del carico non è supportato con funzionalità nuove e avanzate. Se la sezione loadBalancer.seesaw è presente nel file di configurazione, rimuovila o impostala come commento.
In alternativa, puoi configurare il bilanciatore del carico MetalLB integrato. 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.
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 un cluster di amministrazione ad alta affidabilità gestisce questo cluster utente, quest'ultimo non può utilizzare il bilanciatore 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 bilanciatore 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 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 del blocco IP per le VM 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 del blocco IP per le VM 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 Seesaw master.
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 Seesaw master.
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 di 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 di byte.
loadBalancer.seesaw.vCenter.networkName
1.30 e successive
Non consentito per i nuovi cluster
Immutabile
Stringa
Valore predefinito: uguale ai nodi del cluster
Il nome della rete vCenter che contiene le VM 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 Seesaw.
Esempio:
loadBalancer:
seesaw:
vCenter:
networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
1.30 e successive
Non consentito per i nuovi cluster
Immutabile
Rilevante se loadBalancer.kind = Seesaw
Booleano
Precompilato: false
Valore predefinito: false
Se vuoi creare un bilanciatore del carico Seesaw ad alta affidabilità (HA), imposta questo valore su true. In caso contrario, imposta questo valore su false. Un bilanciatore del carico Seesaw ad alta affidabilità 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
Valore predefinito: false
Se vuoi creare un bilanciatore del carico Seesaw ad alta affidabilità (HA), imposta questo valore su true. In caso contrario, imposta questo valore su false. Un bilanciatore del carico Seesaw ad alta affidabilità 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
Valore predefinito: true
Se impostato su true (consigliato), il bilanciatore del carico Seesaw non utilizza l'apprendimento MAC per il failover. Utilizza invece l'ARP spontaneo.
Se questo campo è impostato su false, il bilanciatore del carico Seesaw utilizza l'apprendimento MAC. Se utilizzi vSphere 7 o versioni successive e hai un bilanciatore del carico Seesaw ad alta affidabilità, 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 (consigliato), il bilanciatore del carico Seesaw non utilizza l'apprendimento MAC per il failover. Utilizza invece l'ARP spontaneo.
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 Seesaw ad alta affidabilità, 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 saperne di più, consulta 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 che deve essere utilizzato dal bilanciatore 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 è completamente 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 abilitato) o false (cluster avanzato non abilitato):
Se il cluster avanzato è abilitato: l'array non è completamente 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 clustering avanzato non è abilitato: l'array è modificabile. Puoi aggiungere e rimuovere pool di indirizzi da un array di pool di indirizzi esistente.
1.30 e versioni 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 attivato) o false (cluster avanzato non attivato).
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 abilitato) o false (cluster avanzato non abilitato):
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 versioni 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 con trattino.
1.32 e successive
Il comportamento di questo campo è lo stesso di quando
enableAdvancedCluster è impostato su
true (cluster avanzato attivato) o false (cluster avanzato non attivato).
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 abilitato) o false (cluster avanzato non abilitato):
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 versioni 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 dei dispositivi consumer con bug che interrompono 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
Pertinente se loadBalancer.kind = MetalLB
Modificabile
Booleano
Precompilato: false
Valore predefinito: false
Se non vuoi che il controller MetalLB assegni automaticamente gli indirizzi IP di questo pool ai servizi, imposta questo valore su true. In seguito, 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
Valore predefinito: false
Questo campo controlla la Container Network Interface (CNI) utilizzata dal cluster. Per utilizzare Controlplane V2, è necessario abilitare Dataplane V2. Puoi modificare il campo da false a true per abilitare Dataplane V2, ma non è consentito disabilitare Dataplane V2.
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 Esegui 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 per container (CNI) più avanzata e capace rispetto alla precedente opzione CNI, Calico. Calico è in modalità di 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 viene sviluppato e migliorato attivamente, garantendo l'accesso alle innovazioni e alle funzionalità di networking più recenti.
Dataplane V2 è la CNI preferita per GKE e altri prodotti Google Distributed Cloud.
1.29 e versioni precedenti
Immutabile
Booleano
Precompilato: true
Valore predefinito: false
Se vuoi attivare Dataplane V2 o se vuoi utilizzare Controlplane V2, imposta questo valore su true. In caso contrario, imposta questo valore su false.
Ti consigliamo di attivare Dataplane V2.
Esempio:
enableDataplaneV2: true
Per i passaggi per la risoluzione dei problemi, consulta Risolvi i problemi relativi a Google Distributed Cloud NFS e DataPlane v2.
dataplaneV2.forwardMode
Modificabile
Stringa
Valori possibili: "snat", "dsr"
Precompilato: "snat"
Valore predefinito: "snat"
La modalità di forwarding per un cluster con Dataplane V2 abilitato.
Con la modalità Network Address Translation dell'origine (SNAT), un pacchetto viene tradotto tramite 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à Direct Server Return (DSR), un pacchetto conserva l'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"
multipleNetworkInterfaces
Immutabile
Booleano
Precompilato: false
Valore 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 saperne di più, consulta Configura più interfacce di rete per i pod.
Esempio:
multipleNetworkInterfaces: true
advancedNetworking
Immutabile
boolean
Precompilato: false
Valore 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'Ingress in bundle per il cluster. In caso contrario, impostalo su false.
Booleano
Modificabile
Precompilato: false
Valore predefinito: false
Esempio:
disableBundledIngress: true
storage.vSphereCSIDisabled
Se vuoi disattivare il deployment dei componenti CSI vSphere, 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
Valore 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
Facoltativamente, 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é fare affidamento sul valore predefinito. Inoltre, devi impostare loadBalancer.kind nel file di configurazione per specificare il tipo di bilanciatore del carico da utilizzare per il piano dati.
masterNode.controlPlaneLoadBalancer.mode
Facoltativo
Immutabile
Stringa
Valore predefinito: dipende dal fatto che il cluster utilizzi o meno i domini di topologia
Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che tu abbia configurato o meno il cluster per l'utilizzo dei 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. Se vuoi utilizzare i domini di topologia, devi configurare un bilanciatore del carico di terze parti (come F5 BIG-IP o Citrix).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 che deve essere utilizzato dal cluster utente.
masterNode.cpus
Modificabile
Numero intero
Precompilato: 4
Predefinito: 4
Il numero di CPU per ogni nodo che funge da control plane per questo cluster utente.
Esempio:
masterNode: cpus: 8
masterNode.memoryMB
Modificabile
Numero intero
Precompilato: 8192
Valore predefinito: 8192
La memoria in mebibyte 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 di byte.
masterNode.replicas
Immutabile
Numero intero
Valori possibili: 1 o 3
Precompilato: 1
Valore predefinito: 1
Il numero di nodi del control plane per questo cluster utente. Questo numero non può essere modificato dopo la creazione del cluster. 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 affidabilità (HA).
Esempio:
masterNode: replicas: 3
masterNode.autoResize.enabled
Modificabile
Booleano
Precompilato: false
Valore 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 saperne di più, consulta Abilita 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 durante la migrazione di un datastore alla gestione basata su criteri di archiviazione (SPBM).
masterNode.vsphere.storagePolicyName
Facoltativo
Immutabile
Stringa
Valore predefinito: il valore di vCenter.storagePolicyName
Il nome di una policy di archiviazione delle VM per i nodi del control plane.
Per saperne di più, consulta Configura 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
Valore 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 (che indica che il cluster utilizzerà i domini di topologia), includi questo campo (facoltativo). Il numero di domini di topologia nell'array determina
il modo in cui viene eseguito il deployment dei nodi del control plane del cluster utente, come segue:
- Un elemento: tutti i nodi del control plane del cluster utente verranno dispiegati nel dominio di topologia specificato.
- Tre elementi: ogni nodo del control plane del cluster utente verrà distribuito in un dominio di topologia diverso (ovvero un nodo per dominio di topologia).
1,31
Anteprima
Facoltativo
Array di stringhe | È supportato un solo elemento
Immutabile
Valore 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 (che indica che il cluster utilizzerà i domini di topologia), includi questo campo (facoltativo). Il deployment dei nodi del control plane del cluster utente verrà eseguito nel dominio di topologia specificato.
1.30 e versioni precedenti
Non disponibile.
nodePools
Obbligatorio
Modificabile
Array di oggetti, ognuno dei quali descrive un pool di nodi.
Per saperne di più, consulta Creazione e gestione dei pool di nodi.
nodePools[i].name
Obbligatorio
Immutabile
Stringa
Un nome scelto da te per il node pool. Il nome 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 worker selezionati rimangano alla versione precedente.
Se vuoi che questo pool di nodi worker rimanga alla versione precedente, impostalo sulla versione precedente. In caso contrario, rimuovi questo campo o impostalo su una stringa vuota.
Questa opzione è disponibile solo per i pool di nodi worker. I node pool del bilanciatore del carico (node pool con enableLoadBalancer: true) devono corrispondere alla gkeOnPremVersion del cluster.
Per saperne di più, consulta Esegui l'upgrade di un cluster utente.
Modificabile
Stringa
Valore 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 memoria in mebibyte 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 di byte.
nodePools[i].replicas
Obbligatorio
Modificabile
Numero intero
Precompilato: 3
Valori possibili: il numero totale di nodi non contaminati 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
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
Modificabile
Stringa
Valori possibili: per le versioni 1.34 e precedenti: "ubuntu_containerd", "cos"
Per la versione 1.35 e successive: "ubuntu_cgv2", "cos_cgv2"
Precompilato: "ubuntu_cgv2"
Valore predefinito: "ubuntu_cgv2"
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 sistema operativo sui nuovi cluster.
Tieni presente la seguente limitazione per i cluster avanzati:
Versione 1.31: se il campo
enableAdvancedClusterètrue, soloubuntu-cgroupv2eubuntu_containerdsono supportati sui cluster avanzati.Versione 1.32: tutti i tipi di immagini sistema operativo, ad eccezione di "windows", sono supportati sui 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 template di VM Windows. Il template deve essere basato su un'ISO di Windows Server 2019 con il tag di lingua/regione en-US.
Per saperne di più, consulta la guida dell'utente per i node pool del sistema operativo Windows Server.
nodePools[i].labels
Mappatura
modificabile
Etichette da applicare a ogni oggetto Node di Kubernetes nel pool.
Esempio:
nodePools:
- name: "my-node-pool"
labels:
environment: "production"
tier: "cache"
Per motivi di sicurezza, il kubelet non può applicare etichette a se stesso in determinati spazi dei nomi.
I namespace delle etichette dei nodi riservati sono : kubernetes.io, k8s.io, googleapis.com.
nodePools[i].taints
Modificabile
Array di oggetti, ognuno dei quali descrive un
taint di Kubernetes applicato a ogni
nodo nel 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
Modificabile
Stringa
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
Modificabile
Stringa
Valore predefinito: il valore di vCenter.storagePolicyName
Il nome di una policy di archiviazione delle VM per i nodi nel pool.
Per saperne di più, consulta Configura 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à host VM.
Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, configura i gruppi di host nel campo topologyDomains[i].compute.hostGroups del file di configurazione dell'infrastruttura vSphere.
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 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 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 or Unassign vSphere Tag
- vSphere Tagging.Assign or Unassign vSphere Tag on Object (vSphere 7)
nodePools[i].autoscaling
Modificabile
Se vuoi attivare 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 il gestore della 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
Valore 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 l'esecuzione dello speaker MetalLB 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 abilitato) o false (cluster avanzato non abilitato):
Se il cluster avanzato è abilitato: questo campo non ha alcun effetto perché lo speaker MetalLB verrà sempre eseguito sui nodi del control plane del cluster utente.
Se il cluster avanzato non è abilitato: imposta questo valore su
truese vuoi consentire all'altoparlante MetalLB di essere eseguito sui nodi nel pool. In caso contrario, impostalo sufalse.
1.29 e versioni precedenti
Imposta questo valore su true se vuoi consentire l'esecuzione dello speaker MetalLB sui nodi nel pool. In caso contrario, impostalo su false.
Per saperne di più, consulta 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 o un upgrade.
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 abilita i domini di topologia), includi questo campo, se vuoi.
Array di stringhe | È supportato un solo elemento
Immutabile
Valore predefinito: vSphereInfraConfig.defaultTopologyDomain se specificato nel
file di configurazione dell'infrastruttura vSphere
I nodi di questo pool di nodi verranno inseriti nel dominio della topologia specificato da questo campo. Per ogni pool di nodi è consentito un solo dominio di topologia. Tutti i nodi di un pool di nodi verranno inseriti in un unico dominio di topologia.
1.30 e versioni precedenti
Non disponibile.
schedulerConfiguration
1.32 e successive
Anteprima
Facoltativo
Quando configuri i domini di topologia,
puoi facoltativamente configurare impostazioni aggiuntive che verranno passate 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 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 su di essa 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
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 da distribuirle in almeno tre host ESXi fisici del tuo data center.
Questa funzionalità richiede che l'ambiente vSphere soddisfi le seguenti condizioni:
VMware DRS è abilitato. VMware DRS richiede l'edizione 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 disponibili.
Ricorda che se hai una licenza vSphere Standard, non puoi attivare VMware DRS.
Se non hai attivato 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 per i cluster avanzati:
Versione 1.31: se il campo
enableAdvancedClusterètrue, le regole di anti-affinità non sono supportate sui cluster avanzati e devi impostareantiAffinityGroups.enabledsufalse.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 saperne di più, consulta Abilita il monitoraggio delle VM.
Esempio:
enableVMTracking: true
nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate
Mutable
Integer
Il numero di pool di nodi da aggiornare alla volta. Un valore 1 specifica che è possibile aggiornare un pool di nodi alla volta. Un valore pari a 0 specifica che è possibile aggiornare un numero illimitato di node pool alla volta.
Cluster avanzato
Tieni presente la seguente limitazione per i cluster avanzati:
Versione 1.31: se il campo
enableAdvancedClusterètrue, le policy di aggiornamento dei pool di nodi non sono supportate sui 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.
Il valore predefinito di
maximumConcurrentNodePoolUpdatevaria in base alla versione:- Versione 1.32.0-1.32.1000 : il valore predefinito è
1. - Versione 1.32.1100 e successive: il valore predefinito è
0. - Versione 1.33.0-1.33.600: il valore predefinito è
1. - Versione 1.33.700 e successive: il valore predefinito è
0. - Versione 1.34.0-1.34.200: il valore predefinito è
1. - Versione 1.34.300 e successive: il valore predefinito è
0.
- Versione 1.32.0-1.32.1000 : il valore predefinito è
Cluster non avanzato
Valori possibili: 0 o 1
Precompilato: 0
Valore predefinito: 0
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 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
Cluster avanzato
authentication.oidc.issuerURL
(Facoltativo)
String
URL a cui vengono inviate le richieste di autorizzazione al tuo provider OpenID Connect (OIDC). Il server API Kubernetes utilizza questo URL per rilevare le chiavi pubbliche per la verifica dei token. L'URL deve utilizzare HTTPS.
authentication.oidc.kubectlRedirectURL
(Facoltativo)
String
L'URL di reindirizzamento utilizzato da kubectl per l'autorizzazione. Quando attivi OIDC, devi specificare un valore kubectlRedirectURL.
authentication.oidc.clientID
(Facoltativo)
String
L'ID dell'applicazione client che effettua le richieste di autenticazione al provider OpenID.
authentication.oidc.username
(Facoltativo)
String
Attestazione JWT (JSON Web Token) da utilizzare come nome utente.
authentication.oidc.usernamePrefix
(Facoltativo)
String
Prefisso anteposto alle attestazioni dei nomi utente.
authentication.oidc.group
(Facoltativo)
String
Attestazione JWT (JSON Web Token) utilizzata dal provider per restituire i tuoi gruppi di sicurezza.
authentication.oidc.groupPrefix
(Facoltativo)
String
Prefisso anteposto alle attestazioni dei gruppi per evitare conflitti con i nomi esistenti.
Ad esempio, dato un gruppo dev e un prefisso oidc:, oidc:dev.
authentication.oidc.scopes
(Facoltativo)
String
Ambiti aggiuntivi da inviare a OIDC come elenco separato da virgole.
authentication.oidc.extraParams
(Facoltativo)
String
Parametri coppia chiave-valore aggiuntivi da inviare a OIDC sotto forma di elenco separato da virgole.
authentication.oidc.deployCloudConsoleProxy
Facoltativo
Booleano
Valore predefinito: false
Specifica se nel cluster è stato eseguito il deployment di un reverse proxy per connettere la consoleGoogle Cloud a un provider di identità on-premise non accessibile pubblicamente su internet. Se il tuo provider di identità non è raggiungibile tramite internet pubblico, imposta questo campo su true per eseguire l'autenticazione con la consoleGoogle Cloud .
authentication.oidc.caPath
(Facoltativo)
String
Il percorso assoluto o relativo del file CA.
Cluster non avanzato
Don't use this section. Dopo la creazione del cluster, modifica la risorsa personalizzata ClientConfig come descritto in Configura i cluster di appartenenza al parco risorse per l'autenticazione OIDC.
authentication.sni
Se vuoi fornire un certificato di gestione aggiuntivo per il server API Kubernetes del cluster, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.
authentication.sni.certPath
Immutabile
Stringa
Il percorso di un certificato di gestione per il server API Kubernetes.
Esempio:
authentication:
sni:
certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
Facoltativo
Immutabile
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 service account Google Cloud che vuoi utilizzare per registrare il tuo cluster in un parco risorse Google Cloud .
gkeConnect.projectID
Obbligatorio
Immutabile
Stringa
L'ID del tuo progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve essere lo stesso dell'ID impostato in stackdriver.projectID e cloudAuditLogging.projectID. Se gli ID progetto non sono gli stessi, la creazione del cluster non va a buon fine. Questo requisito non viene applicato ai cluster esistenti.
Esempio:
gkeConnect: projectID: "my-fleet-host-project"
gkeConnect.location
Immutabile
Stringa
Valore predefinito: global
L'appartenenza al parco risorse di ogni cluster è gestita dal servizio Fleet (gkehub.googleapis.com) e dal servizio Connect (gkeconnect.googleapis.com). La località dei servizi può essere globale o regionale. Nella versione 1.28 e successive, puoi facoltativamente specificare 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 API GKE On-Prem, 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.clusterLocationegkeOnPremAPI.location. Se le regioni non sono le stesse, 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 service account 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 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 il service account connect-register.
Esempio:
gkeConnect:
registerServiceAccountKey:
secretRef:
version: "1"
gkeOnPremAPI
Nella versione 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 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.enabledsufalse. 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 Disabilitare 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 i comandi gcloud per ottenere informazioni sul tuo cluster utente.
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
Valore predefinito: true
Per impostazione predefinita, il cluster viene registrato nell'API GKE On-Prem se l'API GKE On-Prem è abilitata nel tuo progetto. Imposta su false se non vuoi registrare il cluster.
Dopo aver registrato il cluster nell'API GKE On-Prem, se devi annullare la registrazione del cluster, apporta la seguente modifica e poi aggiorna il cluster:
gkeOnPremAPI: enabled: false
gkeOnPremAPI.location
Immutabile
Stringa
Valore 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
Modificabile
Questa sezione contiene le configurazioni richieste per Cloud Logging e Cloud Monitoring.
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 essere lo stesso dell'ID impostato in gkeConnect.projectID e cloudAuditLogging.projectID. Se gli ID progetto non sono gli stessi, la creazione del cluster non va a buon fine. Questo requisito non viene applicato ai cluster esistenti.
Se necessario, puoi configurare un router dei log in questo progetto per instradare i log ai bucket di log in un altro progetto. Per informazioni su come configurare il router dei log, consulta 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.
Puoi specificare la posizione di archiviazione e il routing 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 ed Metrics Explorer.
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 le stesse, la creazione del cluster non va a buon fine.
Esempio:
stackdriver: clusterLocation: "us-central1"
stackdriver.serviceAccountKeyPath
Obbligatorio per Logging e Monitoring
Modificabile
Stringa
Il percorso del file della chiave JSON per il account di servizio di logging-monitoring.
Per aggiornare il valore di questo campo, utilizza gkectl update cluster.
Per informazioni sulla modifica della chiave del account di servizio di logging-monitoring, consulta 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 il service account di monitoraggio del logging.
Esempio:
stackdriver:
serviceAccountKey:
secretRef:
version: "1"
stackdriver.disableVsphereResourceMetrics
Modificabile
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
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 Anthos Cluster Utilization Metering 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à in 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, Misurazione dell'utilizzo dei cluster Anthos, per comprendere l'utilizzo delle risorse a diversi livelli.
Se il campo enableAdvancedCluster è
true, rimuovi questa sezione. La misurazione dell'utilizzo non è supportata sui cluster avanzati.
1.29 e versioni precedenti
Anteprima
Immutabile
Ti consigliamo di non utilizzare questa funzionalità in 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, Misurazione dell'utilizzo dei cluster Anthos, 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 dello spazio di archiviazione.
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, consulta 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, 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
Immutabile
Stringa
L'ID del tuo progetto host del parco risorse.
Per i nuovi cluster, questo ID progetto deve essere lo stesso dell'ID impostato in gkeConnect.projectID e stackdriver.projectID. Se gli ID progetto non sono gli stessi, la creazione del cluster non va a buon fine. Questo requisito non viene applicato ai cluster esistenti.
Se necessario, puoi configurare un router dei log in questo progetto per instradare i log ai bucket di log in un altro progetto. Per informazioni su come configurare il router dei log, consulta 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 impostata qui deve essere la stessa impostata in gkeConnect.location, gkeOnPremAPI.location e stackdriver.clusterLocation. Se le regioni non sono le stesse, 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 crei 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 audit logging, consulta 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 il service account di audit logging.
Esempio:
cloudAuditLogging:
serviceAccountKey:
secretRef:
version: "1"
autoRepair.enabled
Facoltativo
Modificabile
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
Compila questa sezione se vuoi criptare i secret senza la necessità di un KMS (Key Management Service) esterno o di altre dipendenze. In caso contrario, rimuovi questa sezione o lasciala commentata.
Se crei 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 dei 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 sempre attiva.
Esempio:
secretsEncryption:
generatedKey:
keyVersion: 1
secretsEncryption.generatedKey.disabled
Modificabile
Booleano
Precompilato: false
Imposta questo valore su true per disabilitare 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 sempre attiva.
Esempio:
secretsEncryption:
generatedKey:
disabled: false