Understanding vSphere With Tanzu Versioning and Upgrade Paths
VMware vSphere with Tanzu allows for running industry-standard Kubernetes native on vSphere. A critical component that is often misunderstood is the versioning requirements for vSphere. They directly impact the versions of Kubernetes that can run on a cluster and future upgrade options. This article is for vSphere administrators that break down the key pieces that need to be understood when planning a vSphere with Tanzu deployment and future upgrades.
In this article
Several items we get questions around from customers are related to versioning and upgrades with vSphere with Tanzu and how that impacts the entire solution from vSphere to Tanzu to NSX-T. What version of vSphere do I need to be at to run version x of Kubernetes? Can I upgrade to vSphere version X if I run Kubernetes version Y? This article will explain the various components and how they impact Kubernetes versioning and upgrades.
Kubernetes and Tanzu release policies
vSphere with Tanzu adheres to the public Kubernetes release policies and does not have specific versions dedicated to vSphere with Tanzu deployments. This tightly aligns vSphere with Tanzu with the public Kubernetes releases, so let's look at the current Kubernetes release policies and how they relate to vSphere with Tanzu releases.
Kubernetes support policy is N-2, meaning that the Kubernetes project always supports and maintains the release branches for the three most recent minor versions (for example, 1.16, 1.17 and 1.18).
For upstream Kubernetes, sequential upgrades are required, meaning if you are at 1.16 and want to get to 1.18, you must go to 1.17 first.
And now, let's look at how vSphere with Tanzu complies and enhances the Kubernetes policies.
Newly released Kubernetes will be included in one of the future releases of vSphere with Tanzu.
vSphere with Tanzu always includes the three most recent Kubernetes releases. When a new version is released, support for the oldest of the 3 in the previous version gets removed.
vSphere with Tanzu will always contain three versions of Kubernetes (ex, 1.16, 1.17, 1.18), so you can go from 1.16 to 1.18 in certain circumstances when using vSphere with Tanzu. This is handled automatically through a rolling update process that goes from 1.16 to 1.17 then to 1.18, so the Kubernetes sequential upgrade is still required; it can be automated if desired with vSphere with Tanzu. See here for more information.
To determine the possible upgrade paths available, the following rules will apply:
Source and Target vCenter Releases have a minimum of 1 overlapping version of Kubernetes.
Target vCenter release contains the next immediate version of Kubernetes present in the source vCenter release.
Let's review the following three examples to see how the upgrade rules apply in each instance.
In examples 1 & 2, an upgrade is possible due to overlapping and the next immediate release being present in the target Virtual Center release. In contrast, in example 3, neither is present and cannot go directly to the target release.
Today, to find what version of Kubernetes is supported in a particular version of Virtual Center involves reading through release notes of each vSphere with Tanzu release, looking for specific versions that may be in the notes, and then determining the corresponding versions of ESXi, vCenter and NSX Advanced Load Balancer.
Looking through the release notes from the link above, take the release What's New October 5, 2021. Scrolling down, you see this section, which contains the versions of ESXi, vCenter and NSX Advanced Load Balancer in the release. Note that it does not say anything about Kubernetes versions included in this release.
To figure out if there are new Kubernetes releases in this vSphere with Tanzu release (and there may not be any) requires scrolling further thru the notes until you see a section like this:
This tells you that if you upgraded your environment to ESXi 7U3, vCenter 7 Update 3, and NSX Advanced Load Balancer 20.1.6, you would have support for Kubernetes releases 1.21, 1.20, and 1.19, and that support for 1.18 is being dropped.
While the required information is contained in the release notes, it is not always easy to quickly find, and not every vSphere with Tanzu release includes a new Kubernetes release. We have provided this feedback to VMware and if this changes in the future, an update will be included.