具有主管叢集組態檔的 vSphere

本主題說明在將 Tanzu Kubernetes Grid (TKG) 工作負載叢集部署到 vSphere 8 with Tanzu 之前,如何使用平面組態檔或 Kubernetes 樣式的物件規格來設定該叢集。若要將工作負載叢集設定為部署到具有獨立管理叢集的 vSphere,請參閱具有獨立管理叢集組態檔的 vSphere

如需如何使用組態檔和物件規格來設定工作負載叢集的一般資訊,請參閱組態檔和物件規格

若要使用 vSphere 特定的工作負載叢集功能,而這些功能需要在叢集的組態檔或物件規格之外進行某些組態,請參閱 vSphere 上的叢集

概觀

若要在將工作負載叢集部署到 vSphere with Tanzu 之前,先對其進行設定,請建立 Kubernetes 樣式的物件規格檔案 (如果您要設定的是以類別為基礎的叢集) 或叢集組態檔 (如果您要設定的是 TKC 叢集)。將上述任一檔案傳遞給 tanzu cluster create-f 選項時,Tanzu CLI 會使用檔案中定義的組態資訊,來連線到 vSphere 帳戶,並建立叢集將使用的資源。

若要設定:

如需上述叢集類型的相關資訊,請參閱工作負載叢集類型

設定主管部署的以類別為基礎的叢集

若要設定工作負載叢集,以部署到 vSphere 8 with Tanzu,請執行以下動作:

  1. 建立或調整 Cluster 物件規格。vSphere 8 說明文件會提供範例 Cluster 物件規格,以從下列叢集來運作:

    在規格檔的 topology 區塊中設定虛擬機器類型、規模和其他基本叢集組態。如需 topology 區塊的相關資訊,請參閱下面的以類別為基礎的叢集物件和拓撲結構ClusterClass 拓撲變數

  2. (選用) 若要自訂 Cluster 物件本身無法設定的屬性,例如叢集基礎結構中的一次性容器介面設定,請參閱進行一次性基礎結構設定

以類別為基礎的叢集物件和拓撲結構

可在具有 tanzukubernetescluster 類型的 Cluster 物件中設定的頂層設定如下所示。有關您可設定的 variables,請參閱 ClusterClass 拓撲變數

spec:
  clusterNetwork
    apiServerPort
    services
      cidrBlocks
    pods
      cidrBlocks
    serviceDomain
  controlPlaneEndpoint
    host
    port
  topology
    class
    version
    rolloutAfter
    controlPlane
      metadata
      replicas
      nodeDrainTimeout
      nodeDeletionTimeout
      machineHealthCheck
        maxUnhealthy
        nodeStartupTimeout
        unhealthyConditions
    workers
      machineDeployments
        metadata
        - class
        name
        failureDomain
        replicas
        nodeDrainTimeout
        nodeDeletionTimeout
        machineHealthCheck
          maxUnhealthy
          nodeStartupTimeout
          unhealthyConditions
        variables
          name
          value
  variables
    name
    value

這些欄位設定在下列 Tanzu Framework 存放庫的 Cluster 物件類型規格中:cluster_types.go

  • 選用欄位:對於每個欄位,json: 設定指出該欄位是否為選用欄位。選用欄位具有 omitempty 設定。
  • 類型規格中參考所形成的巢狀結構在物件規格 YAML 中會縮排。例如,Topology 結構在類型規格中包含 *Workers,因此 workers 在物件規格中的 topology 之下會縮排。

- classvariables 選項在 Cluster 物件的叢集類別 (設定為叢集的 spec.topology.class 值) 中定義。例如,在 vSphere with Tanzu 上,這是名為 tanzukubernetesclusterClusterClass 物件,其與 TanzuKubernetesCluster 物件不同,如工作負載叢集類型中所述。

可設定的 variables 包括 vmClassstorageClassproxynodeLabelsextensionCert 等等,如以下 ClusterClass 拓撲變數中所列。這些變數可設定並覆寫叢集物件下方之物件中的設定,例如 KubeAdmConfigMachine 物件。

ClusterClass 拓撲變數

tanzukubernetescluster 叢集類別是 vSphere with Tanzu 工作負載叢集上的 TKG 的預設 ClusterClass,支援在 topology.variablestopology.workers.machineDeployments.variables 中設定的以下變數。特定於機器部署的變數設定 (如節點集區) 會覆寫全域設定。

這些變數可設定及覆寫叢集物件下方之物件中的設定 (例如 vmClassstorageClass),以及 KubeAdmConfigMachine 物件中的 proxy 設定。這可讓使用者能夠完全在 Cluster 物件規格中設定叢集,而無需編輯較低層級的物件規格:

  • clusterEncryptionConfigYaml
  • controlPlaneVolumes
  • defaultRegistrySecret
  • defaultStorageClass
  • extensionCert
  • nodePoolLabels
  • nodePoolTaints
  • nodePoolVolumes
  • ntp
  • proxy
  • storageClass
  • storageClasses
  • TKR_DATA
  • trust
  • user
  • vmClass

vSphere 8 說明文件中的以下主題說明藉由變更執行中叢集的 storageClassvmClass 設定,來重新設定該叢集:

設定主管部署的 TKC 叢集 (舊版)

若要為 vSphere 8 上的 TKC (舊版) 工作負載叢集建立叢集組態檔,您可以將先前部署的現有組態檔複製到 vSphere with Tanzu,並進行更新。或者,也可以使用空白範本從頭開始建立檔案。

若要設定透過 vSphere with Tanzu 主管部署的工作負載叢集,請設定變數以定義用於建立叢集的儲存區類別、虛擬機器類別、服務網域、命名空間和其他必要值。下表列出一些變數,這些變數可包含在以 TKC 為基礎的叢集的組態檔中。或者,您也可以將它們設定為本機環境變數。

必要變數
變數 值類型或範例 說明
INFRASTRUCTURE_PROVIDER tkg-service-vsphere 請一律將 tkg-service-vsphere 用於 vSphere with Tanzu 上的 TanzuKubernetesCluster 物件。
CLUSTER_PLAN devprod 或自訂計劃 設定節點計數。
CLUSTER_CIDR CIDR 範圍 要用於網繭的 CIDR 範圍。建議的範圍是 100.96.0.0/11。僅當建議的範圍無法使用時,才變更此值。
SERVICE_CIDR 要用於 Kubernetes 服務的 CIDR 範圍。建議的範圍是 100.64.0.0/13。僅當建議的範圍無法使用時,才變更此值。
SERVICE_DOMAIN 網域 例如,my.example.comcluster.local (如果無 DNS)。如果您要為 FQDN 指派節點,則需要進行 DNS 查閱。
CONTROL_PLANE_VM_CLASS 適用於 vSphere with Tanzu 的標準虛擬機器類別,例如 guaranteed-large
請參閱 vSphere with Tanzu 說明文件中的在主管上搭配 TKG 叢集使用虛擬機器類別
控制平面節點的虛擬機器類別
WORKER_VM_CLASS 工作節點的虛擬機器類別
選用變數
變數 值類型或範例 說明
CLUSTER_NAME 字串 會被傳遞至 tanzu cluster createCLUSTER-NAME 引數所覆寫。
此名稱必須符合 RFC 952 中所述以及 RFC 1123 中所修訂的 DNS 主機名稱需求,且長度不得超過 42 個字元。Note:您必須為所有命名空間中的所有工作負載叢集,提供唯一的名稱。如果您指定的叢集名稱正用於其他命名空間中,則叢集部署將會失敗,並顯示錯誤。
NAMESPACE 命名空間;預設值為 default 要在其中部署叢集的命名空間。若要尋找主管的命名空間,請執行 kubectl get namespaces
CNI antreacalico;預設值為 antrea 用於託管工作負載 (Antrea 或 Calico) 的容器網路介面。
CONTROL_PLANE_MACHINE_COUNT 整數;CONTROL_PLANE_MACHINE_COUNT 必須是奇數。
對於 dev,預設值為 1;對於 prod,預設值為 3,如 CLUSTER_PLAN 所設定。
部署工作負載叢集,且其控制平面節點多於 devprod 計劃預設值。
WORKER_MACHINE_COUNT 部署工作負載叢集,且其工作節點多於 devprod 計劃預設值。
STORAGE_CLASSES 空白字串 ““ 允許叢集使用命名空間中的任何儲存區類別,或 kubectl get storageclasses 中以逗號分隔的值清單,例如 “SC-1,SC-2,SC-3” 可用來自訂節點的儲存區類別。
DEFAULT_STORAGE_CLASS 空字串 ”” 表示沒有預設值或是 CLI 中的值 (如上所示)。 控制平面或工作節點的預設儲存區類別。
CONTROL_PLANE_STORAGE_CLASS kubectl get storageclasses 傳回的值 控制平面節點的預設儲存區類別。
WORKER_STORAGE_CLASS 工作節點的預設儲存區類別。
NODE_POOL_0_NAME 字串 節點集區名稱、標籤和污點。TanzuKubernetesCluster 只能有一個節點集區。
NODE_POOL_0_LABELS JSON 字串清單,例如 [“label1”, “label2”]
NODE_POOL_0_TAINTS 索引鍵-值配對字串的 JSON 清單,例如 [{“key1”: “value1”}, {“key2”: “value2”}]

您可以執行以下任一動作,來設定以上的變數:

  • 將它們包含在您要傳遞給 Tanzu CLI --file 選項的叢集組態檔中。例如:

    CONTROL_PLANE_VM_CLASS: guaranteed-large
    
  • 在命令列上執行 export (在 Linux 和 macOS 上) 或 SET (在 Windows 上),將其設定為本機環境變數。例如:

    export CONTROL_PLANE_VM_CLASS=guaranteed-large
    
    附註

    如果您要為工作負載叢集設定唯一的 Proxy 設定,您可以將 TKG_HTTP_PROXYTKG_HTTPS_PROXYNO_PROXY 設定為環境變數,然後使用 Tanzu CLI 建立叢集。這些變數優先於 vSphere with Tanzu 中的現有 Proxy 組態。

後續步驟

繼續建立工作負載叢集。將工作負載叢集部署到 vSphere 之後,必須按照 設定節點 DHCP 預留和端點 DNS 記錄 (僅限 vSphere) 中所述設定其節點 DHCP 預留和端點 DNS。

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