Per creare un file di configurazione del cluster, è possibile copiare in vSphere un file di configurazione esistente per una distribuzione precedente e aggiornarlo. In alternativa, è possibile creare un file da zero utilizzando un modello vuoto.
Il modello seguente include tutte le opzioni pertinenti per la distribuzione di cluster di gestione in vSphere. È possibile copiare questo modello e utilizzarlo per distribuire cluster di gestione in vSphere.
Le opzioni obbligatorie non sono commentate. Le impostazioni facoltative sono commentate. I valori predefiniti sono inclusi, se applicabile.
#! ---------------------------------------------------------------------
#! Basic cluster creation configuration
#! ---------------------------------------------------------------------
CLUSTER_NAME:
CLUSTER_PLAN: dev
INFRASTRUCTURE_PROVIDER: vsphere
# CLUSTER_API_SERVER_PORT: # For deployments without NSX Advanced Load Balancer
ENABLE_CEIP_PARTICIPATION: true
ENABLE_AUDIT_LOGGING: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
# CAPBK_BOOTSTRAP_TOKEN_TTL: 30m
#! ---------------------------------------------------------------------
#! vSphere configuration
#! ---------------------------------------------------------------------
VSPHERE_SERVER:
VSPHERE_USERNAME:
VSPHERE_PASSWORD:
VSPHERE_DATACENTER:
VSPHERE_RESOURCE_POOL:
VSPHERE_DATASTORE:
VSPHERE_FOLDER:
VSPHERE_NETWORK: VM Network
# VSPHERE_CONTROL_PLANE_ENDPOINT: # Required for Kube-Vip
# VSPHERE_CONTROL_PLANE_ENDPOINT_PORT: 6443
VIP_NETWORK_INTERFACE: "eth0"
# VSPHERE_TEMPLATE:
VSPHERE_SSH_AUTHORIZED_KEY:
# VSPHERE_STORAGE_POLICY_ID: ""
VSPHERE_TLS_THUMBPRINT:
VSPHERE_INSECURE: false
DEPLOY_TKG_ON_VSPHERE7: false
ENABLE_TKGS_ON_VSPHERE7: false
#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------
# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# OS_NAME: ""
# OS_VERSION: ""
# OS_ARCH: ""
# 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
#! ---------------------------------------------------------------------
#! VMware 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"
#! ---------------------------------------------------------------------
#! NSX Advanced Load Balancer configuration
#! ---------------------------------------------------------------------
AVI_ENABLE: false
AVI_CONTROL_PLANE_HA_PROVIDER: false
# AVI_NAMESPACE: "tkg-system-networking"
# AVI_DISABLE_INGRESS_CLASS: true
# AVI_AKO_IMAGE_PULL_POLICY: IfNotPresent
# AVI_ADMIN_CREDENTIAL_NAME: avi-controller-credentials
# AVI_CA_NAME: avi-controller-ca
# AVI_CONTROLLER:
# AVI_USERNAME: ""
# AVI_PASSWORD: ""
# AVI_CLOUD_NAME:
# AVI_SERVICE_ENGINE_GROUP:
# AVI_NSXT_T1LR: # Required for NSX ALB deployments on NSX Cloud.
# AVI_MANAGEMENT_CLUSTER_SERVICE_ENGINE_GROUP:
# AVI_DATA_NETWORK:
# AVI_DATA_NETWORK_CIDR:
# AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_NAME:
# AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_CIDR:
# AVI_CA_DATA_B64: ""
# AVI_LABELS: ""
# AVI_DISABLE_STATIC_ROUTE_SYNC: true
# AVI_INGRESS_DEFAULT_INGRESS_CONTROLLER: false
# AVI_INGRESS_SHARD_VS_SIZE: ""
# AVI_INGRESS_SERVICE_TYPE: ""
# AVI_INGRESS_NODE_NETWORK_LIST: ""
#! ---------------------------------------------------------------------
#! Image repository configuration
#! ---------------------------------------------------------------------
# TKG_CUSTOM_IMAGE_REPOSITORY: ""
# TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: ""
#! ---------------------------------------------------------------------
#! Proxy configuration
#! ---------------------------------------------------------------------
# TKG_HTTP_PROXY: ""
# TKG_HTTPS_PROXY: ""
# TKG_NO_PROXY: ""
#! ---------------------------------------------------------------------
#! Machine Health Check configuration
#! ---------------------------------------------------------------------
ENABLE_MHC:
ENABLE_MHC_CONTROL_PLANE: true
ENABLE_MHC_WORKER_NODE: true
MHC_UNKNOWN_STATUS_TIMEOUT: 5m
MHC_FALSE_STATUS_TIMEOUT: 12m
#! ---------------------------------------------------------------------
#! Identity management configuration
#! ---------------------------------------------------------------------
IDENTITY_MANAGEMENT_TYPE: "none"
#! Settings for IDENTITY_MANAGEMENT_TYPE: "oidc"
# CERT_DURATION: 2160h
# CERT_RENEW_BEFORE: 360h
# OIDC_IDENTITY_PROVIDER_CLIENT_ID:
# OIDC_IDENTITY_PROVIDER_CLIENT_SECRET:
# OIDC_IDENTITY_PROVIDER_GROUPS_CLAIM: groups
# OIDC_IDENTITY_PROVIDER_ISSUER_URL:
# OIDC_IDENTITY_PROVIDER_SCOPES: "email,profile,groups"
# OIDC_IDENTITY_PROVIDER_USERNAME_CLAIM: email
#! The following two variables are used to configure Pinniped JWTAuthenticator for workload clusters
# SUPERVISOR_ISSUER_URL:
# SUPERVISOR_ISSUER_CA_BUNDLE_DATA:
#! Settings for IDENTITY_MANAGEMENT_TYPE: "ldap"
# LDAP_BIND_DN:
# LDAP_BIND_PASSWORD:
# LDAP_HOST:
# LDAP_USER_SEARCH_BASE_DN:
# LDAP_USER_SEARCH_FILTER:
# LDAP_USER_SEARCH_USERNAME: userPrincipalName
# LDAP_USER_SEARCH_ID_ATTRIBUTE: DN
# LDAP_USER_SEARCH_EMAIL_ATTRIBUTE: DN
# LDAP_USER_SEARCH_NAME_ATTRIBUTE:
# LDAP_GROUP_SEARCH_BASE_DN:
# LDAP_GROUP_SEARCH_FILTER:
# LDAP_GROUP_SEARCH_USER_ATTRIBUTE: DN
# LDAP_GROUP_SEARCH_GROUP_ATTRIBUTE:
# LDAP_GROUP_SEARCH_NAME_ATTRIBUTE: cn
# LDAP_ROOT_CA_DATA_B64:
#! ---------------------------------------------------------------------
#! Antrea CNI configuration
#! ---------------------------------------------------------------------
# ANTREA_NO_SNAT: true
# ANTREA_NODEPORTLOCAL: true
# ANTREA_NODEPORTLOCAL_ENABLED: true
# ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
# ANTREA_TRAFFIC_ENCAP_MODE: "encap"
# ANTREA_PROXY: true
# ANTREA_PROXY_ALL: true
# ANTREA_PROXY_LOAD_BALANCER_IPS: false
# ANTREA_PROXY_NODEPORT_ADDRS:
# ANTREA_PROXY_SKIP_SERVICES: ""
# ANTREA_POLICY: true
# ANTREA_TRACEFLOW: true
# ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
# ANTREA_ENABLE_USAGE_REPORTING: false
# ANTREA_EGRESS: true
# ANTREA_EGRESS_EXCEPT_CIDRS: ""
# ANTREA_FLOWEXPORTER: false
# ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.flow-aggregator.svc:4739:tls"
# ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
# ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "5s"
# ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
# ANTREA_IPAM: false
# ANTREA_KUBE_APISERVER_OVERRIDE: ""
# ANTREA_MULTICAST: false
# ANTREA_MULTICAST_INTERFACES: ""
# ANTREA_NETWORKPOLICY_STATS: true
# ANTREA_SERVICE_EXTERNALIP: true
# ANTREA_TRANSPORT_INTERFACE: ""
# ANTREA_TRANSPORT_INTERFACE_CIDRS: ""
Specificare le informazioni per consentire a Tanzu Kubernetes Grid di accedere a vSphere e designare le risorse che Tanzu Kubernetes Grid può utilizzare.
VSPHERE_SERVER
, VSPHERE_USERNAME
e VSPHERE_PASSWORD
con l'indirizzo IP o il nome di dominio completo dell'istanza di vCenter Server e le credenziali da utilizzare per accedere.Specificare i percorsi completi del data center, del pool di risorse, dei datastore e della cartella di vSphere in cui distribuire il cluster di gestione:
VSPHERE_DATACENTER
: /<MY-DATACENTER>
VSPHERE_RESOURCE_POOL
: /<MY-DATACENTER>/host/<CLUSTER>/Resources
VSPHERE_DATASTORE
: /<MY-DATACENTER>/datastore/<MY-DATASTORE>
VSPHERE_FOLDER
: /<MY-DATACENTER>/vm/<FOLDER>.
VSPHERE_CONTROL_PLANE_ENDPOINT
o lasciare il campo vuoto:
VSPHERE_NETWORK
e VIP_NETWORK_INTERFACE
.VSPHERE_TEMPLATE
per specificare il percorso di un file OVA se si utilizzano più immagini OVA personalizzate per la stessa versione di Kubernetes. Utilizzare il formato /MY-DC/vm/MY-FOLDER-PATH/MY-IMAGE
. Per ulteriori informazioni, vedere Distribuzione di un cluster con un'immagine OVA personalizzata in Creazione e gestione di cluster del carico di lavoro TKG 2.2 con la CLI di Tanzu.VSPHERE_SSH_AUTHORIZED_KEY
. Per informazioni su come ottenere una chiave SSH, vedere Preparazione della distribuzione dei cluster di gestione in vSphere.VSPHERE_TLS_THUMBPRINT
o impostare VSPHERE_INSECURE: true
per ignorare la verifica dell'identificazione personale.VSPHERE_STORAGE_POLICY_ID
e specificare il nome di un criterio di storage per le macchine virtuali configurate in vCenter Server che verrà utilizzato dal cluster di gestione.Ad esempio:
#! ---------------------------------------------------------------------
#! vSphere configuration
#! ---------------------------------------------------------------------
VSPHERE_SERVER: 10.185.12.154
VSPHERE_USERNAME: [email protected]
VSPHERE_PASSWORD: <encoded:QWRtaW4hMjM=>
VSPHERE_DATACENTER: /dc0
VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources/tanzu
VSPHERE_DATASTORE: /dc0/datastore/sharedVmfs-1
VSPHERE_FOLDER: /dc0/vm/tanzu
VSPHERE_NETWORK: "VM Network"
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.185.11.134
VIP_NETWORK_INTERFACE: "eth0"
VSPHERE_TEMPLATE: /dc0/vm/tanzu/my-image.ova
VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa AAAAB3[...]tyaw== [email protected]
VSPHERE_TLS_THUMBPRINT: 47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
VSPHERE_INSECURE: false
VSPHERE_STORAGE_POLICY_ID: "My storage policy"
La CLI di Tanzu crea i singoli nodi dei cluster di gestione e dei cluster del carico di lavoro in base alle impostazioni specificate nel file di configurazione. In vSphere, è possibile configurare tutte le macchine virtuali dei nodi in modo che abbiano le stesse configurazioni predefinite, impostare configurazioni predefinite diverse per i nodi del piano di controllo e i nodi worker oppure personalizzare le configurazioni dei nodi. Utilizzando queste impostazioni, è possibile creare cluster che includano nodi con configurazioni diverse per i nodi del cluster di gestione. È inoltre possibile creare cluster in cui i nodi del piano di controllo e i nodi worker abbiano configurazioni diverse.
La CLI di Tanzu fornisce le seguenti configurazioni predefinite per i nodi del cluster:
small
: 2 CPU, 4 GB di memoria, disco da 20 GBmedium
: 2 CPU, 8 GB di memoria, disco da 40 GBlarge
: 4 CPU, 16 GB di memoria, disco da 40 GBextra-large
: 8 CPU, 32 GB di memoria, disco da 80 GBPer creare un cluster in cui tutte le macchine virtuali dei nodi del piano di controllo e dei nodi worker abbiano le stesse dimensioni, specificare la variabile SIZE
. Se si imposta la variabile SIZE
, tutti i nodi verranno creati con la configurazione impostata.
SIZE: "large"
Per creare un cluster in cui le macchine virtuali dei nodi del piano di controllo e dei nodi worker abbiano le stesse dimensioni, specificare le opzioni CONTROLPLANE_SIZE
e WORKER_SIZE
.
CONTROLPLANE_SIZE: "medium"
WORKER_SIZE: "extra-large"
È possibile combinare le opzioni CONTROLPLANE_SIZE
e WORKER_SIZE
con l'opzione SIZE
. Ad esempio, se si specifica SIZE: "large"
con WORKER_SIZE: "extra-large"
, i nodi del piano di controllo verranno impostati su large
e i nodi worker verranno impostati su extra-large
.
SIZE: "large"
WORKER_SIZE: "extra-large"
È possibile personalizzare la configurazione dei nodi di anziché utilizzare le configurazioni predefinite.
Per utilizzare la stessa configurazione personalizzata per tutti i nodi, specificare le opzioni VSPHERE_NUM_CPUS
, VSPHERE_DISK_GIB
e VSPHERE_MEM_MIB
.
VSPHERE_NUM_CPUS: 2
VSPHERE_DISK_GIB: 40
VSPHERE_MEM_MIB: 4096
Per definire configurazioni personalizzate diverse per i nodi del piano di controllo e i nodi worker, specificare le opzioni VSPHERE_CONTROL_PLANE_*
e VSPHERE_WORKER_*
.
VSPHERE_CONTROL_PLANE_NUM_CPUS: 2
VSPHERE_CONTROL_PLANE_DISK_GIB: 20
VSPHERE_CONTROL_PLANE_MEM_MIB: 8192
VSPHERE_WORKER_NUM_CPUS: 4
VSPHERE_WORKER_DISK_GIB: 40
VSPHERE_WORKER_MEM_MIB: 4096
È possibile sostituire queste impostazioni utilizzando le opzioni SIZE
, CONTROLPLANE_SIZE
e WORKER_SIZE
.
Per utilizzare NSX Advanced Load Balancer, è innanzitutto necessario distribuirlo nell'ambiente vSphere. Vedere Installazione di NSX Advanced Load Balancer. Dopo aver distribuito NSX Advanced Load Balancer, configurare un cluster di gestione di vSphere per utilizzare il bilanciamento del carico.
Ad esempio:
AVI_ENABLE: true
AVI_CONTROL_PLANE_HA_PROVIDER: true
AVI_NAMESPACE: "tkg-system-networking"
AVI_DISABLE_INGRESS_CLASS: true
AVI_AKO_IMAGE_PULL_POLICY: IfNotPresent
AVI_ADMIN_CREDENTIAL_NAME: avi-controller-credentials
AVI_CA_NAME: avi-controller-ca
AVI_CONTROLLER: 10.185.10.217
AVI_USERNAME: "admin"
AVI_PASSWORD: "<password>"
AVI_CLOUD_NAME: "Default-Cloud"
AVI_SERVICE_ENGINE_GROUP: "Default-Group"
AVI_NSXT_T1LR:""
AVI_DATA_NETWORK: nsx-alb-dvswitch
AVI_DATA_NETWORK_CIDR: 10.185.0.0/20
AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_NAME: ""
AVI_MANAGEMENT_CLUSTER_VIP_NETWORK_CIDR: ""
AVI_CA_DATA_B64: LS0tLS1CRU[...]UtLS0tLQo=
AVI_LABELS: ""
AVI_DISABLE_STATIC_ROUTE_SYNC: true
AVI_INGRESS_DEFAULT_INGRESS_CONTROLLER: false
AVI_INGRESS_SHARD_VS_SIZE: ""
AVI_INGRESS_SERVICE_TYPE: ""
AVI_INGRESS_NODE_NETWORK_LIST: ""
Per impostazione predefinita, il cluster di gestione e tutti i cluster del carico di lavoro che gestisce utilizzeranno il bilanciamento del carico. Per informazioni su come configurare le variabili di NSX Advanced Load Balancer, vedere NSX Advanced Load Balancer in Informazioni di riferimento sulle variabili del file di configurazione.
È possibile utilizzare NSX ALB come provider dell'endpoint del piano di controllo in Tanzu Kubernetes Grid. La tabella seguente descrive le differenze tra NSX ALB e Kube-Vip, ovvero il provider dell'endpoint del piano di controllo predefinito in Tanzu Kubernetes Grid.
Kube-VIP | NSX ALB | |
---|---|---|
Invia il traffico a | Singolo nodo del piano di controllo |
Più nodi del piano di controllo |
Richiede la configurazione del VIP dell'endpoint | Sì |
No Assegna il VIP dal pool di IP statici di NSX ALB |
Se l'ambiente vSphere utilizza NSX, è possibile configurarlo per implementare pod instradabili o NO_NAT
.
NotaQuella dei pod instradabili di NSX è una funzionalità sperimentale in questa versione. Le informazioni per l'implementazione dei pod instradabili di NSX verranno presto aggiunte a questa documentazione.
#! ---------------------------------------------------------------------
#! 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"
Per distribuire un cluster di gestione che supporti IPv6 in un ambiente di rete IPv6:
Preparare l'ambiente come descritto in (Facoltativo) Impostazioni di variabili e regole per IPv6.
Impostare le seguenti variabili del file di configurazione per il cluster di gestione.
TKG_IP_FAMILY
su ipv6
.VSPHERE_CONTROL_PLANE_ENDPOINT
su un indirizzo IPv6 statico.CLUSTER_CIDR and SERVICE_CIDR
. Le impostazioni predefinite di queste variabili sono rispettivamente fd00:100:64::/48
e fd00:100:96::/108
.In vSphere 7 e vSphere 8, vSphere with Tanzu fornisce un supervisore integrato che funziona come cluster di gestione e offre un'esperienza migliore rispetto a un cluster di gestione autonomo. La distribuzione di un cluster di gestione di Tanzu Kubernetes Grid in vSphere 7 o vSphere 8 quando il supervisore non è presente è supportata, ma l'opzione preferita consiste nell'abilitare vSphere with Tanzu e utilizzare il supervisore se possibile. Poiché Azure VMware Solution non supporta un cluster supervisore, è necessario distribuire un cluster di gestione. Per informazioni, vedere Il supervisore di vSphere with Tanzu è un cluster di gestione.
ImportanteLe versioni della CLI di Tanzu compatibili con TKG 2.x e con il supervisore vSphere with Tanzu in vSphere 8 non sono compatibili con il cluster supervisore in vSphere 7. Per utilizzare la CLI di Tanzu con un cluster supervisore vSphere with Tanzu in vSphere 7, utilizzare la versione della CLI di Tanzu da TKG v1.6. Per utilizzare le versioni della CLI di Tanzu compatibili con TKG 2.x con Supervisore, eseguire l'aggiornamento a vSphere 8. È possibile distribuire un cluster di gestione autonomo TKG 2.x in vSphere 7 se non è presente un cluster supervisore vSphere with Tanzu. Per informazioni sulla compatibilità tra la CLI di Tanzu e i prodotti VMware, vedere la documentazione della CLI di Tanzu.
Per seguire il consiglio di utilizzare il supervisore vSphere with Tanzu come cluster di gestione, la CLI di Tanzu si comporta nel modo seguente, controllata dai parametri di configurazione DEPLOY_TKG_ON_VSPHERE7
e ENABLE_TKGS_ON_VSPHERE7
.
ENABLE_TKGS_ON_VSPHERE7: false
informa che la distribuzione di un cluster di gestione non è possibile ed esegue la disconnessione.ENABLE_TKGS_ON_VSPHERE7: true
apre vSphere Client all'indirizzo impostato da VSPHERE_SERVER
in config.yml
o nell'ambiente locale, in modo da poter configurare il cluster supervisore come descritto in Abilitazione di un supervisore a una zona con la rete vSphere nella documentazione di vSphere.DEPLOY_TKG_ON_VSPHERE7: false
informa che la distribuzione di un cluster di gestione di Tanzu Kubernetes Grid è possibile ma non consigliata e chiede di uscire dall'installazione o continuare a distribuire il cluster di gestione.DEPLOY_TKG_ON_VSPHERE7: true
distribuisce un cluster di gestione TKG in vSphere 8 contrariamente al consiglio per vSphere 8, ma come richiesto per Azure VMware Solution.Dopo aver completato l'aggiornamento del file di configurazione del cluster di gestione, creare il cluster di gestione seguendo le istruzioni disponibili in Distribuzione di cluster di gestione da un file di configurazione.