Azure 集群配置文件

本主题介绍了在将 Tanzu Kubernetes Grid (TKG) 工作负载集群部署到具有独立管理集群的 Microsoft Azure 之前,如何使用平面配置文件或 Kubernetes 样式对象规范配置该集群。

有关如何使用配置文件和对象规范配置工作负载集群的一般信息,请参见配置文件和对象规范

要使用需要在集群配置文件或对象规范之外进行某些配置的 Azure 特定工作负载集群功能,请参见 Azure 上的集群

重要

Tanzu Kubernetes Grid v2.4.x 是支持在 Azure 上创建 TKG 工作负载集群的最新 TKG 版本。Tanzu Kubernetes Grid v2.5 版本中将移除在 Azure 上创建 TKG 工作负载集群的功能。

从现在开始,VMware 建议您使用 Tanzu Mission Control 创建本机 Azure AKS 集群,而不是在 Azure 上创建新的 TKG 工作负载集群。有关如何使用 Tanzu Mission Control 创建本机 Azure AKS 集群的信息,请参见《Tanzu Mission Control》文档中的管理 Azure AKS 集群的生命周期

有关详细信息,请参见《VMware Tanzu Kubernetes Grid v2.4 发行说明》中的弃用 AWS 和 Azure 上的 TKG 管理和工作负载集群

概览

要在工作负载集群部署到 Azure 之前对其进行配置,请创建集群配置文件或 Kubernetes 式对象规范文件。将其中任一文件传递到 tanzu cluster create-f 选项时,Tanzu CLI 使用文件中定义的配置信息连接到 Azure 帐户并创建集群将使用的资源。

有关将工作负载集群部署到 Azure 时必须指定的选项的完整列表,请参见配置文件变量参考

创建配置文件

要创建集群配置文件,可以使用以下工作负载集群模板中的模板。创建配置文件后,继续创建工作负载集群

工作负载集群模板

以下模板包括与在 Azure 上部署工作负载集群相关的所有选项。您可以复制此模板并进行更新,以将工作负载集群部署到 Azure。

已取消对必填选项的注释。可选设置已注释掉。如果适用,则包括默认值。

对于管理集群和工作负载集群,为特定于 Azure 的工作负载集群配置变量的方式相同。有关如何配置变量的信息,请参见从配置文件部署管理集群Azure 的管理集群配置

#! ---------------------------------------------------------------------
#! Cluster creation basic configuration
#! ---------------------------------------------------------------------

# CLUSTER_NAME:
CLUSTER_PLAN: dev
NAMESPACE: default
# CLUSTER_API_SERVER_PORT:
CNI: antrea

#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------

# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# AZURE_CONTROL_PLANE_MACHINE_TYPE: "Standard_D2s_v3"
# AZURE_NODE_MACHINE_TYPE: "Standard_D2s_v3"
# CONTROL_PLANE_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT_0:
# WORKER_MACHINE_COUNT_1:
# WORKER_MACHINE_COUNT_2:
# AZURE_CONTROL_PLANE_OS_DISK_SIZE_GIB: 128
# AZURE_CONTROL_PLANE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
# AZURE_NODE_OS_DISK_SIZE_GIB: 128
# AZURE_NODE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
# AZURE_CONTROL_PLANE_DATA_DISK_SIZE_GIB: 256
# AZURE_ENABLE_NODE_DATA_DISK: false
# AZURE_NODE_DATA_DISK_SIZE_GIB: 256

#! ---------------------------------------------------------------------
#! Azure Configuration
#! ---------------------------------------------------------------------

AZURE_ENVIRONMENT: "AzurePublicCloud"
AZURE_TENANT_ID:
AZURE_SUBSCRIPTION_ID:
AZURE_CLIENT_ID:
AZURE_CLIENT_SECRET:
AZURE_LOCATION:
AZURE_SSH_PUBLIC_KEY_B64:
# AZURE_ENABLE_ACCELERATED_NETWORKING: true
# AZURE_RESOURCE_GROUP: ""
# AZURE_VNET_RESOURCE_GROUP: ""
# AZURE_VNET_NAME: ""
# AZURE_VNET_CIDR: "10.0.0.0/16"
# AZURE_CONTROL_PLANE_SUBNET_NAME: ""
# AZURE_CONTROL_PLANE_SUBNET_CIDR: "10.0.0.0/24"
# AZURE_CONTROL_PLANE_SUBNET_SECURITY_GROUP: ""
# AZURE_NODE_SUBNET_NAME: ""
# AZURE_NODE_SUBNET_CIDR: "10.0.1.0/24"
# AZURE_NODE_SUBNET_SECURITY_GROUP: ""
# AZURE_NODE_AZ: ""
# AZURE_NODE_AZ_1: ""
# AZURE_NODE_AZ_2: ""
# AZURE_CUSTOM_TAGS:
# AZURE_ENABLE_PRIVATE_CLUSTER: false
# AZURE_FRONTEND_PRIVATE_IP: "10.0.0.100"
# AZURE_ENABLE_CONTROL_PLANE_OUTBOUND_LB: false
# AZURE_ENABLE_NODE_OUTBOUND_LB: false
# AZURE_CONTROL_PLANE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
# AZURE_NODE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
# AZURE_NODE_OUTBOUND_LB_IDLE_TIMEOUT_IN_MINUTES: 4
# AZURE_IMAGE_ID:
# AZURE_IMAGE_RESOURCE_GROUP:
# AZURE_IMAGE_NAME:
# AZURE_IMAGE_SUBSCRIPTION_ID:
# AZURE_IMAGE_GALLERY:
# AZURE_IMAGE_PUBLISHER:
# AZURE_IMAGE_OFFER:
# AZURE_IMAGE_SKU:
# AZURE_IMAGE_THIRD_PARTY:
# AZURE_IMAGE_VERSION:
# AZURE_IDENTITY_NAME:
# AZURE_IDENTITY_NAMESPACE:

#! ---------------------------------------------------------------------
#! 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: ""

为现有 VNet 创建 Azure NSG

Azure 上的 Tanzu Kubernetes Grid 管理集群和工作负载集群要求在集群的 VNet 及其 VNet 资源组中定义两个网络安全组 (NSG):

  • 名为 CLUSTER-NAME-controlplane-nsg 并与集群的控制平面子网相关联的 NSG
  • 名为 CLUSTER-NAME-node-nsg 并与集群的工作节点子网关联的 NSG

    其中,CLUSTER-NAME 是集群的名称。

如果为工作负载集群指定现有 VNet,则必须在 Azure 中创建这些 NSG。工作负载集群的现有 VNet 在其配置文件中指定了 AZURE_VNET_NAME

如果没有为集群指定现有 VNet,部署过程将创建新的 VNet 和所需的 NSG。

有关如何配置集群的 VNet、资源组和子网,请参见《配置文件变量参考》中的 Microsoft Azure

创建对象规范文件

您可以使用 Tanzu CLI 将集群配置文件转换为基于类的工作负载集群的 Kubernetes 样式对象规范,而无需部署集群:

  • 要为使用 tanzu cluster create 创建的每个基于类的集群生成对象规范文件,请确保在 Tanzu CLI 的配置中将 auto-apply-generated-clusterclass-based-configuration 功能设置为 false。默认情况下,此功能设置为 false。在 auto-apply-generated-clusterclass-based-configuration 设置为 false 并且您运行具有 --file 标记的 tanzu cluster create 时,命令会将集群配置文件转换为对象规范文件并在不创建集群的情况下退出。查看配置后,使用 Tanzu CLI 生成的对象规范文件重新运行 tanzu cluster create。如果已更新默认配置,则将其重新设置为 false,请运行:

    tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
    
  • 要为单个集群生成对象规范文件,请将 --dry-run 选项传递到 tanzu cluster create 并将输出保存到文件中。使用相同的选项和配置 --file,即您在创建集群时将使用的选项和配置,例如:

    tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
    

    然后,您可以使用此对象规范部署集群,如从对象规范创建基于类的集群中所述。

下一步操作

继续创建工作负载集群

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