要创建集群配置文件,您可以将先前部署的现有配置文件复制到 vSphere 并进行更新。或者,也可以使用空模板从头开始创建文件。
以下模板包括与在 vSphere 上部署管理集群相关的所有选项。您可以复制此模板并将其用于将管理集群部署到 vSphere。
已取消对必填选项的注释。可选设置已注释掉。如果适用,则包括默认值。
#! ---------------------------------------------------------------------
#! 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: ""
提供信息以允许 Tanzu Kubernetes Grid 登录到 vSphere,并指定可供 Tanzu Kubernetes Grid 使用的资源。
VSPHERE_SERVER
、VSPHERE_USERNAME
和 VSPHERE_PASSWORD
设置。提供 vSphere 数据中心、资源池、数据存储和要在其中部署管理集群的文件夹的完整路径:
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
或将其留空:
VSPHERE_NETWORK
和 VIP_NETWORK_INTERFACE
中指定网络和网络接口。VSPHERE_TEMPLATE
以指定 OVA 文件的路径。使用 /MY-DC/vm/MY-FOLDER-PATH/MY-IMAGE
格式。有关详细信息,请参见《使用 Tanzu CLI 创建和管理 TKG 2.1 工作负载集群》中的部署具有自定义 OVA 映像的集群。VSPHERE_SSH_AUTHORIZED_KEY
选项中提供 SSH 密钥。有关如何获取 SSH 密钥的信息,请参见准备将管理集群部署到 vSphere。VSPHERE_TLS_THUMBPRINT
变量中提供 TLS 指纹,或设置 VSPHERE_INSECURE: true
以跳过指纹验证。VSPHERE_STORAGE_POLICY_ID
并为管理集群使用的虚拟机(在 vCenter Server 上配置的虚拟机)指定存储策略的名称。例如:
#! ---------------------------------------------------------------------
#! 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"
Tanzu CLI 会根据您在配置文件中提供的设置创建管理集群和工作负载集群的各个节点。在 vSphere 上,您可以将所有节点虚拟机配置为具有相同的预定义配置,为控制平面和工作节点设置不同的预定义配置,或者自定义节点的配置。通过使用这些设置,可以创建具有与管理集群节点不同配置的节点的集群。您还可以创建控制平面节点和工作节点在其中具有不同配置的集群。
Tanzu CLI 为集群节点提供以下预定义配置:
small
:2 个 CPU、4 GB 内存、20 GB 磁盘medium
:2 个 CPU、8 GB 内存、40 GB 磁盘large
:4 个 CPU、16 GB 内存、40 GB 磁盘extra-large
:8 个 CPU、32 GB 内存、80 GB 磁盘要创建所有控制平面虚拟机和工作节点虚拟机大小相同的集群,请指定 SIZE
变量。如果设置 SIZE
变量,将使用您设置的配置创建所有节点。
SIZE: "large"
要创建控制平面虚拟机和工作节点虚拟机大小不同的集群,请指定 CONTROLPLANE_SIZE
和 WORKER_SIZE
选项。
CONTROLPLANE_SIZE: "medium"
WORKER_SIZE: "extra-large"
您可以将 CONTROLPLANE_SIZE
和 WORKER_SIZE
选项与 SIZE
选项结合使用。例如,如果指定 SIZE: "large"
和 WORKER_SIZE: "extra-large"
,则控制平面节点将设置为 large
并且工作节点将设置为 extra-large
。
SIZE: "large"
WORKER_SIZE: "extra-large"
您可以自定义节点的配置,而不是使用预定义的配置。
要对所有节点使用相同的自定义配置,请指定 VSPHERE_NUM_CPUS
、VSPHERE_DISK_GIB
和 VSPHERE_MEM_MIB
选项。
VSPHERE_NUM_CPUS: 2
VSPHERE_DISK_GIB: 40
VSPHERE_MEM_MIB: 4096
要为控制平面节点和工作节点定义不同的自定义配置,请指定 VSPHERE_CONTROL_PLANE_*
和 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
您可以使用 SIZE
、CONTROLPLANE_SIZE
和 WORKER_SIZE
选项覆盖这些设置。
要使用 NSX Advanced Load Balancer,必须先将其部署到 vSphere 环境中。请参见安装 NSX Advanced Load Balancer。部署 NSX Advanced Load Balancer 后,配置 vSphere 管理集群以使用该负载均衡器。
例如:
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: ""
默认情况下,管理集群及其管理的所有工作负载集群将使用负载均衡器。有关如何配置 NSX Advanced Load Balancer 变量的信息,请参见《配置文件变量参考》中的 NSX Advanced Load Balancer。
可以在 Tanzu Kubernetes Grid 中使用 NSX ALB 作为控制平面端点提供程序。下表介绍了 NSX ALB 与 Kube-Vip(这是 Tanzu Kubernetes Grid 中的默认控制平面端点提供程序)之间的差异。
Kube-Vip | NSX ALB | |
---|---|---|
将流量发送到 | 单个控制平面节点 |
多个控制平面节点 |
需要配置端点 VIP | 是 |
否 从 NSX ALB 静态 IP 池分配 VIP |
如果您的 vSphere 环境使用 NSX,则可以对其进行配置,以实施可路由的 Pod 或 NO_NAT
Pod。
注意NSX 可路由 Pod 是此版本中的一项实验功能。有关如何实施 NSX 可路由 Pod 的信息不久将添加到本文档中。
#! ---------------------------------------------------------------------
#! 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"
要将支持 IPv6 的管理集群部署到 IPv6 网络环境,请执行以下操作:
按照(可选)设置 IPv6 的变量和规则中所述准备环境。
在配置文件中为管理集群设置以下变量。
TKG_IP_FAMILY
设置为 ipv6
。VSPHERE_CONTROL_PLANE_ENDPOINT
设置为静态 IPv6 地址。CLUSTER_CIDR and SERVICE_CIDR
。默认值分别为 fd00:100:64::/48
和 fd00:100:96::/108
。在 vSphere 7 和 vSphere 8 上,vSphere with Tanzu 提供一个内置主管,该主管用作管理集群,并且与独立管理集群相比,可提供更好的体验。在主管不存在时,支持将 Tanzu Kubernetes Grid 管理集群部署到 vSphere 7 或 vSphere 8,但首选选项是启用 vSphere with Tanzu 并使用主管(如果可能)。Azure VMware 解决方案不支持主管集群,因此需要部署管理集群。有关信息,请参见 vSphere with Tanzu 主管是管理集群。
重要与 vSphere 8 中的 TKG 2.x 和 vSphere with Tanzu 主管兼容的 Tanzu CLI 版本与 vSphere 7 中的主管集群不兼容。要在 vSphere 7 上对 vSphere with Tanzu 主管集群使用 Tanzu CLI,请使用 TKG v1.6 中的 Tanzu CLI 版本。要使用与具有主管的 TKG 2.x 兼容的 Tanzu CLI 版本,请升级到 vSphere 8。如果 vSphere with Tanzu 主管集群不存在,可以将独立 TKG 2.x 管理集群部署到 vSphere 7。有关 Tanzu CLI 与 VMware 产品之间兼容性的信息,请参见 Tanzu CLI 文档。
为了反映将 vSphere with Tanzu 主管用作管理集群的建议,Tanzu CLI 的行为如下所示,受 DEPLOY_TKG_ON_VSPHERE7
和 ENABLE_TKGS_ON_VSPHERE7
配置参数控制。
ENABLE_TKGS_ON_VSPHERE7: false
通知您无法部署管理集群,然后退出。ENABLE_TKGS_ON_VSPHERE7: true
将从您的 config.yml
或本地环境中由 VSPHERE_SERVER
设置的地址打开 vSphere Client,以便您可以按照 vSphere 文档的使用 vSphere 网络连接启用一个区域主管中所述配置主管集群。DEPLOY_TKG_ON_VSPHERE7: false
通知您可以部署 Tanzu Kubernetes Grid 管理集群,但不建议这样做,并提示您退出安装或继续部署管理集群。DEPLOY_TKG_ON_VSPHERE7: true
会在 vSphere 8 上部署 TKG 管理集群,不过这是 Azure VMware 解决方案所需的。更新完管理集群配置文件后,按照从配置文件部署管理集群中的说明创建管理集群。