Kubernetes is arguably one of the most important technologies to come about in the past few years in enterprise data center and cloud technologies. Since the release of vSphere 7.0, VMware has baked Kubernetes right into the ESXi hypervisor. VMware Tanzu is the umbrella product containing the entire family of Kubernetes products in the VMware portfolio. At VMworld 2021, VMware announced the release of VMware Tanzu Community Edition (TCE).
With the release of VMware Tanzu Community Edition, VMware is making VMware Tanzu-powered Kubernetes to everyone. What is Tanzu Community Edition, why is it important, and what features does it include?
What is VMware Tanzu Community Edition (TCE)?
While VMware Tanzu is the commercially available Kubernetes solution, VMware Tanzu Community Edition is a freely available version of VMware Tanzu that anyone can download and use anywhere. In fact, VMware Tanzu is released as open-source and has the same inner workings as its three commercially available counterparts, VMware Tanzu Basic, Standard, and Advanced editions. It is community-supported. Even though it is very young in its overall development lifecycle, you will already find rich community support for Tanzu Community Edition.
You might assume with a “free” edition of VMware Tanzu, there will be time-based limitations or a feature-limiting trial period that handicaps the solution after a time. However, VMware Tanzu Community Edition has no restrictions on its use. Also, users do not even have to sign-up with VMware to download the solution, which is also nice.
Instead, you can simply browse to the official VMware Tanzu Community Edition site to download the tools needed to begin provisioning your TCE clusters:
Tanzu Community Edition also does not require a full-blown hypervisor or cloud environment for use. Instead, you can install and configure the solution in just a few minutes on a local workstation environment. However, you can still make use of your favorite cloud environment of choice if you would rather deploy TCE outside of a local development environment.
Use cases for Tanzu Community Edition
VMware is targeting three official use cases with the Tanzu Community Edition (TCE) solution. These include:
Learning
With TCE, VMware is targeting environments used to learn Kubernetes and provision development environments. Of course, you may already be familiar with open-source Kubernetes learning and development solutions. These include the likes of Minikube and MicroK8s, to name a couple.
Like many learning environments and development environments, you want these to be easy to provision, easy to tear down, ephemeral, easy, and require as few resources as possible. While Minikube and others are great learning solutions and provide excellent platforms for many different use cases, these solutions are not based on production technologies outside of Kubernetes itself. In other words, you don’t hear someone running production workloads on Minikube.
Evaluating Tanzu Kubernetes
VMware Tanzu Community Edition provides an enterprise-grade Kubernetes solution that can be used for free and with no restrictions using the same technology used in production. So, there is no disparity between your learning, development, and production Kubernetes solution.
Using Tanzu
Your end goal does not have to be learning or evaluating. It can simply be to use Tanzu Community Edition for any number of purposes.
In addition to the use cases mentioned above, VMware is also targeting many different technical roles with the TCE solution. These include:
- Cloud-native practitioners
- DevOps
- Developers
- Platform and IT infrastructure operators
- Site-reliability engineers (SREs)
- Cloud-native ecosystem participants
- Independent software vendors (ISVs).
Keep in mind these are only the officially stated use cases. As with any community-driven project, creative use cases always emerge as the technology is used and evolves.
Architecture components of Tanzu Community Edition (TCE)
VMware Tanzu Community Edition (TCE) architecture includes several components that allow provisioning the various TCE Kubernetes clusters deployed and managed with the solution. These various TCE components include:
- Tanzu CLI
- Managed Clusters
- Standalone Clusters
- Package management
Tanzu CLI
The Tanzu CLI is the primary command-line tool used to interact with VMware Tanzu Community Edition Clusters. Several different subcommands can be used with the tanzu command from the command line. We are issuing the tanzu command from a PowerShell command prompt on a Windows machine below.
As you can see there are many different subcommands, including:
- cluster
- conformance
- diagnostics
- kubernetes-release
- management-cluster
- package
- standalone-cluster
- completion
- config
- init
- login
- plugin
- update
- version
Running the VMware Tanzu Community Edition tanzu command line command in PowerShell
Managed clusters
The first way to deploy a Tanzu Community Edition cluster is using what is known as a Managed Cluster. The managed cluster is the preferred way to deploy Tanzu for production use. In this model, the workload clusters are deployed and managed using the management cluster.
The primary command for deploying the management cluster is:
1 |
tanzu management-cluster create |
Even if you are using the GUI deployment utility, as we will walk through in just a bit, you will see that the GUI is using this command in the background to deploy the TCE management cluster.
Using the tanzu management-cluster create command to create a TCE management cluster
During the deployment of the management clusters in TCE, it does something unique. First, a bootstrap cluster is deployed that instantiates the management cluster. Then, the bootstrap cluster is created locally and is used to create the management cluster.
When the management cluster is provisioned successfully, all management objects transition to the management cluster from the bootstrap cluster. Then, all new clusters, such as any workload clusters, are created and managed with the management cluster.
This workflow is shown in the following diagram from the tanzucommunityedition.io site:
Workflow of bootstrap management and workload clusters
Standalone Clusters
The standalone cluster allows bootstrapping Tanzu Kubernetes clusters even faster, generally in 10 minutes or less without as many resources. In addition, it is an excellent option to learn and play around with Tanzu technologies. However, this cluster model is in the experimental stages, so it is not recommended for production workloads.
The difference in the standalone cluster creation process workflow is that the locally created bootstrap servers used to instantiate the standalone cluster do not pivot management objects into the standalone cluster. Instead, after the successful bootstrap of the standalone cluster, the bootstrap server is deleted.
As you can see below, the workflow is much simpler to instantiate the Tanzu Community Edition standalone clusters.
The workflow to instantiate Tanzu Community Edition standalone clusters
Suppose there is a need to perform management actions on the standalone cluster, such as deleting the cluster or scaling the workload cluster’s nodes. In that case, a temporary management cluster is created to perform these actions.
Package management
Using the Tanzu CLI commands, VMware has integrated a fully-featured open-source package management solution directly into Tanzu Community Edition, allowing the installation, upgrading, and deletion of software running on Tanzu clusters. The package management solution is the open-source project called kapp-controller, a custom resource that VMware refers to as a package repository. Packages are packaged up as a single bundle, called a package repository, and pushed up to the OCI-compliant registry.
Once the cluster is informed that a package repository exists, the kapp-controller pulls this down and makes packages available to the cluster, as shown below.
Overview of the TCE package management from the client-side
Deploying VMware Tanzu Community Edition (TCE)
For a quick walkthrough of how to deploy VMware Tanzu Community Edition, let’s see how to deploy TCE into a VMware vSphere environment. First, download the Tanzu Community Edition release at the official Tanzu Community Edition site, here: Download (tanzucommunityedition.io).
Extract the file, and run the install.bat file in the package.
Running the installation of VMware Tanzu Community Edition
This install.bat file will install the Tanzu CLI tool. After the tool is installed, you can run the command to begin creating the management cluster. The command is:
1 |
tanzu management-cluster create --ui |
The –ui switch tells the installer we want to use the GUI Tanzu Community Edition tool to configure the cluster. Choose the installation environment for TCE. Here, we are choosing the VMware vSphere option.
Selecting the environment to deploy the TCE management cluster
The first step in the deployment process of the management cluster on vSphere is to connect to your vSphere environment. Enter the vCenter Server connection information and connect to the vSphere environment.
Connect to VMware vSphere
Next, select the management cluster settings, such as the deployment and instance type, management cluster name, control plane endpoint provider, endpoint IP address, and worker node instance type.
Configuring the management cluster settings
Next, you can optionally select the VMware NSX Advanced Load Balancer settings to configure. Again, this is an optional screen. You can simply leave the screen blank and proceed if you do not have an NSX Advanced Load Balancer in your environment.
Configure the NSX Advanced Load Balancer settings
Next, configure the optional metadata for the cluster. You can leave this screen blank as well.
Configure optional metadata for the management cluster
On the Resources screen, you configure the settings of the VMware vSphere environment, such as the VM folder, clusters, hosts, resource pools, datastore, etc.
Configure VMware vSphere resources
Configure Kubernetes network settings for your management cluster, including the Network name for the vSwitch, cluster service CIDR, Cluster POD CIDR, and any proxy settings.
Configure Kubernetes network settings
You can next specify any Identity Management settings for OIDC or LDAPS. However, this configuration is optional.
Configure optional identity management settings
Select the OS image with Kubernetes. Here I am pointing to the Photon OS image that is downloaded from the VMware Customer Connect Portal for Tanzu Community Edition:
https://customerconnect.vmware.com/downloads/get-download?downloadGroup=TCE-090
Deploy the OVA appliance and convert the machine into a vSphere Template. The resulting template is selected in the OS Image screen below.
Select the OS Image for the TCE Kubernetes management cluster deployment
On step 9, you can optionally enroll with Tanzu Mission Control.
Configure enrollment for Tanzu Mission Control
Click the Review Configuration button to proceed to finalize the configuration for the management cluster.
Ready to review the configuration
At the bottom of the Review screen, you will see the Deploy Management Cluster button. You can also alternatively copy the CLI command and run this from the command line.
Deploying the management cluster for TCE
The Tanzu Community Edition management cluster deployment begins. As you can see below, the bootstrap cluster is first provisioned.
TCE deployment begins instantiating the boostrap cluster
The VMware vSphere Client shows the PhotonOS template cloning for the management cluster nodes.
Automatic cloning of the PhotonOS template during deployment
After a few minutes, you will see the deployment of Tanzu Community Edition management clusters on vSphere complete successfully.
The Tanzu Community Edition management cluster deployment completes successfully
We can head back to the command line to verify a few things. To view the management cluster information, use the command:
1 |
Tanzu management-cluster get tce-mgmt |
This returns detailed output showing the details of the management cluster we just provisioned.
Viewing the management cluster information using the Tanzu CLI
Deploy the Tanzu Community Edition Workload Cluster
Now that we have the management cluster deployed, we can begin the process to instantiate the workload cluster. To do that, we can simply copy the configuration file that was created for the management cluster, change the name of the Cluster and the IP address configured.
Configuring the YAML file for the workload cluster
Then, from the command line, using the Tanzu CLI tool, we can begin the creation process for the workload cluster, using the command:
1 |
Tanzu cluster create --file tce-workload.yaml |
The filename “tce-workload.yaml” is the file name created after copying the management cluster YAML file.
Creating the workload cluster using the YAML file with the Tanzu CLI
How do we connect to the workload cluster? There are just a few commands to run for that. These include:
1 |
Tanzu cluster kubeconfig get <your workload cluster name> --admin |
1 |
kubectl config get-contexts |
1 |
kubectl config use-context <your workload cluster>-admin@<your workload cluster> |
1 |
kubectl get nodes |
– verify we have connectivity to the workload cluster
Changing context and connecting to the Tanzu Community Edition workload cluster
Wrapping Up
Tanzu Community Edition (TCE) is an excellent platform for learning Kubernetes, development, DevOps, evaluating Tanzu, and using the platform to run workloads. It is a lightweight installation that only requires a few steps to deploy. As shown in this walkthrough, the process is made easier with the GUI utility deployed as part of the installation of the Tanzu CLI.
The production-ready version of VMware Tanzu Community Edition uses a management cluster to create and manage workload clusters. In addition, the Standalone Cluster provides an even faster option to get up and running with VMware Tanzu Community Edition. However, it is still in the experimental stages and is not recommended for running any production workloads at this time.
VMware Tanzu Community Edition will undoubtedly allow users of all types to get their hands on VMware Tanzu and it offers the advantage of working with the same version of Kubernetes that organizations use to run production workloads.