Supervisor performance is erratic and may become unresponsive when the default content library is assigned across many individual namespaces.
Symptoms include:
vCenter 8.x
vSphere with Kubernetes
This issue occurs when a customer has many namespaces and a Kubernetes Service Content Library is manually associated with individual vSphere Namespaces, even though it is already defined as the Default Content Library at the Supervisor level.
The default subscription Content Library has over 120 objects. By assigning it to every namespace a key is generated for each and stored in etcd.
Similarly this associates a number of VirtualMachineImage objects to the namespace and a key is generated for each and stored in etcd.
When associated at the namespace level, the Supervisor propagates a duplicate set of VirtualMachineImage objects and imageregistry.vmware.com objects for every namespace.
As the number of namespaces grows, this redundancy leads to a massive accumulation of keys in etcd, with high memory consumption overwhelming the controller memory limits during reconciliation.
1. Verify the Redundancy
Check the name of the content library configured for the Supervisor
In the vSphere Client, Navigate to Workload Management > Supervisors > Configure > Tanzu Kubernetes Grid Service > Content Library .
Note the library defined here.
2. Disassociate the Library
In the vSphere Client, Remove the Content Library from each Namespace where it has been added.
Note: The VM Service card should only contain content libraries for custom/standalone VM images. If the namespace only uses standard TKG images, it should have 0 associated libraries.
3: Stabilize System Pods (If Necessary)
If the pods do not recover automatically after the objects are removed, manually restart using kubectl to delete the affected pods.
Note
ClusterContentLibrary already exists and so a rollout is not triggered.ClusterVirtualMachineImage objects (backed by the Supervisor-level Content Library), removing the namespace-level association does not change the VM spec or image resolution path for existing guest clusters.kubectl get cvmi shows the required images remain available and READY: True after the namespace libraries are removed.If the etcd's keyspace data limit has been reached or exceeded as per vSphere Kubernetes Cluster Unhealthy, Kubectl Commands Failing due to ETCD Database Full or Exceeded
Please open a ticket to VMware by Broadcom Technical Support referencing this KB for assistance in cleaning up ETCD database and restoring it to operational state.
For further guidance on managing pod memory or cleaning up stale items, see the following resources:
Increase VMOP Memory
Cleanup Stale ContentLibraryItems
Manage Supervisor Content Libraries