Virtual machine classes must be associated with the vSphere Namespace where you are provisioning TKG Service clusters.
Virtual Machine Class Binding Error
If you attempt to provision a TKGS cluster using one or more VM classes that you have not added to the target
vSphere Namespace, you receive the error
VirtualMachineClassBindingNotFound
, an example of which is shown below.
conditions: - lastTransitionTime: "2021-04-25T02:50:58Z" message: 1 of 2 completed reason: VirtualMachineClassBindingNotFound @ Machine/test-cluster severity: Error status: "False" type: ControlPlaneReady - lastTransitionTime: "2021-04-25T02:49:21Z" message: 0/1 Control Plane Node(s) healthy. 0/2 Worker Node(s) healthy reason: WaitingForNodesHealthy severity: Info status: "False" type: NodesHealthy
To correct the error, configure the vSphere Namespace with the VM classes you want to use for your TKG Service cluster. Run the command
to view the VM classes that are associated with the vSphere Namespace.kubectl get virtualmachineclass
Note: The command
kubectl get virtualmachineclassbindings
is deprecated as of vSphere 8 U3. The correct command to use is
virtualmachineclass
.
Warning: The command
kubectl get virtualmachineclasses
returns all VM classes available on
Supervisor. However, because you can use only those VM classes that are associated with the target
vSphere Namespace to provision a cluster, the plural version of the noun is informational-only and cannot be relied on when provisioning.