請參閱此範例,佈建使用 Calico CNI (而非預設 Antrea CNI) 的 v1beta1 叢集。此外,還可以參閱此範例,瞭解如何為叢集自訂一或多個 TKR 套件。

v1beta1 範例:使用自訂 CNI 的叢集

以下範例 YAML 示範了如何使用 v1beta1 API 透過自訂 CNI 佈建叢集。此範例根據 v1beta1 範例:預設叢集而建置。

tanzukubernetescluster ClusterClass 中所定義,預設 CNI 為 Antrea。另一個支援的 CNI 為 Calico。若要將 CNI 從 Antrea 變更為 Calico,請透過建立參考 CalicoConfig 自訂資源的 ClusterBootstrap 自訂資源使預設 CNI 超載。

ClusterBootstrap 自訂資源包含 spec.cni.refName 區塊,其值來自 TKR。(如需有關如何取得此欄位的值的指引,請參閱 TKr 套件。) ClusterBootstrap 值將覆寫 ClusterClass 中的預設值,並在建立叢集時由叢集 API (CAPI) 選擇。 ClusterBootstrap 自訂資源的名稱必須與 Cluster 相同。
備註: 該範例作為單一 YAML 檔案提供,但可以分成多個單獨的檔案。如果進行分割,則必須按順序進行建立:首先建立 CalicoConfig 自訂資源,然後建立 ClusterBootstrap,最後建立 cluster-calico 叢集。
---
apiVersion: cni.tanzu.vmware.com/v1alpha1
kind: CalicoConfig
metadata:
  name: cluster-calico
spec:
  calico:
    config:
      vethMTU: 0
---
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
  annotations:
    tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.23.8---vmware.2-tkg.2-zshippable
  name: cluster-calico
spec:
  cni:
    refName: calico.tanzu.vmware.com.3.22.1+vmware.1-tkg.2-zshippable
    valuesFrom:
      providerRef:
        apiGroup: cni.tanzu.vmware.com
        kind: CalicoConfig
        name: cluster-calico
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: cluster-calico
spec:
  clusterNetwork:
    services:
      cidrBlocks: ["198.51.100.0/12"]
    pods:
      cidrBlocks: ["192.0.2.0/16"]
    serviceDomain: "cluster.local"
  topology:
    class: tanzukubernetescluster
    version: v1.23.8---vmware.2-tkg.2-zshippable
    controlPlane:
      replicas: 3
    workers:
      machineDeployments:
        - class: node-pool
          name: node-pool-1
          replicas: 3
    variables:
      - name: vmClass
        value: guaranteed-medium
      - name: storageClass
        value: tkg2-storage-policy