vSphere 上的單一節點叢集

Tanzu Kubernetes Grid (TKG) 支援單節點叢集。單節點叢集是工作負載叢集,其中主控的工作負載與控制平面基礎結構一起在單一 ESXi 主機上執行。

若要進一步最小化單節點叢集的磁碟使用量,您可以從 tiny Tanzu Kubernetes 版本 (Tkr) 建立該叢集,而該版本的基礎作業系統有 Photon 或 Ubuntu Tiny OVA。此類叢集稱為最小單節點叢集。

單節點叢集是在 vSphere 上執行且由獨立管理叢集部署的以類別為基礎的工作負載叢集。

Telco Cloud Automation (TCA) 完全支援單節點叢集。

附註

無法使用 Tanzu Mission Control (TMC) 建立和管理單節點叢集,但此功能計劃在將來的 TMC 版本中提供。

單節點叢集使用案例包括:

  • 最小的單節點叢集
    • 資源受限的主機環境,例如遠端邊緣行動通訊基地台和其他邊緣位置
  • 標準的單節點叢集
    • 實驗性開發和測試環境

相容性

以下環境和元件支援單節點叢集:

類別 支援的選項
基礎結構 vSphere 7、vSphere 8
節點作業系統 Ubuntu 20.04、Photon 3
節點大小 小型
套件 Cert Manager、Fluent Bit、Multus、Prometheus、Whereabouts
控制平面端點提供者 Kube-Vip*
工作負載平衡器 Kube-Vip*
工作負載叢集類型 以類別為基礎
CNI Antrea、Calico
連接模式 線上、網際網路受限

*TKG v2.4 中的單節點叢集不支援 NSX Advanced Load Balancer (ALB)。

必要條件

建立最小的單節點叢集

若要在使用 tiny Tanzu Kubernetes 版本 (TKr) 以最小化磁碟使用量的 vSphere 上建立單節點工作負載叢集,請執行以下動作:

  1. 準備 OVA:

    1. 瀏覽至 Tanzu Kubernetes Grid 下載頁面,然後登入 Customer Connect。

    2. VMware Tanzu Kubernetes Grid 資料列中,按一下移至下載 (Go to Downloads)

    3. 選取版本 2.x 並按一下 VMware Tanzu Kubernetes Grid > 移至下載 (GO TO DOWNLOADS)

    4. Tiny TKG OVA 下,下載 Tiny OVA 以用於單節點叢集:

      • Photon v3 Kubernetes v1.27.5 Tiny OVA

      • Ubuntu 2004 Kubernetes v1.27.5 微小 OVA

    5. 將 Tiny OVA 匯入您的 vSphere 環境,並將其轉換為虛擬機器範本,如將基礎映像範本匯入到 vSphere 中所述。

  2. 建立單節點工作負載叢集。

    附註

    如要建立最小單節點叢集,必須使用 Kubernetes 樣式的物件規格執行 tanzu cluster create 命令。如果從平面叢集組態檔開始,則必須按照 建立以類別為基礎的叢集中所述的兩個步驟過程產生物件規格,然後第二次執行 tanzu cluster create 以建立叢集。

    1. 依照以下範例中的設定,對環境變數進行設定:

      export CLUSTER_NAME='workload-snc'
      export CLUSTER_NAMESPACE='default'
      export CLUSTER_CIDR='100.96.0.0/11'
      export SERVICE_CIDR='100.64.0.0/13'
      export VSPHERE_CONTROL_PLANE_ENDPOINT=10.185.11.134
      export VSPHERE_SERVER=10.185.12.154
      export VSPHERE_USERNAME='[email protected]'
      export VSPHERE_PASSWORD=<encoded:QWRtaW4hMjM=>
      export VSPHERE_DATACENTER='/dc0'
      export VSPHERE_DATASTORE='/dc0/datastore/sharedVmfs-0'
      export VSPHERE_FOLDER='/dc0/vm'
      export VSPHERE_NETWORK='/dc0/network/VM Network'
      export VSPHERE_RESOURCE_POOL='/dc0/host/cluster0/Resources'
      export VSPHERE_SSH_AUTHORIZED_KEY=ssh-rsa AAAAB3[...]tyaw== [email protected]
      export VSPHERE_TLS_THUMBPRINT=47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
      export VSPHERE_CONTROL_PLANE_NUM_CPUS='2'
      export VSPHERE_CONTROL_PLANE_MEM_MIB='4096'
      export VSPHERE_CONTROL_PLANE_DISK_GIB='20'
      export TKG_CUSTOM_IMAGE_REPOSITORY='projects.registry.vmware.com/tkg'
      export OS_NAME='photon'
      export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE="LS0tL[...]0tLQo="
      
    2. 使用參考上述變數的 ClusterSecret 物件規格建立資訊清單 vsphere-snc.yaml

      apiVersion: cluster.x-k8s.io/v1beta1
      kind: Cluster
      metadata:
        annotations:
          tkg.tanzu.vmware.com/cluster-controlplane-endpoint: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          run.tanzu.vmware.com/resolve-tkr: 'tkr.tanzu.vmware.com/tiny'
        labels:
          tkg.tanzu.vmware.com/cluster-name: ${CLUSTER_NAME}
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      spec:
        clusterNetwork:
          pods:
            cidrBlocks:
            - ${CLUSTER_CIDR}
          services:
            cidrBlocks:
            - ${SERVICE_CIDR}
        topology:
          class: tkg-vsphere-default-v1.1.1
          controlPlane:
            metadata:
              annotations:
                run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=${OS_NAME}
            replicas: 1
          variables:
          - name: controlPlaneTaint
            value: false
          - name: auditLogging
            value:
              enabled: false
          - name: apiServerEndpoint
            value: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          - name: aviAPIServerHAProvider
            value: false
          - name: imageRepository
            value:
              host: ${TKG_CUSTOM_IMAGE_REPOSITORY}
          - name: trust
            value:
              additionalTrustedCAs:
              - data: ${TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE}
                name: imageRepository
          - name: vcenter
            value:
              cloneMode: fullClone
              datacenter: ${VSPHERE_DATACENTER}
              datastore: ${VSPHERE_DATASTORE}
              folder: ${VSPHERE_FOLDER}
              network: ${VSPHERE_NETWORK}
              resourcePool: ${VSPHERE_RESOURCE_POOL}
              server: ${VSPHERE_SERVER}
              storagePolicyID: ""
              tlsThumbprint: ${VSPHERE_TLS_THUMBPRINT}
          - name: user
            value:
              sshAuthorizedKeys:
              - ${VSPHERE_SSH_AUTHORIZED_KEY}
          - name: controlPlane
            value:
              machine:
                diskGiB: ${VSPHERE_CONTROL_PLANE_DISK_GIB}
                memoryMiB: ${VSPHERE_CONTROL_PLANE_MEM_MIB}
                numCPUs: ${VSPHERE_CONTROL_PLANE_NUM_CPUS}
          version: v1.27.5+vmware.1-tiny.2
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      stringData:
        password: ${VSPHERE_PASSWORD}
        username: ${VSPHERE_USERNAME}
      EOF
      

      請注意下列事項:

      • run.tanzu.vmware.com/resolve-tkrmetadata.annotations 設定
      • controlPlaneTainttopology.variables 設定
      • 沒有 topology.workers 區塊,只有 topology.controlPlane
      • 對於先前版本的 TKG,topology.version 應為 v1.25.7+vmware.1-tiny.1 (適用於 v2.2.0)、v1.24.10+vmware.1-tiny.1 (適用於 v2.1.1) 和 v1.24.9+vmware.1-tiny.2 (適用於 v2.1.0)。
    3. (選用) 若要將叢集設定為使用 Calico 作為 CNI 而非預設的 Antrea CNI,請依照適用於主管或以單節點類別為基礎的工作負載叢集的 Calico CNI 中適用於單節點叢集的指示進行。

    4. 套用 Cluster 物件資訊清單:

      tanzu cluster create -f vsphere-snc.yaml
      

建立標準單節點叢集

若要在使用標準 Photon 或 Ubuntu TKr 的 vSphere 上建立單節點工作負載叢集,請執行以下動作:

  1. 為工作負載叢集建立平面組態檔,如具有獨立管理叢集組態檔的 vSphere 中所述。

  2. 使用 --dry-run 旗標執行 tanzu cluster create,將平面組態檔轉換為 Kubernetes 樣式的 Cluster 物件規格,如建立物件規格中所述。

  3. 編輯 Cluster 物件規格以包含以下設定:

    • topology.controlPlane 下:

      replicas: 1
      
    • topology.workers 區塊,如果有此區塊,請予以刪除。

    • topology.variables 下:

      - name: controlPlaneTaint
        value: false
      
  4. 使用修改後的 Cluster 物件規格來執行 tanzu cluster create,如從物件規格來建立以類別為基礎的叢集中所述。

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