Consulte este exemplo para provisionar um cluster v1beta1 com configurações personalizadas.

Exemplo de v1beta1: cluster personalizado

O exemplo de YAML a seguir demonstra como usar a API v1beta1 para provisionar um Cluster com várias configurações personalizadas usando variáveis. Este exemplo se baseia no Exemplo de v1beta1: cluster padrão.

O exemplo usa variáveis para volumes persistentes para controlar os nós de plano e de trabalho para componentes de alta rotatividade, como etcd, containerd e kubelet. Além disso, a variável vmClass é declarada duas vezes. A variável is vmClass declarada em workers.machineDeployments substitui a variável vmClass declarada globalmente para que os nós do trabalhador sejam provisionados com uma classe de VM maior.

apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: cluster-custom
  namespace: tkg2-cluster-ns
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.1-tkg.2-zshippable
    controlPlane:
      replicas: 3
    workers:
      machineDeployments:
        - class: node-pool
          name: node-pool-1
          replicas: 3
          variables:
            overrides:
            - name: vmClass
              value: guaranteed-xlarge
    variables:
      - name: vmClass
        value: guaranteed-medium
      - name: storageClass
        value: tkg2-storage-profile
      - name: defaultStorageClass
        value: tkg2-storage-profile
      - name: controlPlaneVolumes
        value:
          - name: etcd
            capacity:
              storage: 4Gi
            mountPath: /var/lib/etcd
            storageClass: tkg2-storage-profile
      - name: nodePoolVolumes
        value:
          - name: containerd
            capacity:
              storage: 50Gi
            mountPath: /var/lib/containerd
            storageClass: tkg2-storage-profile
          - name: kubelet
            capacity:
              storage: 50Gi
            mountPath: /var/lib/kubelet
            storageClass: tkg2-storage-profile