请参阅此示例,置备使用 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