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