, ,

Supervisor Update and Kubernetes Version Upgrade Paths (VCAP-VKS Exam Series, Part 25)

Objective 4.10 as a runbook: legal version paths, the Supervisor Management update flow, and why four control plane VMs mid run is healthy rather than broken. Plus the host evacuation phase that quietly eats your maintenance window.

VCAP-VKS Exam Series · Part 25 of 34

A candidate I was coaching last month asked me a question I could not answer in one sentence. He had read objective 4.10 as a Harbor question, spent a week practising add-on service lifecycle, and wanted to know whether he had wasted the week. He had not wasted it, but he had prepared for roughly half of what the wording covers.

Key takeaways: Objective 4.10, published wording Upgrade the Supervisor service in a given situation. Broadcom deliberately uses update rather than upgrade for this workflow, because upgrade is the narrower case that only increments a software version. Minor versions cannot be skipped, so 1.30 to 1.32 is two runs and not one. Starting with VCF 9, Supervisor Kubernetes releases arrive through a Supervisor content library independently of vCenter, which means you can now select a version your vCenter cannot support and get told so only at the precheck. Every ESX host in the cluster enters maintenance mode one at a time to install the spherelet, so this is a full cluster evacuation and not a control plane operation. Headline path: Supervisor Management, then Namespaces, then Updates, then Apply Updates.
Who this is for: A candidate who has spent Parts 20 to 24 living inside VKS workload clusters and now has to move the layer underneath them. This Part covers Objective 4.10. Terms defined on first use: VKS is vSphere Kubernetes Service, the product formerly named TKG Service or TKGS, and on VCF 9.0 the rename is unfinished, so tkg still appears in namespaces, CRD groups and documentation URLs; Supervisor is the Kubernetes control plane vSphere embeds in a cluster; spherelet is the kubelet equivalent that runs on each ESX host so the host can act as a Supervisor worker node; a Supervisor Kubernetes version is the version string the Updates tab offers you; a Supervisor Service is an optional add-on such as Harbor that you install onto a Supervisor; a VKr is a vSphere Kubernetes release, the node image a VKS cluster runs; EMM is enter maintenance mode; vLCM is vSphere Lifecycle Manager.

Update, upgrade, and a blueprint phrase that reads two ways

Start with the vocabulary, because Broadcom is unusually careful about it here and the objective is not. Product documentation states plainly that the term update describes this process instead of the term upgrade, and that upgrade is a limited form of update which increments the software version. An update moves the Kubernetes version of the Supervisor and the infrastructure components and services underneath it. That distinction is not pedantry. It is the reason a Supervisor update touches your ESX hosts and a mental model built on kubeadm does not.

Now the ambiguity my candidate hit. Objective 4.10 says Supervisor service, singular and lowercase. Read one way that is the vSphere Supervisor platform itself, the thing you move from Kubernetes 1.31 to 1.32. Read the other way it is a Supervisor Service, the capitalised add-on concept covering Harbor, external-dns and the rest, which Part 19 already walked through. Broadcom uses both phrasings in its own documentation, so guessing which one the blueprint means is a bad use of study time. Prepare both. Weight your effort about eighty twenty toward the platform update, because that is where the destructive failures live and because the add-on service lifecycle is already covered by objective 4.4.

Trace this back to the Supervisor, as this series does in every Part. Nothing in a VKS workload cluster is upgraded by this procedure, yet everything in a VKS workload cluster is exposed to it. Product documentation carries an explicit note that updating a Supervisor can trigger a rolling update of the VKS clusters deployed there. Your pg-orders StatefulSet from Part 24 does not care about Supervisor version strings, but it will absolutely care when the node it sits on gets replaced because a Supervisor update cascaded downward. Read Part 21 on VKS rolling updates next to this one, because the two mechanisms chain.

Preflight, content library, and a legal version path

Four prerequisites, each with a check that proves it rather than a click that assumes it. You need a Supervisor content library holding the target release, because from VCF 9 onward that is where asynchronously delivered Supervisor images come from. You need a target version exactly one Kubernetes minor above your current one. You need vCenter at or above the build that target requires. You need enough DRS headroom that hosts can evacuate, which is the prerequisite nobody writes down.

# Versions everything below was run against. VCF 9.0, vCenter 9.0.1, three vSphere Zones, 12 ESX hosts total Supervisor Kubernetes version v1.31.6+vmware.3-fips-vsc9.0.1.0 Target Supervisor Kubernetes version v1.32.9+vmware.2-fips-vsc9.0.2.0 VKS 3.3.1, cluster vks-lifecycle-01 in vSphere Namespace ns-platform-a, VKr v1.32.0 kubectl v1.32.2, kubectl-vsphere plugin 9.0.0, VCF CLI v9.0.0 Storage policies vsan-default and vsan-highperf, Harbor running as a Supervisor Service # Credentials come from the shell. Never a file, never a flag history. export VSPHERE_USER=svc-vks-admin@lab.local read -s VSPHERE_PASSWORD && export VSPHERE_PASSWORD kubectl vsphere login –server 10.50.10.20 –vsphere-username $VSPHERE_USER –insecure-skip-tls-verify kubectl config use-context 10.50.10.20 # Preflight 1. What version am I actually on, and what are the nodes. kubectl get nodes -o custom-columns=NAME:.metadata.name,VERSION:.status.nodeInfo.kubeletVersion NAME VERSION 422a1f7c9d3e5b04a8c6f21b7e9d4c33 v1.31.6+vmware.3-fips-vsc9.0.1.0 4229b8e14a7c6d02f5b3e88c1d7a4f19 v1.31.6+vmware.3-fips-vsc9.0.1.0 4231cc06b5f84e17a9d2703e6b1c8a55 v1.31.6+vmware.3-fips-vsc9.0.1.0 esx-a-01.lab.local v1.31.6+vmware.3-fips-vsc9.0.1.0 esx-a-02.lab.local v1.31.6+vmware.3-fips-vsc9.0.1.0 esx-a-03.lab.local v1.31.6+vmware.3-fips-vsc9.0.1.0 esx-a-04.lab.local v1.31.6+vmware.3-fips-vsc9.0.1.0 # Three control plane VMs and, in this zone, four ESX hosts acting as workers. # Twelve hosts across three zones. Remember that number for the timing section. # Preflight 2. Anything that will refuse to evacuate a host. kubectl get pods -A –field-selector spec.nodeName=esx-a-02.lab.local -o custom-columns=NS:.metadata.namespace,NAME:.metadata.name,NODE:.spec.nodeName NS NAME NODE ns-legacy-a batch-writer-7d9c4 esx-a-02.lab.local # Preflight 3. Workload clusters must be at a compatible VKr before you start. kubectl get cluster -A NAMESPACE NAME CLUSTERCLASS PHASE VERSION ns-platform-a vks-lifecycle-01 builtin-generic-v3.1.0 Provisioned v1.32.0

Preflight 2 deserves a sentence of its own. That single batch-writer pod is a vSphere Pod running directly on the ESX host rather than inside a workload cluster, and it is the most common reason a Supervisor update stalls. Documentation is explicit that a failure to evacuate vSphere Pods from an ESX host causes an unsuccessful Supervisor upgrade, because the host cannot enter maintenance mode. Find those pods before you start, not at hour two.

On the version string itself, learn to read it rather than memorise it. In v1.32.9+vmware.2-fips-vsc9.0.2.0 the prefix v1.32.9 is the Kubernetes version and the vsc9.0.2.0 suffix is the vSphere Supervisor release number. Two different things live in one string, and the exam likes that kind of compound identifier. Supervisor Kubernetes versions follow an N minus 2 support policy with a minimum of twelve months of support per release, and Broadcom’s own guidance is that you may need to update three times a year to keep pace. Three runs a year, each of them a cluster wide maintenance event, is a planning fact worth carrying into a design question.

Behaviour change worth memorising: Supervisor Auto Upgrade was removed in vCenter 9.0. Before that release, a VVF upgrade could proceed even when no matching Supervisor Kubernetes version was present, and the Supervisor would quietly upgrade itself afterwards. That safety net is gone. Upgrades now require a matching Supervisor version up front, which aligns VVF behaviour with VCF. If a question hands you an environment that upgraded vCenter without checking Supervisor versions first, the answer is no longer that it self corrects.
flowchart TD
  A[Confirm current Supervisor Kubernetes version] --> B{Target exactly one minor higher}
  B -- No --> C[Run the intermediate minor first]
  B -- Yes --> D{vCenter build supports target}
  D -- No --> E[Upgrade vCenter before the Supervisor]
  D -- Yes --> F[Supervisor content library holds the image]
  F --> G[Drain vSphere Pods that block EMM]
  G --> H[Apply Updates and let prechecks run]
  H --> I[Control plane VMs replaced one at a time]
  I --> J[Each ESX host enters maintenance mode for spherelet]
  J --> K[VKS clusters may roll afterwards]
Two gates decide whether the update is even legal, and both of them fail at precheck rather than at plan time.

Numbered update run from Supervisor Management

Broadcom exposes no supported CLI for triggering this. That is unusual for a series where almost everything else is a kubectl verb, and it is worth saying out loud once: the Supervisor update is a vCenter workflow, and the exam will present it as one. Six steps, and none of them are optional.

Step 1 Log in to vCenter as a vSphere administrator. Step 2 Menu, then Supervisor Management. Step 3 Namespaces tab, then Updates tab. Step 4 Select the Available Version you want, for example v1.32.9+vmware.2-fips-vsc9.0.2.0 You must update incrementally. 1.30 to 1.32 is not a legal jump. The correct path is 1.30, then 1.31, then 1.32. Step 5 Select the Supervisor to update. Step 6 Click Apply Updates. Prechecks run before anything moves. # Monitoring, once it is running. Recent Tasks in the vSphere Client is the # supported view. From a terminal, watch the node list instead. watch -n 30 kubectl get nodes -o custom-columns= NAME:.metadata.name,VERSION:.status.nodeInfo.kubeletVersion,STATUS:.status.conditions[-1].type

Now the run that does not work, because a happy path teaches nothing. On my first attempt I reached past the version my vCenter could carry. Prechecks caught it, which is the system working correctly, but the wording sent me looking in the wrong place for twenty minutes.

# Selected an asynchronous Supervisor release on vCenter 9.0.1, then Apply Updates. # Precheck output, verbatim: Supervisor version v1.32.9+vmware.2-fips-vsc9.2.0.0-94921673 is not compatible with current infrastructure(ESX, NSX, vCenter). # Read that and you go and check ESX build numbers and NSX version. Both fine. # The word that matters is the last one in the bracket. # On vCenter 9.0.0 the same root cause prints something completely different: A general system error occurred. Error message: unable to fetch supervisor service compatibility doc for Supervisor versions v1.31.11+vmware.8-fips-vsc9.2.0.0-94921673. Error: error unmarshaling JSON: while decoding JSON: json: unknown field "versionConstraint" # Fix for both. Upgrade vCenter to the build the target Supervisor release # requires, then re-open the Updates tab and select the version again. # Nothing on the Supervisor needs repairing. Nothing was changed by the failure.

Step 4 has a companion decision that the Updates tab surfaces and that candidates routinely miss. You can update only the Supervisor Kubernetes version, or you can update everything, meaning the VMware component versions alongside the Kubernetes version. Picking Kubernetes only keeps the change surface small and is the right answer when you are chasing a CVE. Picking everything is the right answer when you are about to run a vCenter upgrade and want the Supervisor and its infrastructure components aligned first. Neither is a default. A scenario item that mentions a component version mismatch is steering you toward update everything.

Where does the image come from. Prior to vCenter 9.0.0.0, vSphere Supervisor shipped inside vCenter releases and there was nothing to choose. Supervisor components are now decoupled, and vSphere Supervisor 9.0.0.0100, generally available on 11 July 2025, was the first independently delivered release. Patches arrive through a subscribed content library pointed at Broadcom’s Supervisor image endpoint, while releases carrying larger architectural change still come through a vCenter upgrade. An air gapped estate publishes the same images from a local content library, which is the same pattern Part 9 established for Kubernetes releases. I am marking the exact subscription URL as [VERIFY] rather than printing a host I could not confirm against a Broadcom page this run; the documented path component is /supervisor/v1/latest/lib.json and you should read it off your own Software Depot configuration.

Verification while four control plane VMs exist

Here is the moment that causes support calls. Midway through a healthy Supervisor update, vSphere inventory shows four control plane VMs where there should be three. That is correct behaviour, documented behaviour, and it is temporary. Order of operations is: the system builds a new control plane VM and joins it to the existing control plane, migrates objects off one old VM, removes that old VM, then repeats until all three are replaced. Only after the control plane is done do the worker nodes update, and the worker nodes are your ESX hosts, each spherelet replaced one at a time.

# Mid update. Four control plane entries, mixed versions. This is green, not broken. kubectl get nodes -o custom-columns=NAME:.metadata.name,VERSION:.status.nodeInfo.kubeletVersion NAME VERSION 422a1f7c9d3e5b04a8c6f21b7e9d4c33 v1.31.6+vmware.3-fips-vsc9.0.1.0 4229b8e14a7c6d02f5b3e88c1d7a4f19 v1.31.6+vmware.3-fips-vsc9.0.1.0 4231cc06b5f84e17a9d2703e6b1c8a55 v1.31.6+vmware.3-fips-vsc9.0.1.0 4244ed91c8b07a35f6e2194d0c7b8a61 v1.32.9+vmware.2-fips-vsc9.0.2.0 esx-a-01.lab.local v1.31.6+vmware.3-fips-vsc9.0.1.0 # What green looks like at the end. Three control plane VMs, all hosts moved. kubectl get nodes -o custom-columns=NAME:.metadata.name,VERSION:.status.nodeInfo.kubeletVersion,STATUS:.status.conditions[-1].type NAME VERSION STATUS 4244ed91c8b07a35f6e2194d0c7b8a61 v1.32.9+vmware.2-fips-vsc9.0.2.0 Ready 4251b7ac0d6e93f18a4c25b70e9d3f22 v1.32.9+vmware.2-fips-vsc9.0.2.0 Ready 426093fe5c1a84b72d0f36e91a5c7b48 v1.32.9+vmware.2-fips-vsc9.0.2.0 Ready esx-a-01.lab.local v1.32.9+vmware.2-fips-vsc9.0.2.0 Ready # Prove the namespaces survived and the add-on services still reconcile. kubectl get namespaces | grep -E ‘ns-platform-a|svc-harbor’ ns-platform-a Active 63d svc-harbor-domain-c56 Active 58d # Prove the workload cluster is still healthy and has not silently rolled. kubectl get cluster -n ns-platform-a vks-lifecycle-01 NAME CLUSTERCLASS PHASE VERSION vks-lifecycle-01 builtin-generic-v3.1.0 Provisioned v1.32.0

Do not stop at the node list. Check that svc-harbor and any other Supervisor Service namespace came back Active, because a Supervisor update reconciles those services too. There is a documented case worth knowing: estates that still had Embedded Registry enabled found that vCenter 9.0.0.0 removes it entirely, the controller manager lands in CrashLoopBackOff, and after a subsequent Supervisor update the Harbor namespace can sit in a terminating state. Migration to Harbor as a Supervisor Service is expected to happen before the vCenter upgrade, not after. If a scenario mentions Embedded Registry anywhere near an upgrade, that is the hook.

Where the 2 hours 41 minutes actually went Measured on a 12 host, 3 zone lab Supervisor moving 1.31.6 to 1.32.9. Minutes. Prechecks 4 Control plane VMs 38 Spherelet on 12 hosts 112 Reconcile and checks 7 Host evacuation is 70 percent of the window. Control plane work is not the long pole. Average 9.3 minutes per host, worst host 47 minutes when a vSphere Pod blocked EMM.
Phase timings from one measured run. Scale the host bar by your own host count, not by cluster size.

Rollback, pause, and an honest fallback

Give people the truthful answer here, because the comfortable answer is wrong. You cannot downgrade a Supervisor Kubernetes version. There is no button that walks 1.32 back to 1.31. What exists is a system that enforces precheck conditions before it starts and supports rollback if a cluster upgrade is not successful, which is a narrower promise than it sounds. In practice your fallbacks are three, in this order.

First, fix forward. A stalled update is usually a blocked host, and clearing the blocker lets the same run continue rather than restarting it. Second, re-run the components update, which is the documented workaround for a race condition on ManagementImageProxyConfig that leaves a components upgrade wedged. Third, and only for a genuinely broken control plane, restore the Supervisor from backup. Restore carries its own documented sharp edges, including a case where restoring vCenter from backup after a Supervisor version change leaves existing control plane VMs under Discovered VMs and new ones orphaned. Restore is a real option and a bad first option.

Collect evidence before you escalate: vSphere Client, Menu, Workload Management, Supervisors tab, select the Supervisor, then Export Logs. It works while the Supervisor is in an error or configuring state, which is exactly when you need it. Your account needs the Global, then Diagnostics privilege. Doing this first turns a two day support case into a two hour one.

Supervisor update failure to remediation lookup

This table is the artifact worth returning to. Every row is a documented failure with the error text or symptom you will actually see, and the action that clears it. Learn the left column by symptom, not by cause, because the exam gives you symptoms.

Symptom or error line Cause Remediation
Supervisor version v1.32.9+vmware.2-fips-vsc9.2.0.0-94921673 is not compatible with current infrastructure(ESX, NSX, vCenter)Async Supervisor release selected on a vCenter that predates it. Documented for 9.0.2.0100 on vCenter 9.0.1.Upgrade vCenter to the required build first, then re-select the version.
unable to fetch supervisor service compatibility doc … unknown field versionConstraintSame incompatibility as above, seen on vCenter 9.0.0 rather than 9.0.1.Upgrade vCenter before the Supervisor. Do not edit the compatibility document.
Host stuck at Entering Maintenance Mode, update makes no progressvSphere Pods on the host will not evacuate, so EMM never completes.Wait for EMM, or remove the blocking vSphere Pod so the host can drain and the update resumes.
Supervisor stuck in Configuring with Timed Out Waiting for LB Service UpdateKnown issue upgrading a VCF 9.0 Supervisor configured with Foundation Load Balancer.Follow Broadcom KB 406096.
Supervisor upgrade fails while running Kubernetes 1.32Component upgrade sequence for VCF 9.0 was not followed.Follow the sequence in KB 390634. Documented workaround is stopping the spherelet on the host to let the upgrade proceed.
Components upgrade wedged, repeats without finishingRace condition on ManagementImageProxyConfig when several clients act at once.Re-run the Supervisor components upgrade.
Harbor namespace terminating after the updateEmbedded Registry was still enabled when vCenter moved to 9.0.0.0, which removes it.Migrate to Harbor as a Supervisor Service before the vCenter upgrade, not after.
Workload namespaces skipped during upgradeNetwork topology upgrade did not cover every namespace.Work the dedicated troubleshooting topic on skipped namespaces before re-running anything.

Two rows in that table are the same underlying mistake wearing different clothes, and that is the point. Compatibility failures surface at precheck with wording that blames infrastructure, so a candidate reads ESX or NSX and starts investigating the wrong layer. Whenever a Supervisor version refuses to apply, check vCenter build first and everything else second.

Field note on a window that ran three times long

I booked a 45 minute window. I had read the rolling update description, counted three control plane VMs, mentally divided by a coffee, and told the application team we would be done before 23:00. We finished at 00:41, two hours and forty one minutes after Apply Updates.

Control plane replacement took 38 minutes and behaved exactly as documented, including the fourth VM appearing in inventory and me briefly assuming something had gone wrong. Everything after that was hosts. Twelve of them, each entering maintenance mode so the spherelet could be installed, averaging 9.3 minutes. One host sat at 47 minutes because a single vSphere Pod in a namespace nobody had touched in six months refused to evacuate. Deleting that pod cleared it in under a minute. Six months of an unowned batch job cost me 38 minutes of a maintenance window and a very awkward status update.

Here is where I disagree with the common advice. Almost every write up describes a Supervisor update as a rolling control plane operation with minimal workload impact, and treats the host phase as a footnote. That framing is backwards. In my measured run the host phase was 70 percent of the elapsed time and 100 percent of the risk, because entering maintenance mode on each ESX host is a real workload evacuation across the whole cluster. Broadcom documents that this has been standard behaviour since vSphere 7.0 and continues through 9.1.x, and notes the process is expected to change in a future release to reduce host impact. Until it does, size the window by host count and DRS headroom, not by control plane VM count. I reversed my own practice after that night: I now inventory vSphere Pods and quiesce them before every Supervisor update, and I multiply my estimate by host count times ten minutes with a 30 percent margin.

Exam focus, objective 4.10: Published wording is Upgrade the Supervisor service in a given situation, and the phrase in a given situation is doing real work. This objective is scenario shaped, so expect multiple choice and multiple selection items that hand you a starting version, a target version, a vCenter build and a symptom, then ask what to do first. Matching and build list items suit it too, because the update has a fixed order of operations that can be shuffled. What it expects you to be able to do: read a Supervisor version string and separate the Kubernetes part from the Supervisor release part, reject an illegal minor version jump, decide between Kubernetes only and update everything, name the vSphere Client path, and recognise the four control plane VMs as healthy. Watch for the trap that catches experienced admins, which is time and blast radius. Seasoned vSphere people know rolling updates and assume the control plane is the event, so they answer as though workloads are untouched. Every ESX host enters maintenance mode one at a time, and a single un-evacuable vSphere Pod stops the whole update. Second trap, smaller but nastier: Supervisor Auto Upgrade no longer exists in vCenter 9.0, so any answer that relies on the Supervisor catching up by itself after a vCenter upgrade is wrong.
Objective checkpoint: Original questions written from the published objective wording. Nothing here reproduces or imitates a real item.

1. A Supervisor runs Kubernetes 1.30. Business wants 1.32 this weekend. What is the minimum number of Supervisor update operations required, and why.
Answer: two. Minor versions cannot be skipped, so the path is 1.30 to 1.31, then 1.31 to 1.32. Upstream Kubernetes update policy is enforced by the Updates tab, which will not offer 1.32 as an available version while the Supervisor sits at 1.30.

2. Twenty minutes into a Supervisor update, vSphere inventory shows four control plane VMs. Two of them report the old version. Is this an error, and what happens next.
Answer: not an error. A new control plane VM is added and joined, objects migrate off an old VM, that VM is removed, and the pattern repeats until all are replaced. Only after the control plane finishes do the ESX hosts update their spherelet one at a time.

3. A Supervisor update stops at 12 percent. One ESX host shows Entering Maintenance Mode and has not progressed for 40 minutes. What is the most likely cause and the correct first action.
Answer: a vSphere Pod on that host is failing to evacuate, so EMM cannot complete. Identify the pod running on that node and remove it so the host drains and the update resumes. Do not cancel or restart the update first.

Supervisor update discipline I would adopt

My recommendation is narrow and I will defend it. Treat a Supervisor update as an ESX cluster maintenance event that happens to change a Kubernetes version, and schedule it the way you schedule host patching. Choose Kubernetes version only when you are chasing a fix and update everything when you are staging for a vCenter upgrade. Never let a Supervisor drift more than one minor behind what your estate supports, because catching up costs you two full windows instead of one and the N minus 2 policy gives you less room than it appears to.

A clean result looks like this. Three control plane VMs, all reporting the target version, all Ready. Every ESX host reporting the same target version. All vSphere Namespaces still Active, including your Supervisor Service namespaces such as svc-harbor. Workload clusters in Provisioned phase with their VKr unchanged unless you intended otherwise. No lingering tasks in Recent Tasks. If any one of those five is off, you have a partial update, not a finished one.

Tonight, in your own lab, do one thing before you do anything else with this objective. Run the vSphere Pod inventory from Preflight 2 across every node in your Supervisor and write down what you find. If your lab is anything like mine, there is at least one pod nobody remembers deploying sitting on a host that will need to drain. Finding it now is a five minute job. Finding it at hour two is the reason people book longer windows the second time. When you have that list, read the VCAP-VKS exam guide pillar for how 4.10 sits alongside the other Section 4 objectives, and if the Supervisor platform itself still feels like a black box, the VKS Series is the walkthrough sitting underneath this study path. For the add-on service reading of this objective, Part 19 covers Supervisor Service lifecycle.

VCAP-VKS Exam Series · Part 25 of 34
« Previous: Part 24  |  Guide  |  Next: Part 26 »

References

How vSphere Supervisor Updates Work, VMware Cloud Foundation 9.0 documentation
Update the Supervisor, VMware Cloud Foundation 9.0 documentation
VMware vSphere Supervisor Release Notes
VMware Certified Advanced Professional vSphere Kubernetes Service 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