Since January this year Tanzu Mission Control (TMC) support deployment of Cluster Class clusters on Tanzu Kubernetes Grid 2.1 (aka “TKGm”). Support for Cluster Class clusters on vSphere 8 is available since October last year. In this article I will share a few tips on deploying Cluster Class clusters on Tanzu Kubernetes Grid 2.1.
Register your TKG management cluster
Before you can get started with TMC, you (of course) first have to deploy a TKG management cluster. The next step is to add the TKG cluster to TMC through the Administration→Management Clusters wizard in TMC.
Register the new TKG cluster, give it a name a select a Default Cluster Group for adding your workload clusters. You get a kubectl command that has to be executed in the context of your TKG management cluster.
Registration of your TKG management cluster will take a couple of minutes.
Deploy a cluster class based workload cluster
Let’s now deploy a Cluster Class workload cluster. Select the management cluster you’ve just added and select a provisioner, being a namespace on the management cluster that will hold the cluster api objects.
In the next step you have to set:
- Cluster Name = Name of your new cluster
- Cluster Group = Cluster group that will hold your new cluster
- Cluster Class = Cluster class of your new cluster.
For vSphere the Cluster Class is:
kubectl get clusterclasses.cluster.x-k8s.io
NAME AGE tkg-vsphere-default-v1.0.0 21h
The next screen allows you to setup required infrastructure details:
Most things are pretty clear, but there are a few things that are important:
- Don’t forget to select the required TKR (Kubernetes image) for your cluster. Available TKRs can be retrieved from your cluster using kubectl get tkr. Don’t forget to get these images from VMware Customer Connect, upload them to your vCenter Server and mark them as template.
- For AVI based deployments on vSphere the option aviAPIServerHAProvider must be checked. Not checking this option, will result in a failure of your cluster deployment.
- User customVMXkeys if you want to set specific labels on the worker VMs.
- Use network.nameservers and network.searchDomains if you need custom DNS settings for the workers you’re deploying.
- In this step you will also set the worker resource configuration.
In the remaining steps you need to set the control plane configuration and you configure the required (workload) node pools. These steps are similar to deploying a non-Cluster Class workload cluster.