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