Consulte este exemplo para provisionar um cluster v1beta1 com as configurações padrão.

Exemplo de v1beta1: cluster padrão

O exemplo de YAML a seguir usa a API v1beta1 para criar um Cluster padrão com base no ClusterClass padrão.

Este exemplo representa a configuração mínima necessária para criar um cluster usando a API v1beta1. O exemplo é anotado com descrições de cada campo. Para obter mais informações, consulte o código-fonte.

Observe o seguinte sobre este exemplo:
  • Ao contrário da API v1alpha3, a API v1beta1 requer que você especifique o clusterNetwork. Não há configuração de rede padrão para o tipo de cluster.
  • O ClusterClass padrão é tanzukubernetescluster, que está documentado aqui: API do cluster v1beta1. O uso de um ClusterClass diferente não é compatível com o TKG em Supervisor.
  • Você pode personalizar o cluster usando variables, cada um dos quais é um par nome-valor. No mínimo, você deve especificar a VM e as classes de armazenamento como variáveis, conforme mostrado no exemplo.
  • Embora tecnicamente opcional, o exemplo também inclui uma variável defaultStorageClass porque muitas cargas de trabalho, incluindo Tanzu Pacotes e gráficos Helm, exigem que o cluster seja provisionado com uma classe de armazenamento padrão.
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
#define the cluster
metadata:
  #user-defined name of the cluster; string
  name: cluster-default
  #kubernetes namespace for the cluster; string
  namespace: tkg2-cluster-ns
#define the desired state of cluster
spec:
  #specify the cluster network; required, there is no default
  clusterNetwork:
    #network ranges from which service VIPs are allocated
    services:
      #ranges of network addresses; string array
      #CAUTION: must not overlap with Supervisor
      cidrBlocks: ["198.51.100.0/12"]
    #network ranges from which Pod networks are allocated
    pods:
      #ranges of network addresses; string array
      #CAUTION: must not overlap with Supervisor
      cidrBlocks: ["192.0.2.0/16"]
    #domain name for services; string
    serviceDomain: "cluster.local"
  #specify the topology for the cluster
  topology:
    #name of the ClusterClass object to derive the topology
    class: tanzukubernetescluster
    #kubernetes version of the cluster; format is TKR NAME
    version: v1.23.8---vmware.2-tkg.2-zshippable
    #describe the cluster control plane
    controlPlane:
      #number of control plane nodes; integer 1 or 3
      replicas: 3
    #describe the cluster worker nodes
    workers:
      #specifies parameters for a set of worker nodes in the topology
      machineDeployments:
        #node pool class used to create the set of worker nodes
        - class: node-pool
          #user-defined name of the node pool; string
          name: node-pool-1
          #number of worker nodes in this pool; integer 0 or more
          replicas: 3
    #customize the cluster
    variables:
      #virtual machine class type and size for cluster nodes
      - name: vmClass
        value: guaranteed-medium
      #persistent storage class for cluster nodes
      - name: storageClass
        value: tkg2-storage-policy
      # default storageclass for control plane and worker node pools
      - name: defaultStorageClass
        value: tkg2-storage-policy