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