Reportez-vous à cet exemple pour provisionner un cluster v1beta1 avec les paramètres par défaut.

Exemple v1beta1 : cluster par défaut

L'exemple de YAML suivant utilise l'API v1beta1 pour créer un cluster par défaut basé sur la classe ClusterClass par défaut.

Cet exemple représente la configuration minimale requise pour créer un cluster à l'aide de l'API v1beta1. L'exemple est annoté avec les descriptions de chaque champ. Pour plus d'informations, reportez-vous au code source.

Notez ce qui suit en ce qui concerne cet exemple :
  • Contrairement à l'API v1alpha3, l'API v1beta1 vous oblige à spécifier le clusterNetwork. Il n'existe aucun paramètre réseau par défaut pour le type de cluster.
  • La classe ClusterClass par défaut est tanzukubernetescluster, documentée ici : API de cluster v1beta1.
  • Vous pouvez personnaliser le cluster à l'aide de variables, chacune d'elles étant une paire nom-valeur. Vous devez au minimum spécifier les classes de machine virtuelle et de stockage sous forme de variables, comme indiqué dans l'exemple.
  • Bien que cela soit techniquement facultatif, l'exemple inclut également une variable defaultStorageClass, car de nombreuses charges de travail, notamment les modules Tanzu et les graphiques Helm, nécessitent que le cluster soit provisionné avec une classe de stockage par défaut.
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