, ,

Supervisor Capabilities, Services and Architecture Topologies (VCAP-VKS Exam Series, Part 5)

Objective 2.1 asks you to configure Supervisor capabilities, services and topologies. Here is which activation choice is permanent, which you can change on a Tuesday afternoon, and what a control plane resize actually costs in wall clock.

VCAP-VKS Exam Series · Part 5 of 34
Who this is for: You designed the estate in Part 4. Now the Supervisor is activated, someone else is filing tickets against it, and you are the person who has to live with the fields that were ticked eight months ago. This Part covers Objective 2.1, published as Configure vSphere Supervisor capabilities, services, and architecture topologies. If you want the product walkthrough underneath this series rather than the exam framing, that lives in the VKS Series.

A candidate on a study call last month asked me which Supervisor settings he would be stuck with forever if he got them wrong. He had been working through a screenshot walkthrough of the activation wizard, memorising field order. That is the wrong artifact to memorise. What Objective 2.1 rewards is knowing which of those fields you can revisit on a Tuesday afternoon and which one costs you a platform rebuild, because a scenario item will hand you a running Supervisor and a new requirement and ask what happens next.

Key takeaways:
• Objective 2.1 is published as Configure vSphere Supervisor capabilities, services, and architecture topologies. Three nouns, and items pull from all three, so a Part that only lists components will not carry you.
• Networking stack and management zone count are decided at activation and never afterwards. Nearly everything else on a Supervisor is editable in place.
• Control plane size scales up only. Tiny to Small to Medium to Large is a one way street, which makes day one sizing a permanent decision hiding inside a changeable one.
• A Supervisor backed by NSX runs vSphere Pods and VKS clusters. A Supervisor on the vSphere networking stack runs VKS clusters only. That single sentence answers a surprising share of capability items.
• Supervisor Services are the optional add on layer that installs onto a running Supervisor. Objective 2.1 wants you to know they exist and where they live. Installing and removing them is Objective 4.4, later in this series.

Fixed at activation versus changeable later

Before any of the mechanics, here is the shape of the problem in wall clock. I timed five common post activation changes on the lab estate, each one from clicking Save to the Supervisor reporting Running again. Four of them are coffee break work. One of them is a maintenance window.

Wall clock for post activation Supervisor changesMeasured on a three zone VCF 9.0 lab, Supervisor 9.0, minutes from Save to RunningDefault CNI for new clusters2 minAdd a storage policy4 minReplace the VIP certificate7 minModify control plane DNS names11 minResize control plane, Small to Medium45 min, rolling replacement of three control plane VMs0153045
Four of these are safe during business hours. One is not.

Now the artifact worth bookmarking. I call it the activation permanence table, and it is the thing I would print and stick to the wall a week before sitting this exam. Every row is a field you either saw in the activation flow or will meet in Configure, and the second column is the one the item writers care about.

Supervisor settingChangeable after activationWhereCost of changing it
Networking stack, vSphere networking or NSXNoNot exposedRebuild the Supervisor
Management zone count, one or threeNoNot exposedRebuild the Supervisor
Supervisor nameNoNot exposedRebuild the Supervisor
Control plane sizeUpward onlySupervisor > Configure > GeneralRolling replace of every control plane VM
Management network DNS and NTPYesConfigure > NetworkSeconds, no restart
Workload network DNS, ingress and egress rangesYesConfigure > NetworkMinutes, new ranges apply to new objects
Storage policies and file volume supportYesConfigure > StorageNew storage classes surface in namespaces
Default CNI for VKS clustersYesConfigure > GeneralApplies to new clusters only
VIP certificate on the API endpointYesConfigure > CertificatesShort blip on the Supervisor API
Supervisor control plane FQDN listYesConfigure > GeneralCertificate regenerated, clients re trust
HTTP proxyYesConfigure > GeneralImage pull paths reconverge
External identity providerYesConfigure > Identity ProvidersCovered by Objective 2.4
Workload zones assigned to a namespaceYes, one to threeNamespace > ConfigureCovered by Objective 4.2

Read the first three rows together and you have the whole exam angle. Everything permanent about a Supervisor is a topology decision, and every topology decision was made in the first ten minutes of activation. Everything else, including things that feel structural like storage and identity, is a runtime setting you can revise. Candidates who study this objective as a component glossary get caught by scenario items that hinge entirely on that split.

flowchart TD
  A[Change requested on a running Supervisor] --> B{Was it set at activation}
  B -->|Networking stack| C[Rebuild required]
  B -->|Management zone count| C
  B -->|Supervisor name| C
  B -->|No| D{Direction of change}
  D -->|Control plane size upward| E[Rolling replace, maintenance window]
  D -->|Control plane size downward| C
  D -->|Storage, DNS, NTP, proxy, IdP, default CNI| F[Edit in place, no restart]
  D -->|Add workload zones to a namespace| G[Namespace edit, Objective 4.2]
Every Objective 2.1 scenario resolves to one of these four endings.

Every command below assumes the lab estate this series has been building since Part 3. Last Part we chose the zone model on paper. This Part the Supervisor is live on three zones and we go and interrogate it.

# Estate and versions for every command in this part # VCF 9.0, vSphere Supervisor 9.0, three vSphere Zones on three vSphere clusters # NSX with VPC networking, Avi in the load balancing path, VKS 3.3.1 # kubectl 1.32.x with the kubectl-vsphere plugin, vSAN backing two storage policies # Password from the environment so it never reaches shell history export KUBECTL_VSPHERE_PASSWORD="$(read -rsp ‘vCenter password: ‘ p; echo "$p")" kubectl vsphere login –server="$SUPERVISOR_VIP" –vsphere-username="admin@vsphere.local" –insecure-skip-tls-verify

I use the vSphere plugin for kubectl rather than a raw kubeconfig on the Supervisor side for one reason worth saying once: the plugin fetches a short lived token tied to your vCenter single sign on session, so the same login that authorises you in vCenter authorises you against the Supervisor API. A static kubeconfig would decouple the two and hide exactly the RBAC behaviour later objectives test.

Components and capabilities you actually configure

Ask most vSphere admins what a Supervisor is and you get an answer about control plane VMs. That answer is a third of the object. Broadcom documents five components, and three of them run nowhere near the control plane VMs.

ComponentWhere it runsWhat it doesHow you see it
Supervisor control plane VMManagement zone or zones, placed by DRSKubernetes API server, etcd and controllers. One VM, or three for high availabilitykubectl get nodes, and a VM folder in vCenter
SphereletEvery ESX host in the SupervisorA kubelet ported natively to ESX, which makes the host itself a Kubernetes nodekubectl get nodes lists the host FQDN
CRX, Container Runtime ExecutiveESX hostA paravirtualised Linux kernel with a VM boundary and a direct boot path, so a vSphere Pod starts at close to container speedvCenter shows each vSphere Pod as a VM like object
VM ServiceControl planeDeploys standalone virtual machines and the machines that make up VKS clusterskubectl get virtualmachines
VKS and Cluster API modulesControl planeProvision and manage VKS clusters declarativelykubectl get clusters, kubectl get kubernetesreleases

Run the node listing on a three zone Supervisor and the mixture becomes obvious. Three control plane VMs with Kubernetes style names, then six ESX hosts appearing as worker nodes because Spherelet put them there.

$ kubectl get nodes NAME STATUS ROLES AGE VERSION 42066a1c9d3f4b1e8a72c5d0e9f31b47 Ready control-plane,master 66d v1.33.1+vmware.1 4206b7e2f18c40d9a3e5761c2b8d94af Ready control-plane,master 66d v1.33.1+vmware.1 4206d40a5c9e47b28f13a6e0d5c78b91 Ready control-plane,master 66d v1.33.1+vmware.1 esx-a-01.lab.local Ready agent 66d v1.33.1-sph-9f2c1a4 esx-a-02.lab.local Ready agent 66d v1.33.1-sph-9f2c1a4 esx-b-01.lab.local Ready agent 66d v1.33.1-sph-9f2c1a4 esx-b-02.lab.local Ready agent 66d v1.33.1-sph-9f2c1a4 esx-c-01.lab.local Ready agent 66d v1.33.1-sph-9f2c1a4 esx-c-02.lab.local NotReady agent 66d v1.33.1-sph-9f2c1a4

That last line is a real failure from my lab and it is worth pausing on, because a NotReady ESX node in a Supervisor is not a Kubernetes problem. Spherelet had stopped on that host after a network maintenance window, and until it came back the host contributed no capacity to any vSphere Pod placement, while still looking perfectly healthy in the vSphere inventory. Restarting Spherelet on the host cleared it in under a minute. An admin who only watches vCenter alarms will never see this.

Capabilities are the second noun in the objective, and here the networking choice from activation reaches forward and decides what the platform can run at all.

CapabilityNSX backed SupervisorvSphere networking stack Supervisor
vSphere Pods, containers running directly on ESX via CRXYesNo
VKS clustersYesYes
VM Service virtual machinesYesYes
Supervisor ServicesYesService dependent, and any service that ships as vSphere Pods will not install
Load balancing pathNSX load balancer or AviFoundation Load Balancer or Avi
Tenant self service networksNSX VPC, needs VKS 3.3.1 or laterNo

Broadcom states the constraint plainly in the VCF 9.0 documentation: a cluster configured with NSX supports running a vSphere Pod and a VKS cluster, while a Supervisor configured with the vSphere networking stack supports VKS clusters only. Popular study advice treats vSphere Pods as a universal Supervisor feature you can reach for anywhere. In practice they are a capability you bought with your networking decision, and if the answer options in an item include a vSphere Pod on a VDS backed Supervisor, that option is wrong on its face.

Services are the third noun. Supervisor Services are optional add on packages that install onto a running Supervisor and then present themselves to namespace consumers, Harbor as a private container registry and external-dns as a DNS record publisher being the two the blueprint names by example. They register through the appplatform API group, which is where discovery becomes useful.

# What service machinery is registered on this Supervisor $ kubectl api-resources –api-group=appplatform.vmware.com NAME SHORTNAMES APIVERSION NAMESPACED KIND supervisorservices appplatform.vmware.com/v1alpha1 false SupervisorService supervisorserviceversions appplatform.vmware.com/v1alpha1 false SupervisorServiceVersion # And the VKS side, where the old naming is still visible $ kubectl api-resources | grep -i tkg tanzukubernetesreleases tkr run.tanzu.vmware.com/v1alpha3 false TanzuKubernetesRelease
Naming note: VKS is the product formerly called TKG Service, and before that TKGS. The rename did not reach the API groups, the CRD names or most documentation paths, so run.tanzu.vmware.com and resources with tkg in the name are still what you will type and still what you will see in an item stem. Read tkg as VKS and move on. Do not treat TKGS as a separate live product.

Control plane resize, start to finish

Of everything in the permanence table, control plane size is the row that gets people, because it looks changeable and is only half changeable. Four sizes exist, Tiny through Large, and once you have picked one you can move up and never down. Here is the procedure end to end on the lab estate.

Step 1, preflight the current state

Three things have to be true before you touch the size field. All control plane VMs are healthy, the Supervisor is not mid upgrade, and there is at least one free address in the management IP range for the replacement VM. Part 4 established why the management range needs headroom beyond the running VMs. This is the operation that spends it.

# Are all three control plane VMs serving $ kubectl get nodes –selector=node-role.kubernetes.io/control-plane NAME STATUS ROLES AGE VERSION 42066a1c9d3f4b1e8a72c5d0e9f31b47 Ready control-plane,master 66d v1.33.1+vmware.1 4206b7e2f18c40d9a3e5761c2b8d94af Ready control-plane,master 66d v1.33.1+vmware.1 4206d40a5c9e47b28f13a6e0d5c78b91 Ready control-plane,master 66d v1.33.1+vmware.1 # Is anything already in flight on the Supervisor $ kubectl get pods -n kube-system –field-selector=status.phase!=Running No resources found in kube-system namespace.

Step 2, apply the size change

No CLI path exists for this one. In vSphere Client, go to Workload Management, select the Supervisor, then Configure and General, and edit Control Plane Size. Pick the next size up and save. If you open that list expecting to go down, you will find out immediately that you cannot.

# Attempting to move a Small control plane back to Tiny, from the vSphere Client task pane Task: Configure Supervisor Status: The operation is not allowed in the current state. Detail: Control plane size cannot be reduced. Current size SMALL, requested size TINY. # The list in the UI simply omits the smaller sizes. There is no supported downgrade path # and no API flag that overrides it. Rebuilding the Supervisor is the only way back down.

Step 3, watch the rolling replacement

vCenter does not resize the existing VMs. It builds a replacement control plane VM at the new size, joins it, drains and removes an old one, and repeats. On the lab estate that took 45 minutes across three VMs, roughly 13 to 14 minutes each plus validation. During each swap the Supervisor API stays reachable through the floating address, but the endpoint moves, so a long running kubectl watch will drop and need restarting.

Step 4, verify

Green looks like three Ready control plane nodes with fresh ages, the Supervisor Config Status reading Running in vSphere Client, and every namespace still resolving. Node age is the fastest tell that the replacement actually happened rather than silently stalling.

$ kubectl get nodes –selector=node-role.kubernetes.io/control-plane NAME STATUS ROLES AGE VERSION 4206f21b7e8a49c3b5d0917e4a2c68df Ready control-plane,master 38m v1.33.1+vmware.1 42063c8d0a1f42e79b64d5c8e0173fab Ready control-plane,master 24m v1.33.1+vmware.1 4206ae59c73b4d18a0e2f6b91c47d0e3 Ready control-plane,master 9m v1.33.1+vmware.1 # Namespaces unaffected, which is the point of the rolling swap $ kubectl get namespaces –no-headers | wc -l 41

Step 5, rollback and fallback

There is no rollback for a size increase, which is the honest answer and the one an item will test. Your fallback is a partial one. If the resize wedges midway, the Supervisor keeps serving on whichever control plane VMs are still Ready, so the safe move is to stop, free whatever resource is blocking the next VM, usually an IP address or cluster capacity, and let the operation resume rather than cancelling it. If the whole Supervisor becomes unrecoverable, restoring it is a separate exercise that leans on the Supervisor backup path and is out of scope here.

What you seeCauseRemediation
Control Plane Size list offers only larger sizesDownsizing is not supported at any versionAccept it, or rebuild the Supervisor if the reduction is mandatory
Replacement VM stuck in Configuring, event names no free address in the management rangeManagement IP range has no headroom beyond the running VMsExtend the range in Configure and Network, then let the task resume
kubectl vsphere login fails with x509 certificate signed by unknown authorityVIP certificate is self signed, or the FQDN list changed and the certificate was regeneratedReplace the VIP certificate with one your clients trust, or trust the issuing CA on the client
An ESX host shows NotReady in kubectl get nodes but healthy in vCenterSpherelet stopped on that hostRestart Spherelet on the host and confirm host to control plane connectivity
A Supervisor Service install is rejected on a VDS backed SupervisorService ships as vSphere Pods, which require NSXRun the workload in a VKS cluster instead, or move to an NSX backed Supervisor
A namespace reports a third of the CPU limit you setA three zone Supervisor divides namespace resources equally across the three clustersSet the limit with the split in mind, 300 MHz becomes 100 MHz per zone
Field note: I sized a customer Supervisor Tiny during a proof of concept, on the reasoning that it was three hosts and a demo that would be torn down in a month. Eighteen months later that same Supervisor carried 41 namespaces and the API server was restarting under nothing worse than a few concurrent kubectl sessions. Moving Tiny to Small took 45 minutes of rolling replacement in a Saturday window, and 20 of those minutes were the second control plane VM sitting in Configuring because the management range had exactly as many addresses as running VMs and no spare. Total Supervisor API interruption came to about 6 minutes across three short gaps, and nobody lost a workload. My verdict is unambiguous. Size the control plane one step above what the proof of concept needs, because the cost of being one size too big is some idle memory and the cost of being one size too small is a maintenance window you have to justify.

Exam focus for objective 2.1

EXAM FOCUS, objective 2.1, Configure vSphere Supervisor capabilities, services, and architecture topologies:

What it tests. Whether you can look at a Supervisor and say what it can run, what it cannot run, which of its settings you can still change, and which components are doing which job. Not whether you can recite an activation wizard.

Item types it tends to appear in. Matching and drag and drop for components against functions, since Spherelet, CRX, VM Service and the Cluster API modules map cleanly onto five distinct jobs. Multiple selection multiple choice for capability sets, typically phrased as select all workload types this Supervisor supports. Point and click or hot area for locating a setting in the Configure pane.

The trap that catches experienced admins. Assuming that because a Supervisor setting appears in a UI it can be changed in both directions. Control plane size is the classic. A well written item will offer a scenario where an administrator wants to reclaim resources by moving Medium back to Small, and the correct answer is that it is not possible, not that it requires a maintenance window. Long time vSphere admins pick the maintenance window answer, because in vSphere almost everything can be resized both ways.

Objective checkpoint

Three original questions, written from the published objective wording:

1. A Supervisor was activated on the vSphere networking stack with Avi in the load balancing path. A developer asks to run a lightweight container workload directly on ESX without provisioning a cluster. What do you tell them?
Answer: It is not available on this Supervisor. Reasoning: vSphere Pods require NSX backed networking, and the networking stack cannot be changed after activation, so the workload belongs in a VKS cluster.

2. An administrator wants to reduce the control plane footprint of a Supervisor currently sized Medium. Which action achieves it?
Answer: None of the in place options. Reasoning: control plane size scales upward only, so reducing it requires rebuilding the Supervisor rather than editing a setting.

3. On a Supervisor, kubectl get nodes returns three nodes with hexadecimal names and six nodes with ESX host FQDNs. Which component is responsible for the second group appearing at all?
Answer: Spherelet. Reasoning: Spherelet is a kubelet ported natively to ESX, and it is what makes an ESX host join the Supervisor as a Kubernetes node.

Activation decisions worth writing down

My recommendation for this objective is narrow and practical. Keep a one page record of every activation choice on every Supervisor you run: networking stack, management zone count, control plane size, storage policies and the management IP range with its spare addresses counted. Four of those five you can change later, and knowing which one you cannot is the difference between answering a scenario item in ten seconds and talking yourself into a rebuild that was never required.

Tonight, do one thing in your own lab. Open Workload Management, go to Configure on your Supervisor, and walk every tab writing down which fields are editable and which are greyed out. That greyed out list is your permanence table, verified against your own build rather than mine, and it takes about fifteen minutes. Part 6 picks up the networking half of that record and takes Supervisor networking apart properly, VDS against NSX segments against VPC, with the load balancing path attached.

VCAP-VKS Exam Series · Part 5 of 34
« Previous: Part 4  |  Guide  |  Next: Part 6 »

References

Supervisor Architecture and Deployment Options, Broadcom TechDocs, VCF 9.0
Configuring and Managing a Supervisor, Broadcom TechDocs, VCF 9.0
Change the Control Plane Size of a Supervisor, Broadcom TechDocs, VCF 9.0
VMware Cloud Foundation VKS Administrator Exam Guide, 3V0-24.25

About The Author


Discover more from Journal of Intelligent Infrastructure

Subscribe to get the latest posts sent to your email.

Leave a Reply

Your email address will not be published. Required fields are marked *

Architect’s Toolkit

About the Author

Dr. Pranay Jha is a Cloud and AI Consultant with 18+ years of experience in hybrid cloud, virtualization, and enterprise infrastructure transformation. He specializes in VMware technologies, multi-cloud strategy, and Generative AI solutions. He holds a PhD in Computer Applications with research focused on Cloud and AI, has published multiple research papers, and has been a VMware vExpert since 2016 and a VMUG Community Leader.

Discover more from Journal of Intelligent Infrastructure

Subscribe now to keep reading and get access to the full archive.

Continue reading