Questo argomento spiega come utilizzare un file di configurazione piatto o una specifica di oggetto in stile Kubernetes per configurare un cluster di carichi di lavoro Tanzu Kubernetes Grid (TKG) prima di distribuirlo in vSphere con un cluster di gestione autonomo. Per configurare un cluster del carico di lavoro per la distribuzione in vSphere with Tanzu, vedere File di configurazione di vSphere con cluster di supervisori.
Per informazioni generali su come configurare i cluster del carico di lavoro utilizzando i file di configurazione e le specifiche degli oggetti, vedere File di configurazione e specifiche degli oggetti.
Per utilizzare le funzionalità del cluster di carichi di lavoro specifiche di vSphere che richiedono una configurazione al di fuori del file di configurazione del cluster o delle specifiche degli oggetti, vedere Clusters su vSphere.
Per configurare un cluster del carico di lavoro prima di distribuirlo in vSphere, creare un file di configurazione del cluster o un file di specifica di oggetto di tipo Kubernetes. Quando si passa uno di questi file all'opzione -f
di tanzu cluster create
, la CLI di Tanzu utilizza le informazioni di configurazione definite nel file per connettersi all'account vSphere e creare le risorse che il cluster utilizzerà. Ad esempio, è possibile specificare le dimensioni standard per le macchine virtuali del piano di controllo e dei nodi worker oppure configurare esplicitamente le dimensioni di CPU, memoria e disco per il piano di controllo e i nodi worker. Se si utilizzano modelli di immagine personalizzati, è possibile identificare quale modello utilizzare per creare le macchine virtuali dei nodi.
Per l'elenco completo delle opzioni che è necessario specificare quando si distribuiscono cluster del carico di lavoro in vSphere, vedere Informazioni di riferimento sulle variabili del file di configurazione.
Per creare un file di configurazione del cluster, è possibile utilizzare il modello in Modello di cluster del carico di lavoro, di seguito. Dopo aver creato il file di configurazione, passare a Creazione di cluster del carico di lavoro.
Il modello seguente include tutte le opzioni pertinenti per la distribuzione di cluster del carico di lavoro in vSphere. È possibile copiare questo modello e aggiornarlo per distribuire cluster del carico di lavoro in vSphere.
Le opzioni obbligatorie non sono commentate. Le impostazioni facoltative sono commentate. I valori predefiniti sono inclusi, se applicabile.
Ad eccezione delle opzioni descritte nelle sezioni sotto il modello, il modo in cui si configurano le variabili per i cluster del carico di lavoro specifici di vSphere è identico per i cluster di gestione e i cluster del carico di lavoro. Per informazioni su come configurare le variabili, vedere Distribuzione di cluster di gestione da un file di configurazione e Configurazione del cluster di gestione per vSphere.
#! ---------------------------------------------------------------------
#! Basic cluster creation configuration
#! ---------------------------------------------------------------------
# CLUSTER_NAME:
CLUSTER_PLAN: dev
NAMESPACE: default
# CLUSTER_API_SERVER_PORT: # For deployments without NSX Advanced Load Balancer
CNI: antrea
#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------
# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# VSPHERE_NUM_CPUS: 2
# VSPHERE_DISK_GIB: 40
# VSPHERE_MEM_MIB: 4096
# VSPHERE_CONTROL_PLANE_NUM_CPUS: 2
# VSPHERE_CONTROL_PLANE_DISK_GIB: 40
# VSPHERE_CONTROL_PLANE_MEM_MIB: 8192
# VSPHERE_WORKER_NUM_CPUS: 2
# VSPHERE_WORKER_DISK_GIB: 40
# VSPHERE_WORKER_MEM_MIB: 4096
# CONTROL_PLANE_MACHINE_COUNT:
# WORKER_MACHINE_COUNT:
# WORKER_MACHINE_COUNT_0:
# WORKER_MACHINE_COUNT_1:
# WORKER_MACHINE_COUNT_2:
#! ---------------------------------------------------------------------
#! vSphere configuration
#! ---------------------------------------------------------------------
#VSPHERE_CLONE_MODE: "fullClone"
VSPHERE_NETWORK: VM Network
# VSPHERE_TEMPLATE:
# VSPHERE_TEMPLATE_MOID:
# IS_WINDOWS_WORKLOAD_CLUSTER: false
# VIP_NETWORK_INTERFACE: "eth0"
VSPHERE_SSH_AUTHORIZED_KEY:
VSPHERE_USERNAME:
VSPHERE_PASSWORD:
# VSPHERE_REGION:
# VSPHERE_ZONE:
# VSPHERE_AZ_0:
# VSPHERE_AZ_1:
# VSPHERE_AZ_2:
# VSPHERE_AZ_CONTROL_PLANE_MATCHING_LABELS:
VSPHERE_SERVER:
VSPHERE_DATACENTER:
VSPHERE_RESOURCE_POOL:
VSPHERE_DATASTORE:
VSPHERE_FOLDER:
# VSPHERE_MTU:
# VSPHERE_STORAGE_POLICY_ID
# VSPHERE_WORKER_PCI_DEVICES:
# VSPHERE_CONTROL_PLANE_PCI_DEVICES:
# VSPHERE_IGNORE_PCI_DEVICES_ALLOW_LIST:
# VSPHERE_CONTROL_PLANE_CUSTOM_VMX_KEYS:
# VSPHERE_WORKER_CUSTOM_VMX_KEYS:
# WORKER_ROLLOUT_STRATEGY: "RollingUpdate"
# VSPHERE_CONTROL_PLANE_HARDWARE_VERSION:
# VSPHERE_WORKER_HARDWARE_VERSION:
VSPHERE_TLS_THUMBPRINT:
VSPHERE_INSECURE: false
# VSPHERE_CONTROL_PLANE_ENDPOINT: # Required for Kube-Vip
# VSPHERE_CONTROL_PLANE_ENDPOINT_PORT: 6443
# VSPHERE_ADDITIONAL_FQDN:
AVI_CONTROL_PLANE_HA_PROVIDER: false
#! ---------------------------------------------------------------------
#! NSX specific configuration for enabling NSX routable pods
#! ---------------------------------------------------------------------
# NSXT_POD_ROUTING_ENABLED: false
# NSXT_ROUTER_PATH: ""
# NSXT_USERNAME: ""
# NSXT_PASSWORD: ""
# NSXT_MANAGER_HOST: ""
# NSXT_ALLOW_UNVERIFIED_SSL: false
# NSXT_REMOTE_AUTH: false
# NSXT_VMC_ACCESS_TOKEN: ""
# NSXT_VMC_AUTH_HOST: ""
# NSXT_CLIENT_CERT_KEY_DATA: ""
# NSXT_CLIENT_CERT_DATA: ""
# NSXT_ROOT_CA_DATA: ""
# NSXT_SECRET_NAME: "cloud-provider-vsphere-nsxt-credentials"
# NSXT_SECRET_NAMESPACE: "kube-system"
#! ---------------------------------------------------------------------
#! Common configuration
#! ---------------------------------------------------------------------
# TKG_CUSTOM_IMAGE_REPOSITORY: ""
# TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: false
# TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: ""
# TKG_HTTP_PROXY: ""
# TKG_HTTPS_PROXY: ""
# TKG_NO_PROXY: ""
# TKG_PROXY_CA_CERT: ""
ENABLE_AUDIT_LOGGING: false
ENABLE_DEFAULT_STORAGE_CLASS: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
# OS_NAME: ""
# OS_VERSION: ""
# OS_ARCH: ""
#! ---------------------------------------------------------------------
#! Autoscaler configuration
#! ---------------------------------------------------------------------
ENABLE_AUTOSCALER: false
# AUTOSCALER_MAX_NODES_TOTAL: "0"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_ADD: "10m"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_DELETE: "10s"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_FAILURE: "3m"
# AUTOSCALER_SCALE_DOWN_UNNEEDED_TIME: "10m"
# AUTOSCALER_MAX_NODE_PROVISION_TIME: "15m"
# AUTOSCALER_MIN_SIZE_0:
# AUTOSCALER_MAX_SIZE_0:
# AUTOSCALER_MIN_SIZE_1:
# AUTOSCALER_MAX_SIZE_1:
# AUTOSCALER_MIN_SIZE_2:
# AUTOSCALER_MAX_SIZE_2:
#! ---------------------------------------------------------------------
#! Antrea CNI configuration
#! ---------------------------------------------------------------------
# ANTREA_NO_SNAT: false
# ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
# ANTREA_TRAFFIC_ENCAP_MODE: "encap"
# ANTREA_EGRESS_EXCEPT_CIDRS: ""
# ANTREA_NODEPORTLOCAL_ENABLED: true
# ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
# ANTREA_PROXY_ALL: false
# ANTREA_PROXY_NODEPORT_ADDRS: ""
# ANTREA_PROXY_SKIP_SERVICES: ""
# ANTREA_PROXY_LOAD_BALANCER_IPS: false
# ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.flow-aggregator.svc:4739:tls"
# ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
# ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "30s"
# ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
# ANTREA_KUBE_APISERVER_OVERRIDE:
# ANTREA_TRANSPORT_INTERFACE:
# ANTREA_TRANSPORT_INTERFACE_CIDRS: ""
# ANTREA_MULTICAST_INTERFACES: ""
# ANTREA_MULTICAST_IGMPQUERY_INTERVAL: "125s"
# ANTREA_TUNNEL_TYPE: geneve
# ANTREA_ENABLE_USAGE_REPORTING: false
# ANTREA_ENABLE_BRIDGING_MODE: false
# ANTREA_DISABLE_TXCHECKSUM_OFFLOAD: false
# ANTREA_DNS_SERVER_OVERRIDE: ""
# ANTREA_MULTICLUSTER_ENABLE: false
# ANTREA_MULTICLUSTER_NAMESPACE: ""
Se si distribuisce il cluster in vSphere e si utilizza il bilanciamento del carico Kube-Vip predefinito per l'API del piano di controllo del cluster, è necessario specificarne l'endpoint impostando VSPHERE_CONTROL_PLANE_ENDPOINT
. Se si utilizza NSX Advanced Load Balancer (ALB), non impostare VSPHERE_CONTROL_PLANE_ENDPOINT
a meno che non sia necessario che l'endpoint del piano di controllo sia a un indirizzo specifico. In tal caso, utilizzare un indirizzo statico all'interno dell'intervallo di rete VIP del profilo IPAM di NSX ALB che è stato aggiunto manualmente al pool di IP statici.
Nessun cluster, incluso qualsiasi cluster di gestione e cluster del carico di lavoro, può avere lo stesso indirizzo VSPHERE_CONTROL_PLANE_ENDPOINT
.
È possibile utilizzare la CLI di Tanzu per convertire un file di configurazione cluster nel file della specifica di un oggetto in stile Kubernetes per un cluster del carico di lavoro basato sulla classe senza distribuire il cluster:
Per generare un file di specifiche degli oggetti per ogni cluster basato su classi creato con tanzu cluster create
, assicurarsi che la funzionalità auto-apply-generated-clusterclass-based-configuration
sia impostata su false
nella configurazione della CLI di Tanzu. Per impostazione predefinita, questa funzionalità è impostata su false
. Quando auto-apply-generated-clusterclass-based-configuration
è impostato su false
e si esegue tanzu cluster create
con il flag --file
, il comando converte il file di configurazione del cluster in un file di specifiche dell'oggetto ed esce senza creare il cluster. Dopo aver rivisto la configurazione, si esegue nuovamente tanzu cluster create
con il file di specifiche dell'oggetto generato dalla CLI di Tanzu. Se è stata aggiornata la configurazione predefinita, per impostarla nuovamente su false
, eseguire:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
Per generare un file di specifiche degli oggetti per un singolo cluster, passare l'opzione --dry-run
a tanzu cluster create
e salvare l'output in un file. Utilizzare le stesse opzioni e lo stesso --file
di configurazione che si utilizzerebbero se si stesse creando il cluster, ad esempio:
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
È quindi possibile utilizzare questa specifica di oggetto per distribuire un cluster come descritto in Creazione di un cluster basato sulla classe dalla specifica di un oggetto.
Per un file di specifica di oggetto di esempio, vedere Oggetto Cluster
di esempio e relativi oggetti subordinati.
Passare a Creazione di cluster del carico di lavoro. Dopo aver distribuito un cluster del carico di lavoro in vSphere, è necessario configurare le prenotazioni DHCP dei relativi nodi e il DNS dell'endpoint come descritto in Configurazione delle prenotazioni DHCP dei nodi e del record DNS dell'endpoint (solo vSphere).