Consulte este ejemplo para aprovisionar un clúster v1beta1 con la configuración predeterminada.

Ejemplo de v1beta1: clúster predeterminado

El siguiente ejemplo de YAML utiliza la API v1beta1 para crear un clúster predeterminado basado en la ClusterClass predeterminado.

Este ejemplo representa la configuración mínima necesaria para crear un clúster mediante la API v1beta1. El ejemplo se anota con descripciones de cada campo. Para obtener más información, consulte el código de origen.

Tenga en cuenta lo siguiente sobre este ejemplo:
  • A diferencia de la API v1alpha3, la API v1beta1 requiere que especifique la clusterNetwork. No hay ninguna configuración de red predeterminada para el tipo de clúster.
  • La ClusterClass predeterminada es tanzukubernetescluster que se documenta aquí: API de clúster v1beta1.
  • Puede personalizar el clúster mediante variables, cada una de las cuales es un par nombre-valor. Como mínimo, debe especificar las clases de máquina virtual y almacenamiento como variables, como se muestra en el ejemplo.
  • Aunque técnicamente es opcional, el ejemplo también incluye una variable defaultStorageClass, ya que muchas cargas de trabajo, incluidos los paquetes de Tanzu y los gráficos de Helm, requieren que el clúster se aprovisione con una clase de almacenamiento predeterminada.
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: tkg-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.26.13---vmware.1-fips.1-tkg.3
    #describe the cluster control plane
    controlPlane:
      #number of control plane nodes
      #integer value 1 or 3
      #NOTE: Production clusters require 3 control plane nodes
      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: tkg-storage-policy
      # default storageclass for control plane and worker node pools
      - name: defaultStorageClass
        value: tkg-storage-policy