vSphere 的管理集群配置

要创建集群配置文件,您可以将先前部署的现有配置文件复制到 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: ""

常规 vSphere 配置

提供信息以允许 Tanzu Kubernetes Grid 登录到 vSphere,并指定可供 Tanzu Kubernetes Grid 使用的资源。

  • 使用 vCenter Server 实例的 IP 地址或 FQDN 以及用于登录的凭据更新 VSPHERE_SERVERVSPHERE_USERNAMEVSPHERE_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>.
  • 根据集群控制平面 API 的 HA 提供程序,设置 VSPHERE_CONTROL_PLANE_ENDPOINT 或将其留空:
    • Kube-VIP:设置为静态虚拟 IP 地址,或映射到 VIP 地址的完全限定域名 (FQDN)。
    • NSX Advanced Load Balancer:除非需要指定端点,否则请留空。如果需要,请使用 IPAM 配置文件的 VIP 网络范围内手动添加到静态 IP 池的静态地址,或者使用映射到该静态地址的 FQDN。
  • VSPHERE_NETWORKVIP_NETWORK_INTERFACE 中指定网络和网络接口。
  • 如果要对同一 Kubernetes 版本使用多个自定义 OVA 映像,可以选择取消注释并更新 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: tkg-user@vsphere.local
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== user@example.com
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_SIZEWORKER_SIZE 选项。

CONTROLPLANE_SIZE: "medium"
WORKER_SIZE: "extra-large"

您可以将 CONTROLPLANE_SIZEWORKER_SIZE 选项与 SIZE 选项结合使用。例如,如果指定 SIZE: "large"WORKER_SIZE: "extra-large",则控制平面节点将设置为 large 并且工作节点将设置为 extra-large

SIZE: "large"
WORKER_SIZE: "extra-large"

自定义节点大小

您可以自定义节点的配置,而不是使用预定义的配置。

要对所有节点使用相同的自定义配置,请指定 VSPHERE_NUM_CPUSVSPHERE_DISK_GIBVSPHERE_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

您可以使用 SIZECONTROLPLANE_SIZEWORKER_SIZE 选项覆盖这些设置。

配置 NSX Advanced Load Balancer

要使用 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

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

配置 NSX 可路由 Pod

如果您的 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 网络环境,请执行以下操作:

  1. 按照(可选)设置 IPv6 的变量和规则中所述准备环境。

  2. 在配置文件中为管理集群设置以下变量。

    • TKG_IP_FAMILY 设置为 ipv6
    • VSPHERE_CONTROL_PLANE_ENDPOINT 设置为静态 IPv6 地址。
    • (可选)设置 CLUSTER_CIDR and SERVICE_CIDR。默认值分别为 fd00:100:64::/48fd00:100:96::/108

vSphere with Tanzu 上的管理集群

在 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_VSPHERE7ENABLE_TKGS_ON_VSPHERE7 配置参数控制。

  • vSphere with Tanzu 已启用:
    • ENABLE_TKGS_ON_VSPHERE7: false 通知您无法部署管理集群,然后退出。
    • ENABLE_TKGS_ON_VSPHERE7: true 将从您的 config.yml 或本地环境中由 VSPHERE_SERVER 设置的地址打开 vSphere Client,以便您可以按照 vSphere 文档的使用 vSphere 网络连接启用一个区域主管中所述配置主管集群。
  • 未启用 vSphere with Tanzu:
    • DEPLOY_TKG_ON_VSPHERE7: false 通知您可以部署 Tanzu Kubernetes Grid 管理集群,但不建议这样做,并提示您退出安装或继续部署管理集群。
    • 与 vSphere 8 的建议相反,DEPLOY_TKG_ON_VSPHERE7: true 会在 vSphere 8 上部署 TKG 管理集群,不过这是 Azure VMware 解决方案所需的。

下一步操作

更新完管理集群配置文件后,按照从配置文件部署管理集群中的说明创建管理集群。

check-circle-line exclamation-circle-line close-line
Scroll to top icon