File di configurazione del cluster di amministrazione

In questa pagina vengono descritti i campi nel file di configurazione del cluster di amministrazione.

Generazione di un modello per un file di configurazione in corso...

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

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

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

gkectl create-config admin --config=OUTPUT_FILENAME

Sostituisci OUTPUT_FILENAME con un percorso a tua scelta per il modello generato. Se ometti questo flag gkectl, assegna un nome al file admin-cluster.yaml e lo inserisce nella directory attuale.

Modello

Compilazione del file di configurazione

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

bundlePath

Stringa. Il percorso del tuo file bundle on-prem di GKE.

Il file del bundle completo di GKE On-Prem contiene tutti i componenti di una determinata release di GKE On-Prem. Quando crei una workstation di amministrazione, viene fornito con un bundle completo di:

/var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz

Ecco alcuni esempi:

bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.5.2-gke.3-full.tgz"

vCenter

Questa sezione contiene informazioni sull'ambiente vCenter.

vCenter.address

Stringa. L'indirizzo IP o il nome host del tuo server vCenter.

Prima di compilare il campo address, scarica e controlla il certificato di pubblicazione del server vCenter. Inserisci questo comando per scaricare il certificato e salvarlo in un file denominato vcenter.pem.

true | openssl s_client -connect VCENTER_IP:443 -showcerts 2>/dev/null | sed -ne '/-BEGIN/,/-END/p' > vcenter.pem

Sostituisci VCENTER_IP con l'indirizzo IP del tuo server vCenter.

Apri il file del certificato per vedere il nome comune del soggetto e il nome alternativo dell'oggetto:

openssl x509 -in vcenter.pem -text -noout

L'output mostra il Common Name (CN) Subject. Potrebbe essere un indirizzo IP o un nome host. Ecco alcuni esempi:

Subject: ... CN = 203.0.113.100
Subject: ... CN = my-vcenter-server.my-domain.example

L'output potrebbe includere anche uno o più nomi DNS in Subject Alternative Name:

X509v3 Subject Alternative Name:
    DNS:vcenter.my-domain.example

Scegli il nome comune Subject o uno dei nomi DNS in Subject Alternative Name da utilizzare come valore di vcenter.address nel file di configurazione. Ecco alcuni esempi:

vCenter:
  address: "203.0.113.100"
vCenter:
  address: "my-vcenter-server.my-domain.example"

vCenter.datacenter

Stringa. Il nome del tuo data center vCenter. Ecco alcuni esempi:

vCenter:
  datacenter: "MY-DATACENTER"

vCenter.cluster

Stringa. Il nome del tuo cluster vCenter. Ecco alcuni esempi:

vCenter:
  cluster: "MY-CLUSTER"

vCenter.resourcePool

Stringa. Il nome del pool di risorse vCenter. Ecco alcuni esempi:

Se utilizzi un pool di risorse non predefinito, fornisci il nome del pool di risorse vCenter. Ecco alcuni esempi:

vCenter:
  resourcePool: "MY-POOL"

Se utilizzi il pool di risorse predefinito, fornisci il seguente valore:

vCenter:
  resourcePool: "VCENTER_CLUSTER/Resources"

Sostituisci VCENTER_CLUSTER con il nome del tuo cluster vCenter.

vCenter.datastore

Stringa. Il nome del tuo datastore vCenter. Ecco alcuni esempi:

vCenter:
  datastore: "MY-DATASTORE"

Vedi Specificare il pool di risorse principali per un host autonomo.

vCenter.caCertPath

Stringa. Quando un client, come GKE On-Prem, invia una richiesta al tuo server vCenter, il server deve dimostrare la propria identità al client presentando un certificato o un bundle di certificati. Per verificare il certificato o il bundle, GKE On-Prem deve avere il certificato radice nella catena di attendibilità.

Imposta vCenter.caCertPath sul percorso del certificato radice. Ecco alcuni esempi:

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

La tua installazione VMware ha un'autorità di certificazione (CA) che emette un certificato per il server vCenter. Il certificato radice nella catena di trust è un certificato autofirmato creato da VMware.

Se non vuoi utilizzare VMWare, che è l'impostazione predefinita, puoi configurare VMware in modo da utilizzare un'autorità di certificazione diversa.

Se il server vCenter utilizza un certificato emesso dalla CA VMware predefinita, scarica il certificato nel seguente modo:

curl -k "https://SERVER_ADDRESS/certs/download.zip" > download.zip

Sostituisci SERVER_ADDRESS con l'indirizzo del tuo server vCenter.

Installa il comando unzip e decomprimi il file del certificato:

sudo apt-get install unzip
unzip downloads.zip

Se il comando decomprimi non funziona la prima volta, inseriscilo di nuovo.

Cerca il file del certificato in certs/lin.

vCenter.credentials.fileRef.path

Stringa. Il percorso di un file di configurazione delle credenziali contenente il nome utente e la password dell'account utente vCenter. L'account utente deve avere il ruolo Amministratore o privilegi equivalenti. Consulta i requisiti di vSphere. Ecco alcuni esempi:

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

vCenter.credentials.fileRef.entry

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 utente vCenter. Ecco alcuni esempi:

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

vCenter.dataDisk

Stringa. GKE On-Prem crea un disco di una macchina virtuale (VMDK) per contenere i dati degli oggetti Kubernetes. Il programma di installazione crea il VMDK automaticamente, ma devi fornire un nome per il VMDK nel campo vCenter.dataDisk. Ecco alcuni esempi:

vCenter:
  dataDisk: "my-disk.vmdk"

network

Questa sezione contiene informazioni sulla rete del cluster di amministrazione.

network.hostConfig

Questa sezione contiene informazioni sui server NTP, i server DNS e i domini di ricerca DNS utilizzati dal cluster.

Se hai fornito un valore per uno o entrambi i seguenti campi, compila questa sezione. In caso contrario, rimuovi questa sezione:

  • loadBalancer.seesaw.ipBlockFilePath
  • network.ipMode.ipBlockFilePath

network.hostConfig.dnsServers

Array di stringhe. Gli indirizzi dei server DNS che gli host devono utilizzare. Ad esempio:

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

network.hostConfig.ntpServers

Array di stringhe. Gli indirizzi dei server di tempo che gli host devono utilizzare. Ad esempio:

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Array di stringhe. I domini di ricerca DNS utilizzabili dagli host. Questi domini vengono utilizzati come parte di un elenco di ricerca di domini. Ecco alcuni esempi:

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

network.ipMode.type

Stringa. Se vuoi che i nodi del cluster ricevano l'indirizzo IP da un server DHCP, impostalo su "dhcp". Se vuoi che i nodi del cluster abbiano indirizzi IP statici scelti da un elenco fornito, imposta questo valore su "static".

Ecco alcuni esempi:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Se imposti ipMode.type su "static", compila questo campo.

Se imposti ipMode.type su "dhcp", rimuovi questo campo.

Stringa. Il percorso del file IP del blocco per i nodi del cluster di amministrazione. Ecco alcuni esempi:

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

network.serviceCIDR e network.podCiDR

Stringa. Il cluster di amministrazione deve avere un intervallo di indirizzi IP da utilizzare per i servizi e un intervallo di indirizzi IP da utilizzare per i pod. Questi intervalli sono specificati dai campi network.serviceCIDR e network.podCIDR. Questi campi vengono completati con i valori predefiniti. Se vuoi, puoi modificare i valori completati e utilizzare quelli che preferisci.

Gli intervalli di servizi e pod non devono sovrapporsi. Inoltre, gli intervalli di servizi e pod non devono sovrapporsi agli indirizzi IP utilizzati per i nodi in qualsiasi cluster.

Ecco alcuni esempi:

network:
  ...
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

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

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

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

Se il nome della rete non è univoco, è possibile specificare un percorso alla rete, ad esempio /DATACENTER/network/NETWORK_NAME.

Ecco alcuni esempi:

network:
  vCenter:
    networkName: "MY-CLUSTER-NETWORK"

loadBalancer

Questa sezione contiene le informazioni sul bilanciatore del carico per il cluster di amministrazione.

loadBalancer.vips.controlPlaneVIP

Stringa. L'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per il server API Kubernetes del cluster di amministrazione. Ecco alcuni esempi:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.addonsVIP

Stringa. L'indirizzo IP che hai scelto di configurare sul bilanciatore del carico per i componenti aggiuntivi. Ecco alcuni esempi:

loadBalancer:
  vips:
    addonsVIP: "203.0.113.4"

loadBalancer.kind

Stringa. Imposta questo valore su "Seesaw", "F5BigIP" o "ManualLB". Ad esempio:

loadBalancer:
  kind: "Seesaw"

loadBalancer.manualLB

Se imposti loadbalancer.kind su "ManualLB", compila questa sezione. Altrimenti, rimuovi questa sezione.

loadBalancer.manualLB.ingressHTTPNodePort

Rimuovi questo campo dal file di configurazione. Non è utilizzato in un cluster di amministrazione.

loadBalancer.manualLB.ingressHTTPSNodePort

Rimuovi questo campo dal file di configurazione. Non è utilizzato in un cluster di amministrazione.

loadBalancer.manualLB.controlPlaneNodePort

Numero intero. Il server API di Kubernetes nel cluster di amministrazione è implementato come servizio di tipo NodePort. Devi scegliere un valore nodePort per il servizio.

Imposta questo campo sul valore nodePort. Ecco alcuni esempi:

loadBalancer:
  manualLB:
    contolPLaneNodePort: 30968

loadBalancer.manualLB.addonsNodePort

Numero intero. Il server dei componenti aggiuntivi nel cluster di amministrazione è implementato come servizio di tipo NodePort. Devi scegliere un valore nodePort per il servizio.

Imposta questo campo sul valore nodePort. Ecco alcuni esempi:

loadBalancer:
  manualLB:
    addonsNodePort: 31405

loadBalancer.f5BigIP

Se imposti loadbalancer.kind su "f5BigIP", compila questa sezione. Altrimenti, rimuovi questa sezione.

loadBalancer.f5BigIP.address

Stringa. L'indirizzo del bilanciatore del carico BIG-IP di F5. Ecco alcuni esempi:

loadBalancer:
  f5BigIP:
    address: "203.0.113.2"

loadBalancer.f5BigIP.fileRef.path

Stringa. Il percorso di un file di configurazione delle credenziali contenente il nome utente e la password di un account che GKE On-Prem può utilizzare per la connessione al bilanciatore del carico BIG-IP di F5. Ecco alcuni esempi:

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

loadBalancer.f5BigIP.fileRef.entry

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 BIG-IP di F5. Ecco alcuni esempi:

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

loadBalancer.f5BigIP.partition

Stringa. Il nome di una partizione BIG-IP creata per il cluster di amministrazione. Ecco alcuni esempi:

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

loadBalancer.f5BigIP.snatPoolName

Stringa. Se utilizzi SNAT, il nome del pool SNAT. Se non utilizzi SNAT, rimuovi questo campo. Ecco alcuni esempi:

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

loadBalancer.seesaw

Se imposti loadbalancer.kind su "Seesaw", compila questa sezione. Altrimenti, rimuovi questa sezione.

loadBalancer.seesaw.ipBlockFilePath

Stringa. Impostalo sul percorso del file di blocco IP per le VM di Seesaw. Ecco alcuni esempi:

loadBalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-ipblock.yaml"

loadBalancer.seesaw.vird

Numero intero. L'identificatore del router virtuale della VM di Seesaw. Questo identificatore deve essere univoco in una VLAN. L'intervallo valido è 1-255. Ecco alcuni esempi:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

Stringa. Il VIP della tua coppia VM o VM Seesaw. Ecco alcuni esempi:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

Numero intero. Il numero di CPU per la VM Seesaw. Ecco alcuni esempi:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Numero intero. Il numero di megabyte di memoria per la tua VM Seesaw. Ecco alcuni esempi:

loadBalancer:
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.vCenter.networkName

Stringa. Il nome della rete che contiene le VM di Seesaw. Ecco alcuni esempi:

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

loadBalancer.seesaw.enableHA

Valore booleano. Se vuoi creare un bilanciatore del carico di Seesaw ad alta disponibilità, impostalo su true. In caso contrario, imposta questo valore su false. Ecco alcuni esempi:

loadBalancer:
  seesaw:
    enableHA: true

antiAffinityGroups.enabled

Valore booleano. Imposta questo valore su true per abilitare la creazione delle regole DRS. In caso contrario, imposta questo valore su false. Ecco alcuni esempi:

antiAffinityGroups:
  enabled: true

GKE On-Prem crea automaticamente le regole di anti-affinità Distributed Resource Scheduler (DRS) di VMware per i nodi del cluster di amministrazione, in modo da distribuirle in almeno tre host fisici del data center.

Questa funzionalità richiede che il tuo ambiente vSphere soddisfi le seguenti condizioni:

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

  • Il tuo account utente vSphere ha il privilegio Host.Inventory.Modify cluster.

  • Sono disponibili almeno tre host fisici.

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

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

proxy

Se la rete è protetta da un server proxy, compila questa sezione. Altrimenti, rimuovi questa sezione.

proxy.url

Stringa. L'indirizzo HTTP del server proxy. Includi il numero di porta anche se è la stessa della porta predefinita dello schema. Ecco alcuni esempi:

proxy:
  url: "http://my-proxy.example.local:80"

Il server proxy specificato qui è utilizzato dai cluster GKE On-Prem. Inoltre, la tua workstation di amministrazione viene configurata automaticamente in modo da utilizzare lo stesso server proxy, a meno che non imposti la variabile di ambiente HTTPS_PROXY nella workstation di amministrazione.

Se specifichi proxy.url, devi specificare anche proxy.noProxy.

proxy.noProxy

Stringa. Un elenco separato da virgole di indirizzi IP, intervalli di indirizzi IP, nomi host e nomi di dominio che non devono passare attraverso il server proxy. Quando GKE On-Prem invia una richiesta a uno di questi indirizzi, host o domini, la richiesta viene inviata direttamente. Ecco alcuni esempi:

proxy:
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

privateRegistry

Se hai un registro Docker privato, compila questa sezione. In caso contrario, rimuovi questa sezione.

privateRegistry.address

Stringa. L'indirizzo IP della macchina che esegue il registro Docker privato. Ecco alcuni esempi:

privateRegistry:
  address: "203.0.113.10"

privateRegistry.credentials.fileRef.path

Stringa. Il percorso di un file di configurazione delle credenziali contenente il nome utente e la password di un account che GKE On-Prem può utilizzare per accedere al registro Docker privato. Ecco alcuni esempi:

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

privateRegistry.credentials.fileRef.entry

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

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

privateRegistry.caCertPath

Stringa. Quando Docker esegue il pull di un'immagine dal registro 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 dell'autorità di certificazione. Ecco alcuni esempi:

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

gcrKeyPath

Stringa. Il percorso del file della chiave JSON per l'account di servizio che vuoi utilizzare per il download dei componenti GKE On-Prem. Ecco alcuni esempi:

gcrKeyPath: "my-key-folder/access-key.json"

stackdriver

Questa sezione contiene le informazioni sul progetto e sull'account di servizio che vuoi utilizzare per archiviare log e metriche.

stackdriver.projectID

Stringa. L'ID del progetto Google Cloud per il quale vuoi visualizzare i log. Ecco alcuni esempi:

stackdriver:
  projectID: "my-logs-project"

stackdriver.clusterLocation

Stringa. La regione Google Cloud in cui vuoi archiviare i log. È una buona idea scegliere una regione vicina al data center on-prem. Ecco alcuni esempi:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Valore booleano. Se la rete del cluster è controllata da un VPC, imposta questo campo su true. Ciò garantisce che tutta la telemetria passi attraverso gli indirizzi IP limitati di Google. In caso contrario, imposta questo campo su false. Ecco alcuni esempi:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Stringa. Il percorso del file della chiave JSON per l'account di servizio di monitoraggio del logging. Ecco alcuni esempi:

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

cloudAuditLogging

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

cloudAuditLogging.projectid

Stringa. L'ID del progetto Google Cloud in cui vuoi visualizzare gli audit log. Ecco alcuni esempi:

cloudAuditLogging:
  projectid: "my-audit-project"

cloudAuditLogging.clusterlocation

Stringa. La regione Google Cloud in cui vuoi archiviare gli audit log. Sarebbe consigliabile scegliere una regione vicina al data center on-prem. Ad esempio:

cloudAuditLogging:
  clusterlocation: "us-central1"

cloudAuditLogging.serviceaccountkeypath

Stringa. Il percorso del file della chiave JSON per il tuo account di servizio di audit logging. Ecco alcuni esempi:

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

autoRepair.enabled

Valore booleano. Imposta questo valore su true per attivare la riparazione automatica dei nodi. In caso contrario, imposta questa opzione su false. Ecco alcuni esempi:

autoRepair:
  enabled: true