Save to My DOJO
Kubernetes is one of the hottest technologies across the enterprise space, and with organizations moving forward with designing modern applications. Many businesses are looking at Kubernetes-powered technologies in redesigning in-house applications, shifting to microservices, improving scalability, and modernizing development across the board.
VMware Tanzu is a powerful enterprise Kubernetes platform that allows businesses to have the tools needed to run Kubernetes across clouds. This year at VMworld, VMware announced the release of VMware Tanzu Community Edition. What is VMware Tanzu Community Edition (TCE)? What is the difference between TCE and VMware Tanzu? How does it work?
What is VMware Tanzu Community Edition?
Let’s understand what VMware Tanzu Community Edition is exactly. VMware Tanzu Community Edition (TCE) is a version of VMware Tanzu that is free to download and use. It is an open-source release of VMware Tanzu with the same features and functionality as the enterprise edition of VMware Tanzu.
Tanzu Community Edition is free to use, no strings attached, open-source, and community-supported. There is no registration or time limitation with TCE. It has a Kubernetes-friendly installer and is easier to provision than a “do it yourself” implementation based on technology used across the Tanzu platforms.
It is a fully-featured Kubernetes distro that adds more functionality. Tanzu Community Edition is the edition for learning and using VMware Tanzu for free without limitations to the core product.
Community Edition is the platform VMware will use to evaluate early-stage technology for the Tanzu platform. It includes early evaluations of Kubernetes .0 releases along with experimental and alpha releases of applications.
One of the main differences between Tanzu Community Edition and the commercial editions, including Standard, Advanced, and Enterprise, is community vs. commercial support. Commercial editions also include other services, such as Tanzu Mission Control and Tanzu Observability.
How does Tanzu Community Edition compare to other easy Kubernetes learning platforms, such as Kind and Minikube? Tanzu Community Edition is based on VMware Tanzu technology. A key aspect of Tanzu Community Edition is it provides a curated selection of packages that has many advantages.
Where can you use Tanzu Community Edition? It can be deployed to AWS, Azure, vSphere, desktop hypervisors, and Docker on Linux, Mac, or Windows. Support is planned for more platforms down the road. In addition, the size of the Kubernetes cluster is configurable to match your needs and available resources.
Benefits of VMware Tanzu Community Edition
VMware Tanzu Community Edition will open up many new benefits and capabilities for developers, DevOps engineers, and others who want to learn and play around with VMware Tanzu and Kubernetes in general. Other use cases and benefits of the TCE solution include:
- Need for short-lived K8s clusters that are ephemeral
- Dev & Test environments that can be spun up quickly and work in isolation
- An easy platform that can be provisioned for workshops, personal training, demonstrations, etc.
- No license costs for using fully-featured VMware Tanzu features
- Local development environments using the same VMware Tanzu distribution used in production
Tanzu Community Edition Package Management System
VMware integrated an open-source package management system into Tanzu Community Edition that is akin to other package management systems that users are familiar with, such as yum, apt, winget, etc. The package management solution is the open-source project called kapp-controller, a custom resource that VMware refers to as a package repository.
What is kapp-controller? From the kapp-controller website:
“kapp-controller’s declarative APIs and layered approach enables you to build, deploy, and manage your own applications. It also helps package your software into easily distributable packages and enables your users to discover, configure, and install these packages on a Kubernetes cluster”
Everything in the kapp-controller package management solution in VMware Tanzu Community Edition ends up as a OCI bundle. OCI bundles are typically the format used to package container images and push those to registries like Docker Hub and Harbor. VMware pushes the package repository up to an OCI registry and kapp-controller can look at the package repository in the cluster and understand inside the bundle what packages are available.
Once it sees the packages are available, it pulls them down and makes them available in the cluster. If you have performed actions like apt update or added a repository through a package manager and then listed out the packages that could be installed locally on a Linux system, it is similar to the way that TCE makes use of the package repository.
Eventually, a custom resource is brought into the cluster to declare intent to install a package itself. For example, using kubectl, declaring the intent to install a package, kapp-controller understands it needs to retrieve the configuration for installing the package. It generally means pulling YAML files, manifests, services, deployments, config maps, ingress objects, etc.
Overview of the TCE package management from the client-side
Secure chain of trust
By using the OCI assets in the package manifest, VMware creates a chain of integrity that is unique to the package management solution. From the point of the actual definition of the package and configuration, all objects are represented by a SHA signature of the OCI bundle itself. Going deeper, inside of the configuration, all container images that will eventually run in the cluster are also referenced by the SHA signatures of the images themselves.
This creates a chain of trust based on a SHA that can be verified, you know from the package definition to the container image you run, there is a level of integrity for the software you are deploying. While you can use kubectl as you would in other clusters if you want, VMware also has the Tanzu CLI that allows listing and installing packages along with working with repositories.
While providing a robust set of packages out of the gate for Tanzu Community Edition, VMware is enabling users of TCE to bring their own custom package repositories they are using in their environment today.
Tanzu and Tanzu Community Edition are built on the foundations of cluster API. Cluster API is an open-source project built on the principle of taking the API declarative and reconciliation model in Kubernetes and bringing this to a point to bootstrap and manage clusters themselves. It simplifies provisioning, upgrading, and operating multiple Kubernetes clusters. VMware has asked the question of why can’t in the same way that you use kubectl apply to get an Nginx server for instance, can you not do something similar like kubectl a cluster and get clusters in a target environment like AWS and vSphere.
When you create a tanzu cluster, a bootstrap cluster is initially created with a “kind” that runs a minimal Docker-based local cluster. Once the bootstrap cluster is provisioned, it is injected with objects that declare in the target provider (AWS, vSphere, local machine). It then creates a management cluster on your specified provider. Finally, it initializes management components inside the cluster to communicate with a provider to create infrastructure, including networking, to initialize Kubernetes.
In the bootstrap cluster itself, VMware moves the configuration of the bootstrap cluster into the initial management cluster that is created. This process creates the fully instantiated management cluster. The management cluster is then responsible for the management of any new workload clusters. The management cluster can create, manage, and delete any number of workload clusters. This model is called managed clusters. You can think of this as the more production-ready version or Cluster Bootstrapping in TCE.
Managed clusters in TCE
There is another cluster model that VMware is experimenting with in TCE. This model is called standalone clusters. At this point standalone clusters are highly-experimental and only partially implemented. However, they provide the fastest way to get a functioning workload cluster with fewer resources than managed clusters, as they do not require a long-running management cluster.
The current implementation of the standalone cluster still instantiates a bootstrap cluster, and then the bootstrap cluster instantiates the workload cluster. However, instead of the bootstrap cluster pivoting over and injecting resources into the resulting cluster, it is kept as a normal cluster, and the bootstrap cluster simply dies off.
When you want to change the cluster (scale, delete, etc), VMware instantiates the bootstrap cluster later when you want to make changes. It then changes the cluster in the way you have declared using the CLI. The bootstrap cluster is ephemeral and is stopped once the clusters are created.
The Standalone Tanzu Community Edition model
VMware Tanzu Community Edition Prerequisites
There are a few prerequisites required for installing VMware Tanzu Community Edition. These requirements may differ depending on the platform you are installing TCE. The supported platforms are Linux, Mac, and Windows. For the remainder of the walkthrough, we will look at the installation of TCE on the Linux platform.
The hardware requirements for TCE are fairly similar between the platforms, with VMware documenting more memory required on a Windows platform. Note the following hardware requirements.
There are a few software requirements to be aware of that are prerequisites to installing VMware Tanzu Community Edition. Note the following software components needed:
- Docker – In the Linux deployment, you must create the docker group and add your user before you attempt to create a standalone or management cluster.
- You can read the documentation on installing Docker here: Install Docker Engine | Docker Documentation
- Kubectl – Download the latest version of kubectl here: Install and Set Up kubectl on Linux | Kubernetes
- Latest version of Chrome, Firefox, Safari, Internet Explorer, or Edge
Installing VMware Tanzu Community Edition in Linux
Let’s look at the VMware Tanzu Community Edition installation process in a Linux environment. The steps consist of the following:
- Download and install kubectl
- Install Docker
- Check your group
- Download and unzip the TCE package
- Run the GUI assisted installation
1. Download and install kubectl
To download kubectl to your Linux distribution, use the following command to pull down the latest version of kubectl:
Once kubectl is downloaded, you can install it by running:
- sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Download and install kubectl
2. Install Docker
Read the official documentation from Docker on installing Docker in your specific distribution here: Install Docker Engine | Docker Documentation.
Installing Docker in Linux
3. Check your cgroup
Verify your Linux distribution is configured to use the cgroups v1. You can verify this is the case after you install Docker by running the command:
- docker info | grep -i cgroup
Checking the cgroup configuration in your Linux distribution
4. Install Tanzu Community Edition
- There are a couple of ways to install Tanzu Community Edition. The first is using a package management tool such as “Homebrew” package management in Linux and macOS and “Chocolatey” in Windows. The second option is to pull down the package from the official Github site, extract, and install.
Below, I am using Homebrew to install Tanzu Community Edition in Linux. You can do this with the Homebrew command:
- Brew install vmware-tanzu/tanzu/tanzu-community-edition
Installing Tanzu Community Edition (TCE) with Homebrew
After the Homebrew installation of TCE completes, you need to run a final post-installation configuration script. This can be completed using the command:
Running the post-installation script after installing TCE using Homebrew
Configuring a Tanzu Community Edition Standalone cluster
Once you have Tanzu Community Edition installed, you are ready to use the tanzu CLI tools to create your clusters. First, let’s see the process of using the Tanzu Community Edition CLI to provision a new standalone cluster, which is currently the experimental offering with TCE.
Launching the Tanzu Community Edition cluster creation GUI
The Tanzu Community Edition Install launches in a web browser tab once you run the above command. As you can see from the screenshot, you have the option to deploy the standalone cluster in:
- VMware vSphere
- Amazon EC2
- Microsoft Azure
Here I am choosing Docker to proceed.
Choosing the environment to deploy the standalone cluster
Once you choose your deployment target for the standalone cluster, the Deploy Standalone Cluster wizard will begin. Click Next.
Beginning the deployment of the standalone cluster in Docker
Next, name the standalone cluster name.
Naming your Tanzu Community Edition standalone cluster
In step 3, you can customize the Kubernetes Network Settings. For most, unless you have an overlapping network with another cluster, you can accept the default settings.
Configuring the Tanzu Community Edition standalone cluster network settings
Click the Review Configuration button to see the configured settings for your standalone cluster.
Review the Tanzu Community Edition cluster configuration
For learning purposes, the wizard shows the command you can use to perform the operation using the CLI. In case you are wondering what the YAML file looks like for the configuration:
Click the Deploy Standalone Cluster button.
Beginning the deploy standalone cluster operation
After beginning the deployment, you will see the graphical output of the operation, displaying the logs in real-time, much as if you are tailing the deployment.
Tanzu Community Edition standalone cluster deploying
After just a few minutes, the Tanzu Community Edition standalone cluster deployment finishes successfully.
The Tanzu Community Edition standalone cluster deployment finishes successfully
Since the Tanzu Community Edition standalone cluster is deployed successfully, we can change the kubectl context to the standalone cluster, use the context, and start looking at pods, nodes, and other information.
Use the following commands:
- kubectl config set-context <your cluster name>-admin@<your cluster name>
- kubectl config use-context <your cluster name>-admin@<your cluster name>
Setting and using the context for the standalone Kubernetes cluster in Tanzu Community Edition
We can now interact with the cluster using standard Kubernetes commands to view the nodes in detailed view and shortened form.
Using the kubectl command to view the Tanzu Community Edition Kubernetes nodes
To protect your VMware environment, Altaro offers the ultimate VMware backup service to secure backup quickly and replicate your virtual machines. We work hard perpetually to give our customers confidence in their backup strategy.
Plus, you can visit our VMware blog to keep up with the latest articles and news on VMware.
VMware Tanzu is a game-changer for VMware. It provides existing vSphere customers with the ability to deploy Kubernetes without restructuring, using different tools, or deploying another platform as VMware has brought Kubernetes into ESXi itself. Kubernetes has traditionally been complicated to deploy, configure, troubleshoot, and operationalize without specialized skills.
VMware Tanzu commoditizes Kubernetes for all its existing customers and organizations who decide to use VMware Tanzu for their on-premises and cloud Kubernetes platform. It provides a commercialized Kubernetes offering managed by familiar VMware tools used across the enterprise. It also provides additional tooling and solutions that allow businesses to extend and use Kubernetes more intelligently and with visibility and service integration.
VMware Tanzu Community Edition (TCE) is a free edition of VMware Tanzu, providing the same VMware Tanzu core as the commercial offering. With Kubernetes now an integral part of modern application architecture, developers and IT Ops engineers alike have the need to become familiar with and use Kubernetes. VMware Tanzu Community Edition provides a distribution of VMware Tanzu, allowing developers and DevOps engineers to provision a local Kubernetes lab or sandbox quickly.
The unique Community Edition can be installed in Docker, vSphere, AWS, and Azure and offers an excellent way for developers to use, test, and learn using the same Kubernetes technology as the commercial VMware Tanzu offering. Additionally, VMware is offering Tanzu Community Edition as a freely available download, without any registration required or time limitations to play around with VMware Tanzu in this form.
Tanzu Community Edition allows provisioning both standalone clusters (experimental), and managed clusters in a unique way that self-provisions the solution. Users can use familiar tools such as kubectl to manage nodes, pods, and other aspects of the K8s clusters, along with the Tanzu CLI.
VMware Tanzu Community Edition is a great new edition to the VMware Tanzu fleet, allowing an excellent solution for learning and development. The project is rapidly evolving. Keep pace with the latest developments directly from the VMware Tanzu Community Edition site documentation here:
Not a DOJO Member yet?
Join thousands of other IT pros and receive a weekly roundup email with the latest content & updates!