Fare riferimento a questo esempio per eseguire il provisioning di un cluster v1beta1 con le impostazioni predefinite.

Esempio v1beta1: cluster predefinito

Il file YAML seguente utilizza l'API v1beta1 per creare un cluster predefinito basato sul valore di ClusterClass predefinito.

Questo esempio rappresenta la configurazione minima necessaria per creare un cluster utilizzando l'API v1beta1. L'esempio viene annotato con descrizioni di ciascun campo. Per ulteriori informazioni, fare riferimento al codice di origine.

Si tenga presente quanto segue su questo esempio:
  • A differenza dell'API v1alpha3, l'API v1beta1 richiede di specificare la clusterNetwork. Non è presente alcuna impostazione di rete predefinita per il tipo di cluster.
  • Il valore di ClusterClass predefinito è tanzukubernetescluster ed è documentato qui: API v1beta1 del cluster.
  • È possibile personalizzare il cluster utilizzando variables, ognuna delle quali è una coppia nome-valore. È necessario specificare almeno le classi di macchina virtuale e storage come variabili, come illustrato nell'esempio.
  • Anche se è facoltativo, l'esempio include anche una variabile defaultStorageClass perché molti carichi di lavoro, inclusi i pacchetti Tanzu e i grafici di Helm, richiedono che il cluster sia sottoposto a provisioning con una classe di storage predefinita.
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