💾 Archived View for gmi.runtimeterror.dev › removing-recreating-vcls-vms › index.gmi captured on 2024-05-26 at 14:41:43. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-05-10)

➡️ Next capture (2024-07-09)

-=-=-=-=-=-=-

💻 [runtimeterror $]

2022-07-24 ~ 2022-07-25

Removing and Recreating vCLS VMs

Way back in 2020, VMware released vSphere 7 Update 1 and introduced the new vSphere Clustering Services (vCLS) [1] to improve how cluster services like the Distributed Resource Scheduler (DRS) operate. vCLS deploys lightweight agent VMs directly on the cluster being managed, and those VMs provide a decoupled and distributed control plane to offload some of the management responsibilities from the vCenter server.

[1] vSphere Clustering Services (vCLS)

Image: vCLS VM

That's very cool, particularly in large continent-spanning environments or those which reach into multiple clouds, but it may not make sense to add those additional workloads in resource-constrained homelabs. And while the vCLS VMs are supposed to be automagically self-managed, sometimes things go a little wonky and that management fails to function correctly, which can negatively impact DRS. Recovering from such a scenario is complicated by the complete inability to manage the vCLS VMs through the vSphere UI.

Fortunately there's a somewhat-hidden way to disable (and re-enable) vCLS on a per-cluster basis, and it's easy to do once you know the trick. This can help if you want to permanently disable vCLS (like in a lab environment) or if you just need to turn it off and on again to clean up and redeploy uncooperative agent VMs.

<-- note -->

Disabling vCLS will break DRS, and could have other unintended side effects. Don't do this in prod if you can avoid it.

<-- /note -->

Find the cluster's domain ID

It starts with determining the affected cluster's domain ID, which is very easy to do once you know where to look. Simply browse to the cluster object in the vSphere inventory, and look at the URL:

Image: Cluster domain ID

That `ClusterComputeResource:domain-c13` portion tells me exactly what I need to know: the ID for the `NUC Cluster` is `domain-c13`.

Disable vCLS for a cluster

With that information gathered, you're ready to do the deed. Select the vCenter object in your vSphere inventory, head to the **Configure** tab, and open the **Advanced Settings** item.

Image: vCenter Advanced Settings

Now click the **Edit Settings** button to open the editor panel. You'll need to create a new advanced setting so scroll to the bottom of the panel and enter:

| Setting Name | Value |
|:--- |:--- |
| `config.vcls.clusters.domain-[id].enabled` | `false` |

Image: Adding the advanced setting

Then click **Add** and **Save** to apply the change.

Within moments, the vCLS VM(s) will be powered off and deleted:

Image: Be gone, vCLS!

Re-enable vCLS

If you need to bring back vCLS (such as when troubleshooting a problematic cluster), that's as simple as changing the advanced setting again:

| Setting Name | Value |
|:--- |:--- |
| `config.vcls.clusters.domain-[id].enabled` | `true` |

Image: Re-enabling vCLS

And the VM(s) will be automatically recreated as needed:

Image: Recreated vCLS VM

---

📧 Reply by email

Related articles

Enabling FIPS Compliance Fixes Aria Lifecycle 8.14

Quick Salt State to Deploy Netdata

Tailscale Feature Highlight: SSH, Serve, and Funnel

---

Home

This page on the big web