File di configurazione del cluster utente 1.30 e versioni successive

Questo documento descrive i campi del file di configurazione del cluster utente per Google Distributed Cloud versione 1.30 e successive.

Generazione di un modello per il file di configurazione

Se hai utilizzato gkeadm per creare la workstation di amministrazione, gkeadm ha generato un modello per il file di configurazione del cluster utente. Inoltre, gkeadm ha compilato alcuni campi per te.

Se non hai utilizzato gkeadm per creare la workstation di amministrazione, puoi utilizzare gkectl per generare un modello per il file di configurazione del cluster utente.

Per generare un modello per il file di configurazione del cluster utente:

gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION

Sostituisci quanto segue:

OUTPUT_FILENAME: un percorso a tua scelta per il template generato. Se ometti questo flag, gkectl denomina il file user-cluster.yaml e lo inserisce nella directory corrente.

VERSION: il numero di versione di Google Distributed Cloud. Ad esempio: gkectl create-config cluster --gke-on-prem-version=1.32.100-gke.106.

Modello

Campi obbligatori e valori predefiniti

Se un campo è contrassegnato come Obbligatorio, il file di configurazione completato deve avere un valore compilato per il campo.

Alcuni campi sono obbligatori in base a determinate condizioni. Ad esempio, loadBalancer.metalLB.addressPools è obbligatorio se loadBalancer.kind è uguale a MetalLB.

Se per un campo viene specificato un valore Predefinito, il cluster utilizzerà quel valore se non inserisci nulla nel campo. Puoi eseguire l'override di un valore predefinito inserendo un valore.

Se un campo non è contrassegnato come obbligatorio, è facoltativo. Puoi compilarlo se è pertinente per te, ma non è obbligatorio.

Compilare il file di configurazione

Nel file di configurazione, inserisci i valori dei campi come descritto nelle sezioni seguenti.

enableAdvancedCluster

1.32 e successive

Facoltativo
Modificabile (è consentito da false a true)
Booleano
Precompilato: true
Valore predefinito: true

Imposta enableAdvancedCluster su false se non vuoi abilitare il cluster avanzato quando crei un nuovo cluster. Quando questo flag è impostato su true (cluster avanzato abilitato), il software Google Distributed Cloud sottostante esegue il deployment di controller che consentono un'architettura più estensibile. L'attivazione del cluster avanzato ti consente di accedere a nuove funzionalità e capacità, come i domini di topologia. Questo campo deve avere lo stesso valore del campo enableAdvancedCluster del cluster amministratore.

Assicurati di esaminare le differenze quando esegui cluster avanzati prima di attivare il cluster avanzato.

Per aggiornare un cluster esistente a un cluster avanzato, vedi Aggiornare un cluster a un cluster avanzato. Dopo l'aggiornamento al cluster avanzato, la disattivazione non è consentita.

1,31

Disponibile solo per i nuovi cluster
Anteprima
Facoltativo
Immutabile
Booleano
Precompilato: false
Predefinito: false

Imposta enableAdvancedCluster su true se vuoi abilitare il cluster avanzato quando crei un nuovo cluster. Quando questo flag è impostato su true (cluster avanzato abilitato), il software Google Distributed Cloud sottostante esegue il deployment di controller che consentono un'architettura più estensibile. L'attivazione del cluster avanzato ti consente di accedere a nuove funzionalità e capacità, come i domini di topologia. Questo campo deve avere lo stesso valore del campo enableAdvancedCluster del cluster amministratore.

1,30 e inferiore

Non disponibile.

name

Obbligatorio
Stringa

Un nome a tua scelta per il cluster utente. Il nome deve:

  • Deve contenere al massimo 40 caratteri.
  • contenere solo caratteri alfanumerici minuscoli o un trattino (-)
  • iniziare con un carattere alfabetico
  • terminare con un carattere alfanumerico

Esempio:

name: "my-user-cluster"

gkeOnPremVersion

Obbligatorio
Modificabile
Stringa

La versione di Google Distributed Cloud per il cluster utente.

Esempio:

gkeOnPremVersion: "1.29.0-gke.1456"

preparedSecrets.namespace

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, rimuovi questo campo. Altrimenti, se vuoi utilizzare credenziali preparate, compila questo campo.

Immutabile
Stringa
Valori possibili: una stringa che inizia con "gke-onprem-secrets-"

Il nome di uno spazio dei nomi Kubernetes nel cluster di amministrazione in cui sono archiviati i secret preparati per questo cluster utente.

Esempio:

preparedSecrets:
  namespace: "gke-onprem-secrets-alice"

enableControlplaneV2

1.30 e successive

Modificabile (è consentito da false a true)
Booleano
Precompilato: true
Valore predefinito: true

Nella versione 1.30 e successive, Controlplane V2 è obbligatorio per i nuovi cluster utente. Se includi questo campo nel file di configurazione, deve essere impostato su true.

Per eseguire la migrazione di un cluster esistente a Controlplane V2, consulta Eseguire la migrazione di un cluster utente alle funzionalità consigliate. Dopo la migrazione a Controlplane V2, la disattivazione di Controlplane V2 non è consentita.

Con Controlplane V2, il control plane per un cluster utente viene eseguito su uno o più nodi nel cluster utente stesso. I vantaggi di Controlplane V2 includono:

  • Coerenza dell'architettura tra cluster di amministrazione e cluster utente.

  • Isolamento degli errori. Un errore del cluster di amministrazione non influisce sui cluster utente.

  • Separazione operativa. L'upgrade di un cluster di amministrazione non causa tempi di inattività per i cluster utente.

  • Separazione del deployment. Puoi inserire i cluster di amministrazione e utente in domini di errore o siti geografici diversi. Ad esempio, un cluster utente in una posizione edge potrebbe trovarsi in un sito geografico diverso da quello del cluster di amministrazione.

1,29 e versioni precedenti

Immutabile
Booleano
Precompilato: true
Valore predefinito: true

Per attivare Controlplane V2, imposta enableControlplaneV2 su true o rimuovi l'impostazione dal file di configurazione del cluster utente. In caso contrario, impostalo su false. Con Controlplane V2, il control plane per un cluster utente viene eseguito su uno o più nodi nel cluster utente stesso. Se Controlplane V2 non è abilitato, il control plane del cluster utente viene eseguito nel cluster di amministrazione.

Ti consigliamo di abilitare Controlplane V2.

Esempio:

enableControlplaneV2: true

vCenter

Questa sezione contiene informazioni sull'ambiente vSphere e sulla connessione a vCenter Server.

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, rimuovi l'intera sezione.

Se hai incluso la sezione vCenter nel file di configurazione del cluster di amministrazione:

  • Se vuoi che un campo di questa sezione sia uguale a quello specificato per il cluster amministratore, rimuovi il campo o lascialo commentato.

  • Se vuoi che un campo sia diverso da quello specificato per il cluster amministrativo, compilalo qui. I campi che compili qui nella sezione vCenter ignorano i campi corrispondenti nel file di configurazione del cluster di amministrazione.

vCenter.address

Immutabile
Stringa
Predefinito: eredita dal cluster di amministrazione

L'indirizzo IP o il nome host dell'istanza di vCenter Server che vuoi utilizzare per questo cluster utente.

Per ulteriori informazioni, vedi Trovare l'indirizzo del server vCenter.

Se specifichi un valore diverso dall'istanza di vCenter Server utilizzata dal cluster di amministrazione, allora Controlplane V2 deve essere abilitato e devi fornire valori per network.vCenter.networkName e per tutti i campi obbligatori nella sezione vCenter.

Esempi:

vCenter:
  address: "203.0.113.101"
vCenter:
  address: "my-vcenter-server-2.my-domain.example"

vCenter.datacenter

Immutabile
Stringa
Predefinito: ereditato dal cluster di amministrazione

Il percorso relativo di un data center vSphere.

Se specifichi un valore per questo campo, devi specificare anche:

  • vCenter.networkName
  • vCenter.datastore o vCenter.storagePolicyName
  • vCenter.cluster o vCenter.resourcePool

Il valore specificato è relativo alla cartella principale denominata /.

Se il data center si trova nella cartella radice, il valore è il nome del data center.

Esempio:

vCenter:
  datacenter: "my-uc-data-center"

In caso contrario, il valore è un percorso relativo che include una o più cartelle insieme al nome del data center.

Esempio:

vCenter:
  datacenter: "data-centers/data-center-2"

vCenter.cluster

Immutabile
Stringa
Predefinito: eredita dal cluster di amministrazione

Il percorso relativo di un cluster vSphere che rappresenta gli host ESXi su cui verranno eseguite le VM del cluster utente. Questo cluster vSphere rappresenta un sottoinsieme degli host ESXi fisici nel tuo data center vCenter.

Se specifichi un valore per questo campo, devi specificare anche:

  • vCenter.networkName
  • vCenter.datacenter
  • vCenter.datastore o vCenter.storagePolicyName

Il valore specificato è relativo a /.../DATA_CENTER/vm/.

Se il cluster vSphere si trova nella cartella /.../DATA_CENTER/vm/, il valore è il nome del cluster vSphere

Esempio:

vCenter:
  cluster: "my-uc-vsphere-cluster"

In caso contrario, il valore è un percorso relativo che include una o più cartelle insieme al nome del cluster vSphere.

Esempio:

vCenter:
  cluster: "clusters/vsphere-cluster-2"

vCenter.resourcePool

Immutabile
Stringa
Predefinito: eredita dal cluster di amministrazione

Un pool di risorse vCenter per le VM del cluster utente.

Se vuoi utilizzare il pool di risorse predefinito, imposta questo valore su VSPHERE_CLUSTER/Resources.

Esempio:

vCenter:
  resourcePool: "my-uc-vsphere-cluster/Resources"

Il valore specificato è relativo a /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/

Se il pool di risorse è un elemento secondario diretto di /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/ il valore è il nome del pool di risorse.

Esempio:

vCenter:
  resourcePool: "my-uc-resource-pool"

In caso contrario, il valore è un percorso relativo con due o più pool di risorse.

Esempio:

vCenter:
  resourcePool: "uc-resource-pool-1/uc-resource-pool-2"

vCenter.datastore

Facoltativo
Immutabile
Stringa
Predefinito: ereditato dal cluster di amministrazione

Il nome di un datastore vSphere per il tuo cluster utente.

Il valore specificato deve essere un nome, non un percorso. Non includere cartelle nel valore.

Esempio:

vCenter:
  datastore: "my-datastore"

Se specifichi un valore per questo campo, non specificare un valore per vCenter.storagePolicyName. Il campo vCenter.datastore è immutabile, tranne quando lo imposti su una stringa vuota durante la migrazione di un datastore a SPBM (Storage Policy Based Management).

vCenter.storagePolicyName

(Facoltativo)
(Immutabile)
Stringa

Il nome di un criterio di archiviazione VM per i nodi del cluster.

Puoi anche specificare un criterio di archiviazione VM per i nodi di un determinato pool di nodi. Tuttavia, le norme specificate qui si applicano a qualsiasi pool di nodi che non disponga di proprie norme.

Per saperne di più, consulta Configurare una policy di archiviazione.

Se specifichi un valore per questo campo, non specificare un valore per vCenter.datastore.

vCenter.caCertPath

Mutable
String
Default: Inherit from the admin cluster

Il percorso del certificato CA per il server vCenter. Per saperne di più, consulta Ottenere il certificato CA di vCenter.

Esempio:

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert-2.pem"

Per informazioni su come aggiornare questo campo, vedi Aggiornare i riferimenti ai certificati vCenter.

vCenter.credentials.fileRef.path

Mutable
String
Default: Inherit from the admin cluster

Se fornisci un valore per preparedSecrets.namespace, non specificare un valore per questo campo. Fornisci invece un valore per vCenter.credentials.secretRef.version.

Il percorso di un file di configurazione delle credenziali che contiene il nome utente e la password del tuo account utente vCenter. L'account utente deve disporre del ruolo Amministratore o di privilegi equivalenti. Consulta i requisiti di vSphere.

Puoi utilizzare gkectl update credentials per aggiornare questo campo in un cluster esistente. Per ulteriori informazioni, consulta la sezione Rotazione delle chiavi del service account.

Per informazioni sull'aggiornamento delle credenziali vCenter, vedi Aggiornamento delle credenziali del cluster.

Esempio:

vCenter:
  credentials:
    fileRef:
      path: "my-config-directory/my-credentials-2.yaml"

vCenter.credentials.fileRef.entry

Mutable
String
Default: Inherit from the admin cluster

Il nome del blocco delle credenziali nel tuo file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account utente vCenter.

Esempio:

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-credentials-2"

vCenter.credentials.secretRef.version

Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"

Se fornisci un valore per preparedSecrets.namespace, compila questo campo. In caso contrario, rimuovi questo campo o lascialo commentato.

La versione di un secret preparato nel cluster di amministrazione che contiene il nome utente e la password per l'istanza di vCenter Server che intendi utilizzare per questo cluster utente.

Esempio:

vCenter:
  credentials:
    secretRef:
      version: "1"

vCenter.folder

Immutabile
Stringa
Predefinito: ereditato dal cluster di amministrazione

Il percorso relativo di una cartella vSphere che hai già creato. Questa cartella conterrà le VM del cluster utente.

Se non specifichi un valore, le VM del cluster utente verranno inserite in /.../DATA_CENTER/vm/.

Se specifichi un valore, questo è relativo a /.../DATA_CENTER/vm/.

Il valore può essere il nome di una cartella.

Esempio:

vCenter:
  folder: "my-uc-folder"

In alternativa, il valore può essere un percorso relativo che include più di una cartella.

Esempio:

vCenter:
  folder: "folders/folder-2"

componentAccessServiceAccountKeyPath

Mutable
String
Default: Inherit from the admin cluster

Il percorso del file della chiave JSON per l'account di servizio di accesso ai componenti.

Esempio:

componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"

componentAccessServiceAccountKey.secretRef.version

Modificabile
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"

La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per l'account di servizio di accesso ai componenti.

Esempio:

componentAccessServiceAccountKey:
  secretRef:
    version: "1"

privateRegistry

Compila questa sezione se il tuo cluster di amministrazione utilizza un registro dei container privato e vuoi che il tuo cluster utente utilizzi un registro privato diverso o impostazioni diverse. Se vuoi utilizzare un indirizzo del registro privato diverso, il tuo cluster deve avere Controlplane V2 abilitato. Le nuove impostazioni vengono selezionate durante la creazione e l'aggiornamento del cluster.

Se vuoi utilizzare le stesse impostazioni del cluster di amministrazione, rimuovi questa sezione o lasciala commentata.

privateRegistry.address

Immutabile
Stringa
Predefinito: eredita dal cluster di amministrazione

L'indirizzo IP o il nome di dominio completo (FQDN) della macchina che esegue il tuo registro Docker privato.

Esempi:

privateRegistry:
  address: "203.0.113.10"
privateRegistry:
  address: "fqdn.example.com"

privateRegistry.credentials.fileRef.path

Mutable
String
Default: Inherit from the admin cluster

Se prevedi di utilizzare il secret preparato per il registro privato, non fornire un valore per questo campo. Fornisci invece un valore per privateRegistry.credentials.secretRef.version.

Il percorso di un file di configurazione delle credenziali che contiene il nome utente e la password di un account che Google Distributed Cloud può utilizzare per accedere al tuo registro Docker privato.

Esempio:

privateRegistry:
  credentials:
    fileRef:
      path: "my-config-folder/admin-creds.yaml"

privateRegistry.credentials.fileRef.entry

Mutable
String
Default: Inherit from the admin cluster

Il nome del blocco delle credenziali nel tuo file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account del registro Docker privato.

privateRegistry:
  credentials:
    fileRef:
      entry: "private-registry-creds"

privateRegistry.credentials.secretRef.version

Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"

Se fornisci un valore per preparedSecrets.namespace e vuoi utilizzare il secret preparato per un registro privato, compila questo campo. In caso contrario, rimuovi questo campo o lascialo commentato.

La versione di un secret preparato nel cluster di amministrazione che contiene il nome utente e la password per l'istanza di vCenter Server che intendi utilizzare per questo cluster utente.

Esempio:

privateRegistry:
  credentials:
    secretRef:
      version: "1"

privateRegistry.caCertPath

Mutable
String
Default: Inherit from the admin cluster

Quando Docker estrae un'immagine dal tuo registro privato, il registro deve dimostrare la sua identità presentando un certificato. Il certificato del registro è firmato da un'autorità di certificazione (CA). Docker utilizza il certificato della CA per convalidare il certificato del registro.

Imposta questo campo sul percorso del certificato della CA.

Esempio:

privateRegistry:
  caCertPath: "my-cert-folder/registry-ca.crt"

network

Questa sezione contiene informazioni sulla rete del cluster utente.

network.hostConfig

1.30 e successive

Questa sezione contiene informazioni su server NTP, server DNS e domini di ricerca DNS utilizzati dalle VM corrispondenti ai nodi del cluster.

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione (disponibile nella versione 1.31 e successive), rimuovi l'intera sezione. In caso contrario, questa sezione è obbligatoria se una o più delle seguenti condizioni sono vere:

  • network.ipMode.type è impostato su static.
  • enableControlplaneV2 è impostato su true o è consentito il valore predefinito true. Tieni presente che Controlplane V2 è necessario per i nuovi cluster utente.

1,29 e versioni precedenti

Questa sezione contiene informazioni su server NTP, server DNS e domini di ricerca DNS utilizzati dalle VM corrispondenti ai nodi del cluster. Se utilizzi il bilanciatore del carico di Seesaw, queste informazioni si applicano anche alle tue VM Seesaw.

Questa sezione è obbligatoria se una o più delle seguenti condizioni sono vere:

  • network.ipMode.type è impostato su static.
  • enableControlplaneV2 è impostato su true o è consentito il valore predefinito true. Il bilanciatore del carico di Seesaw non è supportato sui cluster con Controlplane V2 abilitato.
  • loadBalancer.kind è impostato su "Seesaw".

network.hostConfig.dnsServers

Obbligatorio
Immutabile
Array di stringhe.
Il numero massimo di elementi nell'array è tre.

Gli indirizzi dei server DNS delle VM.

Esempio:

network:
  hostConfig:
    dnsServers:
    - "172.16.255.1"
    - "172.16.255.2"

network.hostConfig.ntpServers

Obbligatorio
Immutabile
Array di stringhe

Gli indirizzi dei server di sincronizzazione dell'ora da utilizzare per le VM.

Esempio:

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Immutabile
Array di stringhe

I domini di ricerca DNS utilizzabili dagli host. Questi domini vengono utilizzati come parte di un elenco di ricerca di domini.

Esempio:

network:
  hostConfig:
    searchDomainsForDNS:
    - "my.local.com"

network.ipMode.type

Immutabile
Stringa
Precompilato: "statico"
Predefinito: "dhcp"

Se vuoi che i nodi del cluster ricevano l'indirizzo IP da un server DHCP, imposta questo valore su "dhcp". Se vuoi che i nodi del cluster abbiano indirizzi IP statici scelti da un elenco che fornisci, imposta questo valore su "static". Se enableControlplaneV2 è impostato su true, questa impostazione si applica solo ai nodi worker.

Esempio:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Questo campo è obbligatorio se network.ipMode.type = static o se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione.

Immutabile
Stringa

Il percorso assoluto o relativo del file di blocco IP per il tuo cluster.

Esempio:

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"

network.serviceCIDR

Immutabile
Stringa
Precompilato: "10.96.0.0/20"
>

Un intervallo di indirizzi IP, in formato CIDR, da utilizzare per i servizi nel cluster. Deve essere un intervallo di almeno /24.

Esempio:

network:
  serviceCIDR: "10.96.0.0/20"

network.podCIDR

Immutabile
Stringa
Precompilato: "192.168.0.0/16"
Predefinito: "192.168.0.0/16"

Un intervallo di indirizzi IP, in formato CIDR, da utilizzare per i pod nel cluster. Deve essere un intervallo di almeno /18.

Esempio:

network:
  podCIDR: "192.168.0.0/16"

L'intervallo di servizi non deve sovrapporsi all'intervallo di pod.

Gli intervalli di servizi e pod non devono sovrapporsi a indirizzi esterni al cluster che vuoi raggiungere dall'interno del cluster.

Ad esempio, supponiamo che l'intervallo di servizio sia 10.96.232.0/24 e l'intervallo di pod sia 192.168.0.0/16. Qualsiasi traffico inviato da un pod a un indirizzo in uno di questi intervalli verrà trattato come traffico in-cluster e non raggiungerà alcuna destinazione al di fuori del cluster.

In particolare, gli intervalli di servizi e pod non devono sovrapporsi a:

  • Indirizzi IP dei nodi in qualsiasi cluster

  • Indirizzi IP utilizzati dalle macchine del bilanciatore del carico

  • VIP utilizzati dai nodi del control plane e dai bilanciatori del carico

  • Indirizzo IP dei server vCenter, dei server DNS e dei server NTP

Ti consigliamo di utilizzare intervalli di servizi e pod nello spazio di indirizzi RFC 1918.

Ecco un motivo per cui è consigliabile utilizzare gli indirizzi RFC 1918. Supponiamo che l'intervallo di pod o servizi contenga indirizzi IP esterni. Il traffico inviato da un pod a uno di questi indirizzi esterni verrà trattato come traffico in-cluster e non raggiungerà la destinazione esterna.

network.vCenter.networkName

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, rimuovi questo campo. In caso contrario, questo campo è obbligatorio se vCenter.address è diverso dall'indirizzo vCenter che utilizzi per il cluster di amministrazione.

Immutabile
Stringa

Il nome della rete vSphere per i nodi del cluster utente.

Esempio:

network:
  vCenter:
    networkName: "my-network"

Se il nome contiene un carattere speciale, devi utilizzare una sequenza di escape.

Caratteri speciali Sequenza di escape
Barra (/) %2f
Barra rovesciata (\) %5c
Simbolo della percentuale (%) %25

Se il nome della rete non è univoco nel data center, puoi specificare un percorso completo.

Esempio:

network:
  vCenter:
    networkName: "/my-uc-datacenter/network/my-network"

network.additionalNodeInterfaces

Se imposti multipleNetworkInterfaces su true, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

Immutabile

Un array di oggetti, ognuno dei quali descrive un'interfaccia di rete che può essere utilizzata su tutti o alcuni nodi del cluster.

network.additionalNodeInterfaces[i].networkName

Obbligatorio se multipleNetworkInterfaces = true
Immutabile
Stringa

Il nome della rete vSphere a cui si connetterà questa interfaccia di nodo aggiuntiva.

Esempio:

network:
  additionalNodeInterfaces:
  - networkName: "my-node-interface-1"

network.additionalNodeInterfaces[i].type

Obbligatorio se multipleNetworkInterfaces = true
Immutabile
Stringa

Esempio:

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"

network.additionalNodeInterfaces[i].ipBlockFilePath

Obbligatorio se network.additionalNodeInterfaces[i].type = static
Immutabile
Stringa

Il percorso di un file di blocco IP contenente gli indirizzi IP da utilizzare per questa interfaccia di rete sui nodi che la contengono.

Esempio:

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"
    ipBlockFilePath: "my-ipblock-file-1"

network.controlPlaneIPBlock

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, rimuovi l'intera sezione.

In caso contrario, l'inclusione di questa sezione dipende dal valore impostato in enableControlplaneV2:

  • Se enableControlplaneV2 è true, compila questa sezione.
  • Se enableControlplaneV2 è false, rimuovi questa sezione.

network.controlPlaneIPBlock.netmask

Obbligatorio se enableControlplaneV2 = true
Immutabile
Stringa

Esempio:

network:
  controlPlaneIPBlock:
    netmask: "255.255.255.0"

network.controlPlaneIPBlock.gateway

Obbligatorio se enableControlplaneV2 = true
Immutabile
Stringa

Esempio:

network:
  controlPlaneIPBlock:
    gateway: "172.16.21.1"

network.controlPlaneIPBlock.ips

Obbligatorio se enableControlplaneV2 = true
Immutabile
Array di oggetti, ognuno dei quali ha un indirizzo IP e un nome host. Il nome host è obbligatorio per la migrazione del control plane V2, altrimenti è facoltativo.

Per un cluster utente ad alta disponibilità (HA), l'array ha tre elementi. Per un cluster utente non HA, l'array ha un elemento.

Esempio:

network:
  controlPlaneIPBlock:
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"

loadBalancer

Questa sezione contiene informazioni sul bilanciatore del carico per il cluster utente.

loadBalancer.vips.controlPlaneVIP

Obbligatorio
Immutabile
Stringa

L'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il server API Kubernetes del cluster utente.

Esempio:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.ingressVIP

Obbligatorio
Immutabile
Stringa

L'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il proxy in entrata.

Esempio:

loadBalancer:
  vips:
    ingressVIP: "203.0.113.4"

loadBalancer.kind

Specifica il tipo di bilanciatore del carico da utilizzare.

1.32 e successive

Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"

Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che configurerai il cluster per utilizzare i domini di topologia. Si presume che il cluster utilizzi i domini di topologia se il campo infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione.

  • Con i domini di topologia, imposta questo valore su "ManualLB". Devi configurare un bilanciatore del carico di terze parti (ad esempio F5 BIG-IP o Citrix) se vuoi utilizzare i domini di topologia.

  • Domini senza topologia: imposta questo valore su "ManualLB" o "MetalLB". Utilizza "ManualLB" se hai un bilanciatore del carico di terze parti o "MetalLB" per la nostra soluzione in bundle. Se vuoi, puoi configurare un altro tipo di bilanciatore del carico per il traffico del control plane. Per ulteriori informazioni, vedi masterNode.controlPlaneLoadBalancer.

1,31

Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"

Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che configurerai il cluster per utilizzare i domini di topologia. Si presume che il cluster utilizzi i domini di topologia se il campo infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione.

  • Con i domini di topologia, imposta questo valore su "ManualLB". Devi configurare un bilanciatore del carico di terze parti (ad esempio F5 BIG-IP o Citrix) se vuoi utilizzare i domini di topologia.

  • Domini senza topologia: imposta questo valore su "ManualLB" o "MetalLB". Utilizza "ManualLB" se hai un bilanciatore del carico di terze parti o "MetalLB" per la nostra soluzione in bundle.

1,30

Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"

Imposta questo valore su "ManualLB" o "MetalLB". Utilizza "ManualLB" se hai un bilanciatore del carico di terze parti (come F5 BIG-IP o Citrix) o "MetalLB" per la nostra soluzione in bundle.

Anche se puoi eseguire l'upgrade di un cluster con kind impostato su "F5BigIP" o "Seesaw", non puoi creare nuovi cluster. Per informazioni sulla migrazione delle configurazioni di bilanciamento del carico, consulta Pianificare la migrazione del cluster alle funzionalità consigliate.

Esempio:

loadBalancer:
  kind: "MetalLB"

1.29 e precedenti

Obbligatorio
Immutabile
Stringa
Precompilato: "MetalLB"

Imposta questo valore su "ManualLB", "F5BigIP", "Seesaw" o "MetalLB".

Per abilitare Dataplane V2 e Controlplane V2, ti consigliamo di utilizzare "ManualLB" se hai un bilanciamento del carico di terze parti (ad esempio F5 BIG-IP o Citrix) o "MetalLB" per la nostra soluzione in bundle.

Esempio:

loadBalancer:
  kind: "MetalLB"

Quando crei cluster utente utilizzando la console Google Cloud , gcloud CLI o Terraform, il tipo di bilanciatore del carico per il cluster di amministrazione e i relativi cluster utente deve essere lo stesso. L'unica eccezione è se il cluster di amministrazione utilizza Seesaw, i cluster utente possono utilizzare MetalLB. Se vuoi che i cluster di amministrazione e utente utilizzino diversi tipi di bilanciatori del carico, devi creare i cluster utente utilizzando lo strumento a riga di comando gkectl.

loadBalancer.manualLB

Se imposti loadbalancer.kind su "manualLB", compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

loadBalancer.manualLB.ingressHTTPNodePort

Obbligatorio se loadBalancer.kind = ManualLB (vedi Nota sulla versione)
Immutabile
Numero intero
Precompilato: 30243

Il proxy in entrata in un cluster utente è esposto da un servizio Kubernetes di tipo LoadBalancer. Il servizio ha una ServicePort per HTTP. Scegli un valore nodePort per ServicePort HTTP e imposta questo campo sul valore nodePort.

Nota sulla versione: nella versione 1.30 e successive, le porte dei nodi Ingress sono facoltative per i cluster che utilizzano Controlplane V2.

Esempio:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Obbligatorio se loadBalancer.kind = ManualLB (see Version note)
Immutabile
Numero intero
Precompilato: 30879

Il proxy in entrata in un cluster utente viene esposto da un servizio di tipo LoadBalancer. Il servizio ha una ServicePort per HTTPS. Scegli un valore nodePort per ServicePort HTTPS e imposta questo campo sul valore nodePort.

Nota sulla versione: nella versione 1.30 e successive, le porte dei nodi Ingress sono facoltative per i cluster che utilizzano Controlplane V2.

Esempio:

loadBalancer:
  manualLB:
    ingressHTTPSNodePort: 30139

loadBalancer.manualLB.controlPlaneNodePort

Obbligatorio se loadBalancer.kind = ManualLB e enableControlplaneV2 = false
Immutabile
Numero intero
Precompilato: 30562

Il server API Kubernetes di un cluster utente viene eseguito nel cluster di amministrazione ed è esposto da un servizio di tipo LoadBalancer. Devi scegliere un valore nodePort per il servizio.

Imposta questo campo sul valore nodePort.

Esempio:

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.konnectivityServerNodePort

Obbligatorio se loadBalancer.kind = ManualLB e enableControlplaneV2 = false
Immutabile
Numero intero
Precompilato: 30563

Il server API Kubernetes di un cluster utente che utilizza kubeception viene eseguito nel cluster di amministrazione ed è esposto da un servizio di tipo LoadBalancer. Il server Konnectivity riutilizza questo servizio con un valore nodePort diverso. Devi scegliere un valore nodePort per il server Konnectivity.

Imposta questo campo sul valore nodePort per il server Konnectivity.

Esempio:

loadBalancer:
  manualLB:
    konnectivityServerNodePort: 30969

loadBalancer.f5BigIP

1.30 e successive

Nelle versioni 1.30 e successive, il valore "F5BigIP" non è consentito per loadbalancer.kind per i nuovi cluster di utenti. Se la sezione loadBalancer.f5BigIP è presente nel file di configurazione, rimuovila o commentala.

Puoi comunque utilizzare il bilanciatore del carico F5 BIG-IP con i nuovi cluster di utenti, ma la configurazione è diversa. Per i dettagli della configurazione, vedi Attivazione della modalità di bilanciamento del carico manuale.

Se un cluster esistente ha questa sezione configurata, gli upgrade alla versione 1.32 vengono bloccati. Prima di eseguire l'upgrade alla versione 1.32, devi eseguire la migrazione dei cluster alle funzionalità consigliate.

1,29 e versioni precedenti

Se imposti loadbalancer.kind su "F5BigIP", compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

Per attivare funzionalità nuove e avanzate, ti consigliamo di configurare il bilanciamento del carico manuale per il bilanciatore del carico F5 BIG-IP. Per abilitare il bilanciamento del carico manuale, imposta loadbalancer.kind su"ManualLB" e compila la sezione loadBalancer.manualLB. Per ulteriori informazioni, consulta Attivazione della modalità di bilanciamento del carico manuale.

Se hai un bilanciatore del carico F5-BIG-IP esistente e la configurazione del cluster utilizza questa sezione, dopo l'upgrade alla versione 1.29 o successive, ti consigliamo di eseguire la migrazione al bilanciamento del carico manuale.

loadBalancer.f5BigIP.address

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

L'indirizzo del bilanciatore del carico F5 BIG-IP.

Esempio:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

L'indirizzo del bilanciatore del carico F5 BIG-IP.

Esempio:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.credentials.fileRef.path

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

Il percorso di un file delle credenziali che contiene il nome utente e la password di un account che Google Distributed Cloud può utilizzare per connettersi al bilanciatore del carico F5 BIG-IP.

L'account utente deve disporre di un ruolo utente con autorizzazioni sufficienti per configurare e gestire il bilanciamento del carico. È sufficiente il ruolo di amministratore o amministratore risorse.

Per informazioni sull'aggiornamento delle credenziali F5 BIG-IP, consulta Aggiornamento delle credenziali del cluster.

Esempio:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        path: "my-config-folder/user-creds.yaml"

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

Il percorso di un file delle credenziali che contiene il nome utente e la password di un account che Google Distributed Cloud può utilizzare per connettersi al bilanciatore del carico F5 BIG-IP.

L'account utente deve disporre di un ruolo utente con autorizzazioni sufficienti per configurare e gestire il bilanciamento del carico. È sufficiente il ruolo di amministratore o amministratore risorse.

Per informazioni sull'aggiornamento delle credenziali F5 BIG-IP, consulta Aggiornamento delle credenziali del cluster.

Esempio:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        path: "my-config-folder/user-creds.yaml"

loadBalancer.f5BigIP.credentials.fileRef.entry

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

Il nome del blocco delle credenziali nel file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account F5 BIG-IP.

Esempio:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        entry: "f5-creds"

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

Il nome del blocco delle credenziali nel tuo file di configurazione delle credenziali, che contiene il nome utente e la password del tuo account F5 BIG-IP.

Esempio:

loadBalancer:
  f5BigIP:
    credentials:
      fileRef:
        entry: "f5-creds"

loadBalancer.f5BigIP.partition

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

Il nome di una partizione BIG-IP che hai creato per il cluster utente.

Esempio:

loadBalancer:
  f5BigIP:
    partition: "my-f5-user-partition"

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = "F5BigIP"
Stringa

Il nome di una partizione BIG-IP che hai creato per il cluster utente.

Esempio:

loadBalancer:
  f5BigIP:
    partition: "my-f5-user-partition"

loadBalancer.f5BigIP.snatPoolName

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = "F5BigIP" e utilizzi SNAT
Stringa

Il nome del pool SNAT.

Esempio:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = "F5BigIP" e utilizzi SNAT
Stringa

Il nome del pool SNAT.

Esempio:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.seesaw

1.30 e successive

Nelle versioni 1.30 e successive, il valore "Seesaw" non è consentito per loadbalancer.kind per i nuovi cluster di utenti perché questo bilanciatore del carico non è supportato con funzionalità nuove e avanzate. Se la sezione loadBalancer.seesaw è presente nel file di configurazione, rimuovila o commentala.

Puoi invece configurare il bilanciatore del carico MetalLB in bundle. Per abilitare il bilanciatore del carico MetalLB, imposta loadbalancer.kind su"MetalLB" e compila la sezione loadBalancer.metalLB. Per ulteriori informazioni, consulta la sezione Bilanciamento del carico in bundle con MetalLB.

1,29 e versioni precedenti

Se imposti loadbalancer.kind su "Seesaw", compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

Tieni presenti le seguenti limitazioni del bilanciatore del carico SeeSaw:

Per utilizzare queste funzionalità, ti consigliamo di configurare il bilanciamento del carico MetalLB. Per abilitare il bilanciatore del carico MetalLB, imposta loadbalancer.kind su"MetalLB" e compila la sezione loadBalancer.metalLB. Per ulteriori informazioni, consulta la sezione Bilanciamento del carico in bundle con MetalLB.

loadBalancer.seesaw.ipBlockFilePath

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = Seesaw
Immutabile
Stringa

Il percorso del file di blocco IP per le tue VM di Seesaw.

Esempio:

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = Seesaw
Immutabile
Stringa

Il percorso del file di blocco IP per le tue VM di Seesaw.

Esempio:

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

loadBalancer.seesaw.vrid

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = Seesaw
Immutabile
Numero intero
Valori possibili: 1 - 255
Precompilato: 0

L'identificatore del router virtuale della tua VM Seesaw. Questo identificatore, che è un numero intero a tua scelta, deve essere univoco in una VLAN.

Esempio:

loadBalancer:
  seesaw:
    vrid: 125

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = Seesaw
Immutabile
Numero intero
Valori possibili: 1 - 255
Precompilato: 0

L'identificatore del router virtuale della tua VM Seesaw. Questo identificatore, che è un numero intero a tua scelta, deve essere univoco in una VLAN.

Esempio:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = Seesaw
Immutabile
Stringa

L'indirizzo IP virtuale configurato sulla tua VM master Seesaw.

Esempio:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = Seesaw
Immutabile
Stringa

L'indirizzo IP virtuale configurato sulla tua VM master Seesaw.

Esempio:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = Seesaw
Modificabile
Numero intero
Precompilato: 4

Il numero di CPU per ciascuna delle tue VM Seesaw.

Esempio:

loadBalancer:
  seesaw:
    cpus: 8

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = Seesaw
Modificabile
Numero intero
Precompilato: 4

Il numero di CPU per ciascuna delle tue VM Seesaw.

Esempio:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

1.30 e successive

Non consentito per i nuovi cluster
Obbligatorio se loadBalancer.kind = Seesaw
Modificabile
Numero intero
Precompilato: 3072

Il numero di mebibyte di memoria per ciascuna delle tue VM Seesaw.

Esempio:

loadBalancer:
  seesaw:
    memoryMB: 8192

Nota: questo campo specifica il numero di mebibyte di memoria, non il numero di megabyte. Un mebibyte corrisponde a 220 = 1.048.576 byte. Un megabyte corrisponde a 106 = 1.000.000 byte.

1,29 e versioni precedenti

Obbligatorio se loadBalancer.kind = Seesaw
Modificabile
Numero intero
Precompilato: 3072

Il numero di mebibyte di memoria per ciascuna delle tue VM Seesaw.

Esempio:

loadBalancer:
  seesaw:
    memoryMB: 8192

Nota: questo campo specifica il numero di mebibyte di memoria, non il numero di megabyte. Un mebibyte corrisponde a 220 = 1.048.576 byte. Un megabyte corrisponde a 106 = 1.000.000 byte.

loadBalancer.seesaw.vCenter.networkName

1.30 e successive

Non consentito per i nuovi cluster
Immutabile
Stringa
Predefinito: uguale ai nodi del cluster

Il nome della rete vCenter che contiene le VM di Seesaw.

Esempio:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

1,29 e versioni precedenti

Immutabile
Stringa
Valore predefinito: uguale ai nodi del cluster

Il nome della rete vCenter che contiene le VM di Seesaw.

Esempio:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

loadBalancer.seesaw.enableHA

1.30 e successive

Non consentito per i nuovi cluster
Immutabile
Pertinente se loadBalancer.kind = Seesaw
Booleano
Precompilato: false
Predefinito: false

Se vuoi creare un bilanciatore del carico di Seesaw ad alta disponibilità, imposta questo valore su true. In caso contrario, impostalo su false. Un bilanciatore del carico Seesaw HA utilizza una coppia(principale, di backup) di VM.

Esempio:

loadBalancer:
  seesaw:
    enableHA: true

1,29 e versioni precedenti

Immutabile
Pertinente se loadBalancer.kind = Seesaw
Booleano
Precompilato: false
Predefinito: false

Se vuoi creare un bilanciatore del carico di Seesaw ad alta disponibilità (HA), imposta questo valore su true. In caso contrario, impostalo su false. Un bilanciatore del carico Seesaw HA utilizza una coppia(principale, di backup) di VM.

Esempio:

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

1.30 e successive

Non consentito per i nuovi cluster
Immutabile
Pertinente se loadBalancer.kind = Seesaw
Booleano
Precompilato: true
Predefinito: true

Se questo criterio viene impostato su true (opzione consigliata), il bilanciamento del carico Seesaw non utilizza l'apprendimento MAC per il failover. Utilizza invece ARP gratuito. Se questo campo è impostato su false, il bilanciatore del carico Seesaw utilizza l'apprendimento MAC. Se utilizzi vSphere 7 o versioni successive e disponi di un bilanciatore del carico Seesaw ad alta disponibilità, questo campo deve essere impostato su true.

Esempio:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

1,29 e versioni precedenti

Immutabile
Pertinente se loadBalancer.kind = Seesaw
Booleano
Precompilato: true
Valore predefinito: true

Se imposti questo valore su true (opzione consigliata), il bilanciatore del carico Seesaw non utilizza l'apprendimento MAC per il failover. Utilizza invece ARP gratuita. Se imposti questo valore su false, il bilanciatore del carico Seesaw utilizza l'apprendimento MAC. Se utilizzi vSphere 7 o versioni successive e hai un bilanciatore del carico di Seesaw ad alta disponibilità, devi impostare questo valore su true.

Esempio:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

loadBalancer.metalLB

Se imposti loadbalancer.kind su "MetalLB", compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

Per ulteriori informazioni, vedi Bilanciamento del carico in bundle con MetalLB.

loadBalancer.metalLB.addressPools

Obbligatorio se loadBalancer.kind = MetalLB
Modificabile (vedi eccezione)

Array di oggetti, ognuno dei quali contiene informazioni su un pool di indirizzi da utilizzare con il bilanciamento del carico MetalLB.

1.32 e successive

Il comportamento di questo campo è lo stesso quando enableAdvancedCluster è impostato su true (cluster avanzato attivato) o false (cluster avanzato non attivato). In entrambi i casi, l'array non è totalmente modificabile. Puoi aggiungere pool di indirizzi, ma la rimozione di pool di indirizzi da un array di pool di indirizzi esistente non è supportata.

1,31

Il comportamento di questo campo dipende dal fatto che enableAdvancedCluster sia impostato su true (cluster avanzato attivato) o false (cluster avanzato non attivato):

  • Se il cluster avanzato è abilitato, l'array non è totalmente modificabile. Puoi aggiungere pool di indirizzi, ma la rimozione di pool di indirizzi da un array di pool di indirizzi esistente non è supportata.

  • Se il cluster avanzato non è abilitato, l'array è modificabile. Puoi aggiungere e rimuovere pool di indirizzi da un array di pool di indirizzi esistente.

1.30 e precedenti

Puoi aggiungere e rimuovere pool di indirizzi da un array di pool di indirizzi esistente.

loadBalancer.metalLB.addressPools[i].name

Obbligatorio se loadBalancer.kind = MetalLB
Modificabile (vedi eccezione)
Stringa

Un nome scelto da te per il pool di indirizzi.

1.32 e successive

Il comportamento di questo campo è lo stesso di quando enableAdvancedCluster è impostato su true (cluster avanzato abilitato) o false (cluster avanzato non abilitato). In entrambi i casi, la modifica del nome dopo la creazione del cluster non è supportata.

1,31

Il comportamento di questo campo dipende dal fatto che enableAdvancedCluster sia impostato su true (cluster avanzato attivato) o false (cluster avanzato non attivato):

  • Se il cluster avanzato è abilitato: la modifica del nome dopo la creazione del cluster non è supportata.

  • Se il cluster avanzato non è abilitato, puoi modificare il nome del pool dopo la creazione del cluster.

1.30 e precedenti

Puoi modificare il nome del pool dopo la creazione del cluster.

Esempio:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses

Obbligatorio se loadBalancer.kind = MetalLB
Modificabile (vedi eccezione)

Array di stringhe, ognuna delle quali è un intervallo di indirizzi. Ogni intervallo deve essere in formato CIDR o in formato intervallo con trattino.

1.32 e successive

Il comportamento di questo campo è lo stesso di quando enableAdvancedCluster è impostato su true (cluster avanzato abilitato) o false (cluster avanzato non abilitato). In entrambi i casi, puoi aggiungere indirizzi a un pool di indirizzi esistente, ma la rimozione degli indirizzi non è supportata.

1,31

Il comportamento di questo campo dipende dal fatto che enableAdvancedCluster sia impostato su true (cluster avanzato attivato) o false (cluster avanzato non attivato):

  • Se il cluster avanzato è abilitato, puoi aggiungere indirizzi a un pool di indirizzi esistente, ma la rimozione degli indirizzi non è supportata.

  • Se il cluster avanzato non è abilitato, puoi aggiungere e rimuovere indirizzi da un pool di indirizzi esistente.

1.30 e precedenti

Puoi aggiungere e rimuovere indirizzi da un pool di indirizzi esistente.

Esempio:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      addresses:
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs

Pertinente se loadBalancer.kind = MetalLB
Modificabile
Booleano
Precompilato: false
Valore predefinito: false

Se imposti questo valore su true, il controller MetalLB non assegnerà indirizzi IP che terminano con .0 o .255 ai servizi. In questo modo si evita il problema di dispositivi di consumo buggati che eliminano per errore il traffico inviato a questi indirizzi IP speciali.

Esempio:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
      avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign

Pertinente se loadBalancer.kind = MetalLB
Modificabile
Booleano
Precompilato: false
Predefinito: false

Se non vuoi che il controller MetalLB assegni automaticamente gli indirizzi IP di questo pool ai servizi, imposta questo valore su true. Poi uno sviluppatore può creare un servizio di tipo LoadBalancer e specificare manualmente uno degli indirizzi del pool.

In caso contrario, imposta questo valore su false.

Esempio:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      manualAssign: true

enableDataplaneV2

1.30 e successive

Modificabile (da false a true è consentito)
Booleano
Precompilato: true
Predefinito: false

Questo campo controlla la Container Network Interface (CNI) utilizzata dal cluster. L'abilitazione di Dataplane V2 è necessaria per utilizzare Controlplane V2. Puoi modificare il campo da false a true per abilitare Dataplane V2, ma la disattivazione di Dataplane V2 non è consentita.

I vantaggi di Dataplane V2 includono:

  • Dataplane V2 offre un'interfaccia di rete del container (CNI) più avanzata e potente rispetto all'opzione CNI precedente, Calico. Calico è in modalità manutenzione, il che significa che riceve solo correzioni di bug critici e aggiornamenti della sicurezza, ma non lo sviluppo di nuove funzionalità. Al contrario, Dataplane V2 è in fase di sviluppo e miglioramento attivo, il che garantisce l'accesso alle più recenti innovazioni e funzionalità di rete.

  • Dataplane V2 è la CNI preferita per GKE e altri prodotti Google Distributed Cloud.

1,29 e versioni precedenti

Immutabile
Booleano
Precompilato: true
Predefinito: false

Se vuoi abilitare Dataplane V2 o se vuoi utilizzare Controlplane V2, imposta questo valore su true. In caso contrario, impostalo su false.

Ti consigliamo di attivare Dataplane V2.

Esempio:

  enableDataplaneV2: true

Per i passaggi per la risoluzione dei problemi, consulta Risoluzione dei problemi relativi a Google Distributed Cloud NFS e DataPlane v2.

dataplaneV2.forwardMode

Modificabile
Stringa
Valori possibili: "snat", "dsr"
Precompilato: "snat"
Predefinito: "snat"

La modalità di inoltro per un cluster con Dataplane V2 abilitato.

Con la modalità Network Address Translation dell'origine (SNAT), un pacchetto viene tradotto con SNAT quando viene inoltrato da un nodo del bilanciatore del carico a un pod di backend. Il pod non può vedere l'indirizzo IP di origine originale e il pacchetto di ritorno deve passare attraverso il nodo del bilanciatore del carico.

Con la modalità di ritorno diretto del server (DSR), un pacchetto conserva il suo indirizzo IP di origine quando viene inoltrato da un nodo del bilanciatore del carico a un pod di backend. Il pod può vedere l'indirizzo IP di origine originale e il pacchetto di ritorno va direttamente al client senza passare attraverso il nodo del bilanciatore del carico.

Esempio:

dataplaneV2:
  forwardMode: "dsr"

multipleNetworkInterfaces

Immutabile
Booleano
Precompilato: false
Predefinito: false

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, questo campo deve essere false.

Se vuoi abilitare più interfacce di rete per i pod, imposta questo valore su true.

Per ulteriori informazioni, consulta Configurazione di più interfacce di rete per i pod.

Esempio:

multipleNetworkInterfaces: true

advancedNetworking

Immutabile
booleano
Precompilato: false
Predefinito: false

Se prevedi di creare un gateway NAT in uscita, imposta questo valore su true. In caso contrario, impostalo su false.

Se imposti questo campo su true, devi impostare anche enableDataplaneV2 su true.

Esempio:

advancedNetworking: true

disableBundledIngress

Imposta questo valore su true se vuoi disattivare l'ingresso in bundle per il cluster. In caso contrario, impostalo su false.

Booleano
Modificabile
Precompilato: false
Predefinito: false

Esempio:

disableBundledIngress: true

storage.vSphereCSIDisabled

Se vuoi disattivare il deployment dei componenti vSphere CSI, imposta questo valore su true. In caso contrario, impostalo su false.

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, questo campo deve essere true.

Modificabile
Booleano
Precompilato: false
Predefinito: false

Esempio:

storage:
  vSphereCSIDisabled: false

masterNode

Questa sezione contiene informazioni sui nodi che fungono da nodi del control plane per questo cluster utente.

masterNode.controlPlaneLoadBalancer

1.32 e successive

(Facoltativo) Includi questa sezione per specificare il tipo di bilanciatore del carico da utilizzare per il traffico del control plane nel cluster utente. Includi masterNode.controlPlaneLoadBalancer.mode nel file di configurazione se vuoi impostare esplicitamente il tipo di bilanciatore del carico da utilizzare anziché affidarti al valore predefinito. Inoltre, devi impostare loadBalancer.kind nel file di configurazione per specificare il tipo di bilanciatore del carico da utilizzare per il data plane.

masterNode.controlPlaneLoadBalancer.mode

(Facoltativo)
(Immutabile)
(Stringa)
(Predefinito: dipende dal fatto che il cluster utilizzi domini di topologia)

Il tipo di bilanciatore del carico che puoi utilizzare dipende dal fatto che configurerai il cluster per utilizzare i domini di topologia. Si presume che il cluster utilizzi i domini di topologia se il campo infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione.

  • Con i domini di topologia: specifica "manual", che è il valore predefinito. Devi configurare un bilanciatore del carico di terze parti (ad esempio F5 BIG-IP o Citrix) se vuoi utilizzare i domini di topologia.

  • Senza domini di topologia: specifica "manual" o "bundled". Utilizza "manual" se hai un bilanciatore del carico di terze parti o "bundled" per la nostra soluzione in bundle, che utilizza keepalived + haproxy in esecuzione sui nodi del control plane. Il valore predefinito è "bundled".

Esempio:

adminMaster:
  controlPlaneLoadBalancer:
    mode: "manual"

1.31 e versioni precedenti

Questa sezione non è disponibile. Utilizza invece loadBalancer.kind per specificare il tipo di bilanciatore del carico da utilizzare per il cluster utente.

masterNode.cpus

Mutable
Integer
Precompilato: 4
Predefinito: 4

Il numero di CPU per ciascun nodo che funge da control plane per questo cluster utente.

Esempio:

masterNode:
  cpus: 8

masterNode.memoryMB

Modificabile
Numero intero
Precompilato: 8192
Predefinito: 8192

La quantità di mebibyte di memoria per ogni nodo che funge da control plane per questo cluster utente. Deve essere un multiplo di 4.

Esempio:

masterNode:
  memoryMB: 8192

Nota:questo campo specifica il numero di mebibyte di memoria, non il numero di megabyte. Un mebibyte corrisponde a 2^20 = 1.048.576 byte. Un megabyte corrisponde a 10^6 = 1.000.000 byte.

masterNode.replicas

Immutabile
Numero intero
Valori possibili: 1 o 3
Precompilato: 1
Predefinito: 1

Il numero di nodi del control plane per questo cluster utente. Una volta creato il cluster, questo numero non può essere modificato. Se vuoi aggiornare il numero di repliche in un secondo momento, devi ricreare il cluster utente.

Se il campo enableAdvancedCluster è true, devi impostare questo campo su 3. Nei cluster avanzati sono supportati solo i cluster utente ad alta disponibilità (HA).

Esempio:

masterNode:
  replicas: 3

masterNode.autoResize.enabled

Modificabile
Booleano
Precompilato: false
Predefinito: false

Imposta questo valore su true per abilitare il ridimensionamento automatico dei nodi del control plane per il cluster utente. In caso contrario, imposta questo valore su false.

Per maggiori informazioni, vedi Attivare il ridimensionamento dei nodi per i nodi del control plane di un cluster utente.

Esempio:

masterNode:
  autoResize:
    enabled: true

masterNode.vsphere

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, rimuovi l'intera sezione.

masterNode.vsphere.datastore

(Facoltativo)
Immutabile
Stringa
Valore predefinito: il valore di vCenter.datastore

Il datastore in cui verranno creati i nodi del control plane per questo cluster utente.

Il valore specificato deve essere un nome, non un percorso. Non includere cartelle nel valore.

Esempio:

masterNode:
  vSphere:
    datastore: "control-plane-datastore"

Se specifichi un valore per questo campo, non specificare un valore per masterNode.vsphere.storagePolicyName. Il campo masterNode.vsphere.datastore è immutabile, tranne quando lo imposti su una stringa vuota quando migri un datastore a SPBM (Storage Policy Based Management).

masterNode.vsphere.storagePolicyName

(Facoltativo)
Immutabile
Stringa
Valore predefinito: il valore di vCenter.storagePolicyName

Il nome di un criterio di archiviazione VM per i nodi del control plane.

Per saperne di più, consulta Configurare una policy di archiviazione.

Esempio:

masterNode:
  vSphere:
    storagePolicyName: "control-plane-storage-policy"

Se specifichi un valore per questo campo, non specificare un valore per masterNode.vsphere.datastore.

masterNode.topologyDomains

1.32 e successive

Anteprima
Facoltativo
Array di stringhe | Consente un elemento o tre elementi diversi
Immutabile
Predefinito: vSphereInfraConfig.defaultTopologyDomain se specificato nel file di configurazione dell'infrastruttura vSphere

Un array di domini di topologia. Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione (il che indica che il cluster utilizzerà domini di topologia), includi facoltativamente questo campo. Il numero di domini di topologia nell'array determina la modalità di deployment dei nodi del control plane del cluster utente, come segue:

  • Un elemento: tutti i nodi del control plane del cluster utente verranno implementati nel dominio di topologia specificato.
  • Tre elementi: ogni nodo del control plane del cluster utente verrà deployment in un dominio di topologia diverso (ovvero un nodo per dominio di topologia).

1,31

Anteprima
Facoltativo
Array di stringhe, ma è supportato un solo elemento
Immutabile
Predefinito: vSphereInfraConfig.defaultTopologyDomain se specificato nel file di configurazione dell'infrastruttura vSphere

Un array di domini di topologia. Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione (il che indica che il cluster utilizzerà domini di topologia), includi facoltativamente questo campo. I nodi del control plane del cluster utente verranno implementati nel dominio di topologia specificato.

1,30 e inferiore

Non disponibile.

nodePools

Obbligatorio
Modificabile
Array di oggetti, ognuno dei quali descrive un pool di nodi.

Per saperne di più, consulta la pagina Creare e gestire i pool di nodi.

nodePools[i].name

Obbligatorio
Immutabile
Stringa

Un nome scelto da te per il node pool. Il nome deve:

  • Deve contenere al massimo 40 caratteri.
  • contenere solo caratteri alfanumerici minuscoli o un trattino (-)
  • iniziare con un carattere alfabetico
  • terminare con un carattere alfanumerico

Esempio:

nodePools:
- name: "my-node-pool-1"

nodePools[i].gkeOnPremVersion

Quando esegui l'upgrade di un cluster utente, puoi specificare che i pool di nodi selezionati rimangano alla versione precedente.

Se vuoi che questo pool di nodi rimanga alla versione precedente, impostalo sulla versione precedente. In caso contrario, rimuovi questo campo o impostalo sulla stringa vuota. Per ulteriori informazioni, vedi Eseguire l'upgrade di un cluster utente.

Modificabile
Stringa
Predefinito: il cluster gkeOnPremVersion

Esempio:

nodePools:
- name: "my-node-pool"
  gkeOnPremVersion: "1.13.0-gke.16"

nodePools[i].cpus

Obbligatorio
Modificabile
Numero intero
Precompilato: 4

Il numero di vCPU per ogni nodo nel pool.

Esempio:

nodePools"
- name: "my-node-pool"
  cpus: 8

nodePools[i].memoryMB

Obbligatorio
Modificabile
Numero intero
Precompilato: 8192

La quantità di mebibyte di memoria per ogni nodo nel pool. Deve essere un multiplo di 4.

Esempio:

nodePools"
- name: "my-node-pool"
  memoryMB: 8192

Nota:questo campo specifica il numero di mebibyte di memoria, non il numero di megabyte. Un mebibyte corrisponde a 2^20 = 1.048.576 byte. Un megabyte corrisponde a 10^6 = 1.000.000 byte.

nodePools[i].replicas

Obbligatorio
Modificabile
Numero intero
Precompilato: 3
Valori possibili: il numero totale di nodi compatibili in tutti i node pool del cluster deve essere almeno 3.

Il numero di nodi nel pool.

Esempio:

nodePools:
- name: "my-node-pool"
  replicas: 5

nodePools[i].bootDiskSizeGB

Modificabile
Numero intero
Precompilato: 40
Predefinito: 40

La dimensione del disco di avvio in gibibyte per ogni nodo nel pool.

Esempio:

nodePools
- name: "my-node-pool"
  bootDiskSizeGB: 40

nodePools[i].osImageType

Modificabile
Stringa
Valori possibili: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2"
Precompilato: "ubuntu_cgv2"
Predefinito: "ubuntu_containerd"

Il tipo di immagine del sistema operativo da eseguire sulle VM nel pool di nodi.

Nella versione 1.32, i node pool Windows Server sono deprecati e non saranno disponibili nella versione 1.33 e successive. Il supporto per i pool di nodi Windows Server termina il 5 maggio 2026. Ti consigliamo di non utilizzare "windows" come tipo di immagine del sistema operativo sui nuovi cluster.

Tieni presente la seguente limitazione relativa ai cluster avanzati:

  • Versione 1.31: se il campo enableAdvancedCluster è true, sono supportati solo ubuntu-cgroupv2 e ubuntu_containerd sui cluster avanzati.

  • Versione 1.32: tutti i tipi di immagini del sistema operativo, ad eccezione di "windows", sono supportati nei cluster avanzati.

Esempio:

nodePools
- name: "my-node-pool"
  osImageType: "ubuntu_cgv2"

nodePools[i].osImage

Obbligatorio se nodePools[i].osImageType = windows
Modificabile
Stringa

Il nome di un modello di VM Windows. Il modello deve basarsi su un file ISO di Windows Server 2019 con il tag lingua/regione en-US.

Per ulteriori informazioni, consulta la Guida dell'utente per i pool di nodi del sistema operativo Windows Server.

nodePools[i].labels

Mappatura
modificabile

Etichette da applicare a ogni oggetto nodo Kubernetes nel pool.

Esempio:

nodePools:
- name: "my-node-pool"
  labels:
    environment: "production"
    tier: "cache"

Per motivi di sicurezza, kubelet non può applicare etichette a se stesso in determinati spazi dei nomi.

Gli spazi dei nomi delle etichette dei nodi riservati sono : kubernetes.io, k8s.io, googleapis.com.

nodePools[i].taints

Modificabile
Array di oggetti, ognuno dei quali descrive una taint di Kubernetes applicata a ogni nodo del pool. I taint sono coppie chiave-valore associate a un effect. Le incompatibilità vengono utilizzate con le tolleranze per la pianificazione dei pod. Specifica uno dei seguenti valori per effect: NoSchedule, PreferNoSchedule, NoExecute.

Esempio:

nodePools:
- name: "my-node-pool"
  taints:
  - key: "staging"
    value: "true"
    effect: "NoSchedule"

nodePools[i].vsphere

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione, rimuovi tutti i campi nella sezione nodePools[i].vsphere, ad eccezione di nodePools[i].vsphere.tags.

nodePools[i].vsphere.datastore

Mutable
String
Valore predefinito: il valore di vCenter.datastore

Il nome del datastore vCenter in cui verranno creati i nodi.

Esempio:

nodePools:
- name: "my-node-pool"
  vsphere:
    datastore: "my-datastore"

Se specifichi un valore per questo campo, non specificare un valore per nodePools[i].vsphere.storagePolicyName.

nodePools[i].vsphere.storagePolicyName

Mutable
String
Valore predefinito: il valore di vCenter.storagePolicyName

Il nome di un criterio di archiviazione VM per i nodi del pool.

Per saperne di più, consulta Configurare una policy di archiviazione.

Esempio:

nodePools:
- name: "my-node-pool"
  vsphere:
    storagePolicyName: "my-storage-policy"

Se specifichi un valore per questo campo, non specificare un valore per nodePools[i].vsphere.datastore.

nodePools[i].vsphere.hostgroups

Compila questa sezione se vuoi configurare il cluster in modo che utilizzi l'affinità VM-host.


modificabile Array di stringhe, ognuna delle quali è il nome di un gruppo DRS host�.

L'array può avere un solo elemento.

Esempio:

nodePools:
- name: "my-node-pool"
  vsphere:
    hostgroups:
    - "my-hostgroup"

nodePools[i].vsphere.tags

Modificabile
Array di oggetti, ognuno dei quali descrive un tag vSphere da inserire nelle VM del pool di nodi.

Ogni tag ha una categoria e un nome.

Esempio:

nodePools:
- name: "my-node-pool"
  vsphere:
    tags:
    - category: "purpose"
      name: "testing"

Se vuoi collegare tag a tutte le VM in un pool di nodi, il tuo account utente vCenter deve disporre di questi privilegi di tagging vSphere:

  • vSphere Tagging.Assign o Unassign vSphere Tag
  • vSphere Tagging.Assign or Unassign vSphere Tag on Object (vSphere 7)

nodePools[i].autoscaling

Modificabile

Se vuoi abilitare la scalabilità automatica per il pool di nodi, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

nodePools[i].autoscaling.minReplicas

Modificabile
Numero intero
Valori possibili: maggiore o uguale a 1
Precompilato: 0

Il numero minimo di nodi che il gestore della scalabilità automatica può impostare per il pool.

Esempio:

nodePools:
- name: "my-node-pool"
  autoscaling:
    minReplicas: 5

nodePools[i].autoscaling.maxReplicas

Modificabile
Numero intero
Precompilato: 0

Il numero massimo di nodi che lo strumento di scalabilità automatica può impostare per il pool.

Esempio:

nodePools:
- name: "my-node-pool"
  autoscaling:
    maxReplicas: 10

nodePools[i].enableLoadBalancer

Pertinente se loadBalancer.kind = "MetalLB"
Modificabile
Booleano
Precompilato: true
Predefinito: false

1.32 e successive

Il comportamento di questo campo è lo stesso quando enableAdvancedCluster è impostato su true (cluster avanzato attivato) o false (cluster avanzato non attivato). In entrambi i casi, imposta questo valore su true se vuoi consentire a MetalLB speaker di essere eseguito sui nodi del pool. In caso contrario, impostalo su false.

1,31

Il comportamento di questo campo dipende dal fatto che enableAdvancedCluster sia impostato su true (cluster avanzato attivato) o false (cluster avanzato non attivato):

  • Se è abilitato il cluster avanzato, questo campo non ha effetto perché il componente speaker MetalLB viene sempre eseguito sui nodi del control plane del cluster utente.

  • Se il cluster avanzato non è abilitato: imposta questo valore su true se vuoi consentire l'esecuzione del componente speaker MetalLB sui nodi del pool. In caso contrario, impostalo su false.

1,29 e versioni precedenti

Imposta questo valore su true se vuoi consentire l'esecuzione del componente speaker di MetalLB sui nodi del pool. In caso contrario, impostalo su false.

Per ulteriori informazioni, vedi Bilanciamento del carico in bundle con MetalLB.

Esempio:

nodePools:
- name: "my-node-pool"
  enableLoadBalancer: true

nodePools[i].updateStrategy.rollingUpdate.maxSurge

Anteprima
Modificabile
Numero intero
Valore predefinito: 1

Il numero massimo di macchine nel pool di nodi che possono essere aggiornate contemporaneamente durante un aggiornamento.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

nodePools[i].topologyDomains

1.31 e successive

Se infraConfigFilePath è configurato nel file di configurazione del cluster di amministrazione (che attiva i domini di topologia), includi facoltativamente questo campo.

Array di stringhe | Ma è supportato un solo elemento
Immutabile
Predefinito: vSphereInfraConfig.defaultTopologyDomain se specificato nel file di configurazione dell'infrastruttura vSphere

I nodi in questo pool di nodi verranno inseriti nel dominio di topologia specificato da questo campo. Per ogni pool di nodi è consentito un solo dominio di topologia. Tutti i nodi in un pool di nodi verranno inseriti in un unico dominio di topologia.

1,30 e inferiore

Non disponibile.

schedulerConfiguration

1.32 e successive

Anteprima
Facoltativo

Quando configuri i domini di topologia, puoi configurare facoltativamente impostazioni aggiuntive che verranno trasmesse a kube-scheduler.

schedulerConfiguration.defaultTopologySpreadConstraint

Anteprima
Facoltativo
Immutabile

Un oggetto che definisce una regola di vincolo di distribuzione della topologia predefinita a livello di cluster che viene applicata alla pianificazione dei pod. Quando il cluster utente viene creato con domini di topologia, se questa regola è configurata, kube-scheduler prende la chiave di topologia predefinita e distribuisce i pod di Deployment, StatefulSet e ReplicaSet per impostazione predefinita. La struttura è la stessa dei vincoli predefiniti a livello di cluster Kubernetes.

Esempio:

schedulerConfiguration:
  defaultTopologySpreadConstraint:
    defaultConstraints:
    - maxSkew: 1
      topologyKey: topology.kubernetes.io/zone
      whenUnsatisfiable: ScheduleAnyway
    defaultingType: List

Per maggiori dettagli, consulta Vincoli predefiniti a livello di cluster nella documentazione di Kubernetes.

1.31 e versioni precedenti

Non disponibile.

antiAffinityGroups.enabled

Modificabile
Booleano
Precompilato: true
Valore predefinito: true

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 distribuirli in almeno tre host ESXi fisici del data center.

Questa funzionalità richiede che l'ambiente vSphere soddisfi le seguenti condizioni:

  • VMware DRS è abilitato. VMware DRS richiede la licenza vSphere Enterprise Plus.

  • Il tuo account utente vSphere dispone del privilegio Host.Inventory.Modify cluster.

  • Sono disponibili almeno quattro host ESXi.

Anche se la regola richiede che i nodi del cluster siano distribuiti su tre host ESXi, ti consigliamo vivamente di avere a disposizione almeno quattro host ESXi.

Ricorda che se hai una licenza vSphere Standard, non puoi abilitare VMware DRS.

Se non hai abilitato DRS o se non hai almeno quattro host in cui è possibile pianificare le VM vSphere, imposta antiAffinityGroups.enabled su false.

Tieni presente la seguente limitazione relativa ai cluster avanzati:

  • Versione 1.31: se il campo enableAdvancedCluster è true, le regole di anti-affinità non sono supportate nei cluster avanzati e devi impostare antiAffinityGroups.enabled su false.

  • Versione 1.32: le regole di anti-affinità sono supportate sui cluster avanzati.

Esempio:

antiAffinityGroups:
  enabled: false

enableVMTracking

Anteprima
Immutabile
Precompilato: false

Imposta questo valore su true per attivare il monitoraggio delle VM con i tag vSphere. In caso contrario, impostalo su false.

Per maggiori informazioni, vedi Attivare il monitoraggio delle VM.

Esempio:

enableVMTracking: true

nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate

Modificabile
Numero intero
Valori possibili: 0 o 1
Precompilato: 0 Predefinito: 0

Il numero di pool di nodi da aggiornare contemporaneamente. Un valore di 1 specifica che è possibile aggiornare un pool di nodi alla volta. Un valore di 0 specifica che è possibile aggiornare un numero illimitato di node pool contemporaneamente.

Tieni presente la seguente limitazione relativa ai cluster avanzati:

  • Versione 1.31: se il campo enableAdvancedCluster è true, le policy di aggiornamento dei pool di nodi non sono supportate nei cluster avanzati, quindi rimuovi questa sezione dal file di configurazione.

  • Versione 1.32: le policy di aggiornamento dei pool di nodi sono supportate sui cluster avanzati.

Esempio:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

Anteprima
Modificabile
Numero intero
Valore predefinito: 1

Il numero massimo di macchine in un pool di nodi che possono essere aggiornate contemporaneamente durante un aggiornamento. Si applica a qualsiasi pool di nodi che non specifica la propria strategia di aggiornamento.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

authentication

Questa sezione contiene informazioni su come vengono autenticati e autorizzati gli utenti del cluster.

authentication.oidc

Non utilizzare questa sezione. Dopo la creazione del cluster, modifica la risorsa personalizzata ClientConfig come descritto in Configurazione dei cluster per Anthos Identity Service con OIDC .

authentication.sni

Se vuoi fornire un certificato di pubblicazione aggiuntivo per il server API Kubernetes del cluster, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

authentication.sni.certPath

Stringa

Il percorso di un certificato di servizio per il server API Kubernetes.

Esempio:

authentication:
  sni:
    certPath: "my-cert-folder/example.com.crt"

authentication.sni.keyPath

Facoltativo
Stringa

Il percorso del file della chiave privata del certificato.

Esempio:

authentication:
  sni:
    keyPath: "my-cert-folder/example.com.key"

gkeConnect

Obbligatorio
Immutabile

Questa sezione contiene informazioni sul progetto e sul account di servizio che vuoi utilizzare per registrare il cluster in un Google Cloud fleet. Google Cloud

gkeConnect.projectID

Obbligatorio
Immutabile
Stringa

L'ID del tuo progetto host del parco risorse. Per i nuovi cluster, questo ID progetto deve corrispondere all'ID impostato in stackdriver.projectID e cloudAuditLogging.projectID. Se gli ID progetto non sono uguali, la creazione del cluster non riesce. Questo requisito non viene applicato ai cluster esistenti.

Esempio:

gkeConnect:
  projectID: "my-fleet-host-project"

gkeConnect.location

Immutabile
Stringa
Predefinito: globale

L'appartenenza al parco risorse di ogni cluster è gestita dal servizio Fleet (gkehub.googleapis.com) e dal servizio Connect (gkeconnect.googleapis.com). La posizione dei servizi può essere globale o regionale. Nella versione 1.28 e successive, puoi specificare facoltativamente la regione in cui vengono eseguiti i servizi Fleet e Connect. Google CloudSe non specificato, vengono utilizzate le istanze globali dei servizi. Tieni presente quanto segue:

  • I cluster utente creati prima della versione 1.28 sono gestiti dai servizi globali Fleet e Connect.

  • I nuovi cluster creati utilizzando i client API GKE On-Prem, ovvero la console Google Cloud , Google Cloud CLI o Terraform, utilizzano la stessa regione specificata per l'API GKE On-Prem.

  • Per i nuovi cluster, se includi questo campo, la regione specificata deve essere la stessa configurata in cloudAuditLogging.clusterLocation, stackdriver.clusterLocation e gkeOnPremAPI.location. Se le regioni non sono uguali, la creazione del cluster non va a buon fine.

Esempio:

gkeConnect:
  location: "us-central1"

gkeConnect.registerServiceAccountKeyPath

Obbligatorio
Modificabile
Stringa

Il percorso del file della chiave JSON per il tuo account di servizio connect-register�.

Per aggiornare il valore di questo campo, utilizza gkectl update cluster.

Per informazioni sulla modifica della chiave del account di servizio connect-register, consulta la sezione Rotazione account di servizio account.

Esempio:

gkeConnect:
  registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"

gkeConnect.registerServiceAccountKey.secretRef.version

Modificabile
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"

La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per l'account di servizio connect-register.

Esempio:

gkeConnect:
  registerServiceAccountKey:
    secretRef:
      version: "1"

gkeOnPremAPI

Nelle versioni 1.16 e successive, se l'API GKE On-Prem è abilitata nel tuo progettoGoogle Cloud , tutti i cluster del progetto vengono registrati automaticamente nell'API GKE On-Prem nella regione configurata in stackdriver.clusterLocation.

  • Se vuoi registrare tutti i cluster del progetto nell'API GKE On-Prem, assicurati di eseguire i passaggi descritti in Prima di iniziare per attivare e utilizzare l'API GKE On-Prem nel progetto.

  • Se non vuoi registrare il cluster nell'API GKE On-Prem, includi questa sezione e imposta gkeOnPremAPI.enabled su false. Se non vuoi registrare cluster nel progetto, disabilita gkeonprem.googleapis.com (il nome del servizio per l'API GKE On-Prem) nel progetto. Per istruzioni, vedi Disattivare i servizi.

La registrazione del cluster utente nell'API GKE On-Prem ti consente di utilizzare gli strumenti standard, ovvero la console Google Cloud , Google Cloud CLI e Terraform, per gestire il ciclo di vita del cluster. Inoltre, la registrazione del cluster ti consente di utilizzare la console o gcloud CLI per visualizzare i dettagli del cluster. Ad esempio, puoi eseguire comandi gcloud per ottenere informazioni sul tuo cluster di utenti.

Dopo aver aggiunto questa sezione e creato o aggiornato il cluster, se in seguito rimuovi la sezione e aggiorni il cluster, l'aggiornamento non andrà a buon fine.

gkeOnPremAPI.enabled

Modificabile
Booleano
Predefinito: true

Per impostazione predefinita, il cluster viene registrato nell'API GKE On-Prem se questa è abilitata nel tuo progetto. Imposta false se non vuoi registrare il cluster.

Dopo aver registrato il cluster nell'API GKE On-Prem, se devi annullare la registrazione, apporta la seguente modifica e poi aggiorna il cluster:

gkeOnPremAPI:
  enabled: false

gkeOnPremAPI.location

Immutabile
Stringa
Predefinito: stackdriver.clusterLocation

La regione Google Cloud in cui l'API GKE On-Prem viene eseguita e archivia i metadati del cluster. Scegli una delle regioni supportate. Devi utilizzare la stessa regione configurata in gkeConnect.location, stackdriver.clusterLocation e cloudAuditLogging.clusterLocation. Se gkeOnPremAPI.enabled è false, non includere questo campo.

stackdriver

Obbligatorio per impostazione predefinita
Modificabile

Se vuoi abilitare Cloud Logging e Cloud Monitoring per il tuo cluster, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

Questa sezione è obbligatoria per impostazione predefinita. ovvero, se non includi questa sezione, devi includere il flag --skip-validation-stackdriver quando esegui gkectl create cluster.

Questa sezione è obbligatoria se vuoi gestire il ciclo di vita del cluster utente utilizzando i client API GKE On-Prem.

stackdriver.projectID

Obbligatorio per Logging e Monitoring
Immutabile
Stringa

L'ID del tuo progetto host del parco risorse. Per i nuovi cluster, questo ID progetto deve corrispondere all'ID impostato in gkeConnect.projectID e cloudAuditLogging.projectID. Se gli ID progetto non sono uguali, la creazione del cluster non riesce. Questo requisito non viene applicato ai cluster esistenti.

Se necessario, puoi configurare un router dei log in questo progetto per instradare i log nei bucket di log di un altro progetto. Per informazioni su come configurare il router di log, vedi Destinazioni supportate.

Esempio:

stackdriver:
  projectID: "my-fleet-host-project"

stackdriver.clusterLocation

Obbligatorio per Logging e Monitoring
Immutabile
Stringa
Precompilato: "us-central1"

La regione Google Cloud in cui vuoi instradare e archiviare le metriche di Cloud Monitoring. Ti consigliamo di scegliere una regione vicina al tuo data center on-premise.

Specifichi il routing e la posizione di archiviazione dei log di Cloud Logging nella configurazione del router dei log. Per saperne di più sul routing dei log, consulta la panoramica su routing e archiviazione.

L'operatore Stackdriver (stackdriver-operator) associa il valore di questo campo a ogni voce di log e metrica prima che vengano indirizzate a Google Cloud. Queste etichette allegate possono essere utili per filtrare i log e le metriche rispettivamente in Esplora log eMetrics Explorerhe.

Per i nuovi cluster, se includi le sezioni gkeOnPremAPI e cloudAuditLogging nel file di configurazione, la regione che imposti qui deve essere la stessa che imposti in gkeConnect.location, gkeOnPremAPI.location e cloudAuditLogging.clusterLocation. Se le regioni non sono le stesse, la creazione del cluster non va a buon fine.

Esempio:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Immutabile
Booleano
Precompilato: false

Se la rete del cluster è controllata da un VPC, imposta questo valore su true. In questo modo, tutti i dati di telemetria vengono trasmessi tramite gli indirizzi IP con limitazioni di Google. In caso contrario, imposta questo valore su false.

Esempio:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Obbligatorio per logging e monitoraggio
Modificabile
Stringa

Il percorso del file della chiave JSON per l'account di servizio di logging e monitoraggio.

Per aggiornare il valore di questo campo, utilizza gkectl update cluster.

Per informazioni sulla modifica della chiave del account di servizio di logging e monitoraggio, vedi Rotazione account di servizio account.

Esempio:

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

stackdriver.serviceAccountKey.secretRef.version

Modificabile
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"

La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per l'account del servizio di monitoraggio della registrazione.

Esempio:

stackdriver:
  serviceAccountKey:
    secretRef:
      version: "1"

stackdriver.disableVsphereResourceMetrics

Modificabile
Booleano
Precompilato: false
Predefinito: false

Imposta questo valore su true per disabilitare la raccolta di metriche da vSphere. In caso contrario, impostalo su false.

Esempio:

stackdriver:
  disableVsphereResourceMetrics: true

usageMetering

1.32 e successive

La funzionalità di misurazione dell'utilizzo non è supportata nella versione 1.32 e successive. Non includere questa sezione quando crei nuovi cluster. Tuttavia, i cluster esistenti che utilizzano questa funzionalità continueranno a funzionare. In alternativa, ti consigliamo di utilizzare la dashboard predefinita Misurazione dell'utilizzo dei cluster Anthos per comprendere l'utilizzo delle risorse a diversi livelli. Contatta l'assistenza clienti Google Cloud se l'alternativa non soddisfa i tuoi casi d'uso.

1.30 e 1.31

Ti consigliamo di non utilizzare questa funzionalità di anteprima quando crei nuovi cluster. Tuttavia, i cluster esistenti che utilizzano questa funzionalità continueranno a funzionare. In alternativa, ti consigliamo di utilizzare la dashboard predefinita Anthos Cluster Utilization Metering per comprendere l'utilizzo delle risorse a diversi livelli.

Se il campo enableAdvancedCluster è true, rimuovi questa sezione. La misurazione dell'utilizzo non è supportata nei cluster avanzati.

1,29 e versioni precedenti

Anteprima
Immutabile

Ti consigliamo di non utilizzare questa funzionalità di anteprima quando crei nuovi cluster. Tuttavia, i cluster esistenti che utilizzano questa funzionalità continueranno a funzionare. In alternativa, ti consigliamo di utilizzare la dashboard predefinita Anthos Cluster Utilization Metering per comprendere l'utilizzo delle risorse a diversi livelli.

usageMetering.bigQueryProjectID

Anteprima
Obbligatorio per la misurazione dell'utilizzo
Immutabile
Stringa

L'ID del progetto Google Cloud in cui vuoi archiviare i dati di misurazione dell'utilizzo.

Esempio:

usageMetering:
bigQueryProjectID: "my-bq-project"

usageMetering.bigQueryDatasetID

Anteprima
Obbligatorio per la misurazione dell'utilizzo
Immutabile
Stringa

L'ID del set di dati BigQuery in cui vuoi archiviare i dati di misurazione dell'utilizzo. Esempio:

usageMetering:
bigQueryDatasetID: "my-bq-dataset"

usageMetering.bigQueryServiceAccountKeyPath

Anteprima
Obbligatorio per la misurazione dell'utilizzo
Immutabile
Stringa.

Il percorso del file della chiave JSON per il tuo account di servizio BigQuery.

Per aggiornare il valore di questo campo, utilizza gkectl update cluster.

Per informazioni sulla modifica della chiave del account di servizio BigQuery, vedi Rotazione account di servizio account.

Esempio:

usageMetering:
bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"

usageMetering.bigQueryServiceAccountKey.secretRef.version

Modificabile
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"

La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per il tuo account di servizio BigQuery.

Esempio:

gkeConnect:
bigQueryServiceAccountKey:
  secretRef:
    version: "1"

usageMetering.enableConsumptionMetering

Anteprima
Obbligatorio per la misurazione dell'utilizzo
Immutabile
Booleano
Precompilato: false

Imposta questo valore su true se vuoi attivare la misurazione basata sul consumo. In caso contrario, impostalo su false.

Esempio:

usageMetering:
enableConsumptionMetering: true

cloudAuditLogging

Se vuoi integrare gli audit log del server API Kubernetes del tuo cluster con Cloud Audit Logs, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

cloudAuditLogging.projectID

Obbligatorio per Cloud Audit Logs
Immutabile
Stringa

L'ID del tuo progetto host del parco risorse. Per i nuovi cluster, questo ID progetto deve corrispondere all'ID impostato in gkeConnect.projecID e stackdriver.projectID. Se gli ID progetto non sono uguali, la creazione del cluster non riesce. Questo requisito non viene applicato ai cluster esistenti.

Se necessario, puoi configurare un router dei log in questo progetto per instradare i log nei bucket di log di un altro progetto. Per informazioni su come configurare il router di log, vedi Destinazioni supportate.

Esempio:

cloudAuditLogging:
  projectID: "my-fleet-host-project"

cloudAuditLogging.clusterLocation

Obbligatorio per Cloud Audit Logs
Immutabile
Stringa

La regione Google Cloud in cui vuoi archiviare gli audit log. È consigliabile scegliere una regione vicina al tuo data center on-premise

Per i nuovi cluster, se includi le sezioni gkeOnPremAPI e stackdriver nel file di configurazione, la regione che imposti qui deve essere la stessa che imposti in gkeConnect.location, gkeOnPremAPI.location e stackdriver.clusterLocation. Se le regioni non sono uguali, la creazione del cluster non va a buon fine.

Esempio:

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

Obbligatorio per Cloud Audit Logs
Modificabile
Stringa

Il percorso del file della chiave JSON per l'account di servizio di audit logging.

Se creerai il cluster con enableAdvancedCluster impostato su true (obbligatorio per configurare i domini di topologia), imposta cloudAuditLogging.serviceAccountKeyPath sullo stesso percorso di stackdriver.serviceAccountKeyPath.

Per aggiornare il valore di questo campo, utilizza gkectl update cluster.

Per informazioni sulla modifica della chiave del account di servizio di registrazione degli audit, consulta la sezione Rotazione account di servizio account.

Esempio:

cloudAuditLogging:
  serviceAccountKeyPath: "my-key-folder/audit-log-key.json"

cloudAuditLogging.serviceAccountKey.secretRef.version

Modificabile
Stringa
Valori possibili: una stringa di numeri interi o "latest"
Valore predefinito: "latest"

La versione di un secret preparato nel cluster di amministrazione che contiene una chiave JSON per l'account di servizio di logging di controllo.

Esempio:

cloudAuditLogging:
  serviceAccountKey:
    secretRef:
      version: "1"

autoRepair.enabled

(Facoltativo)
(Modificabile)
(Booleano)
(Precompilato: true)

Imposta questo valore su true per abilitare la riparazione automatica dei nodi. In caso contrario, impostalo su false.

Esempio:

autoRepair:
  enabled: true

secretsEncryption

Se vuoi criptare i secret senza la necessità di un KMS (Key Management Service) esterno o di altre dipendenze, compila questa sezione. In caso contrario, rimuovi questa sezione o lasciala commentata.

Se creerai il cluster con enableAdvancedCluster impostato su true (obbligatorio per configurare i domini di topologia), rimuovi questa sezione. Questa funzionalità non è supportata con i cluster avanzati.

secretsEncryption.mode

Obbligatorio per la crittografia dei secret
Immutabile
Stringa
Valore possibile: "GeneratedKey"
Precompilato: "GeneratedKey"

La modalità di crittografia Secret.

secretsEncryption:
  mode: "GeneratedKey"

secretsEncryption.generatedKey.keyVersion

Obbligatorio per la crittografia dei secret
Modificabile
Numero intero
Precompilato: 1

Un numero intero a tua scelta da utilizzare per il numero di versione della chiave. Ti consigliamo di iniziare con 1.

Per informazioni sull'aggiornamento di questo campo per un cluster esistente, consulta Crittografia dei secret Always-on.

Esempio:

secretsEncryption:
  generatedKey:
    keyVersion: 1

secretsEncryption.generatedKey.disabled

Modificabile
Booleano
Precompilato: false

Imposta questo valore su true per disattivare la crittografia dei secret. In caso contrario, impostalo su false.

Per informazioni sull'aggiornamento di questo campo per un cluster esistente, consulta Crittografia dei secret Always-on.

Esempio:

secretsEncryption:
  generatedKey:
    disabled: false