VMware Tanzu recently announced Community Edition (CE). A new flavor in their Kubernetes based Tanzu platform. As I learned more, it got me wondering how our Managed Kubernetes (PMK) free tier compared to it.
Tanzu CE is meant for test, discovery, and pre-production scenarios. While our free tier is production ready. To be fair to both products I picked 2 use cases both claim to do well:
- Building cloud-native skills
- Evaluating with the intention to use the larger product
My goal is not to declare a winner. In fact, one size fits all would be a non-goal. My goal is to show the experience of the two products. You can apply your use case and decide which is the best fit.
Let’s look at the experience of these two Kubernetes products!
Creating the cluster nodes
To have a cluster you must first have a node (write that down). For this evaluation, I will be using my desktop with Docker. Although both support it, I don’t want to take on the cost of a public cloud. Both the use cases (building cloud-native skills and evaluation of the suite) should not cost me $$ just to evaluate things.
PMK and CE go about creating nodes in very different ways. In fact, with CE there aren’t any formal node creation steps. It takes an all-in-one approach. You must have Docker and Kubectl installed, then you install the VMware Tanzu CLI on your desktop (using a package manager or manually). The CLI works with Docker to bootstrap the cluster.
PMK needs a “candidate” VM which will become a node. It supports popular Linux operating systems and suggests a minimum build. It’s up to you to get that VM going and the product assumes it is a bare, clean OS. You then SSH in and install the PF9 CLI. The CLI has a ‘prep-node’ command that installs the agent, registers it with your account, and makes the VM eligible as a cluster node.
Creating a cluster ready for workloads
Similar to the creation of a cluster node, CE and PMK go about cluster creation in different ways. Both share a similar destination – a K8s 1.21 (as of this writing) cluster ready to push containerized services and applications.
To get a cluster going in PMK you can use the UI for just about everything. CE on the other hand is either terminal based or you can use the CLI to spin up a temp web interface.
Both of the use cases warrant exploring automation options. PMK offers the Qbert API where you can curl requests to automate almost all cluster lifecycle activities. CE uses the VMware Tanzu CLI to get going and then you could use cluster-ctl tools to manage the life cycle. Cloud-native learning and the use of the larger product suite have a natural progression to writing scripts (aka automating), but we’re not going to go in-depth on that side of things. I am keeping this simple and local.
Following the PMK ‘prep-node’ command, the VM was registered as a node in your account. Now you can follow the “Create Cluster” wizard. To get going quickly, there is a “single-node cluster” option which will create a very simple cluster capable of running K8s functions and workloads. You can also create a more customized cluster following the step-by-step process. There are options for adding observability and customizing container/node networking as well as other add-ons.
CE offers 2 flavors of cluster creation – managed and standalone. Both versions use a temporary KIND cluster to create a management cluster, which then creates a workload cluster. While the temporary KIND cluster is removed, if you choose the managed version, the management cluster stays to manage the lifecycle of the workload cluster. If you choose standalone, then the management cluster is also removed and you are left with the workload cluster.
The standalone version is ultimately lighter weight (in terms of overall compute) but takes pretty significant power to get going. The docker documentation gently warns you of this by suggesting that no other containers be running and prune things.
To get started you need Docker, Kubectl, and the VMware Tanzu CLI installed. To create a cluster you use the CLI with the appropriate options. There is a convenient option to spin up a web-based wizard that helps you choose your desired configuration. Then you have the option to copy the command or create the cluster by point-and-click. Generating the CLI command was quite handy and saved me from having to learn a new CLI and all its commands/actions.
At this point, with both products, we are ready to run workloads. In a standalone cluster, CE automatically adds the new cluster’s context to your existing kubeconfig. In a managed cluster, you have to issue a series of commands to retrieve the management cluster’s kubeconfig and then look up the workload cluster’s kubeconfig.
PMK offers each cluster’s KubeConfig as a download in the UI. You have the option to retrieve a 1-time token (with a 24-hour expiration) or as the normal long-lived context.
A brand new cluster is great for demonstrations but fairly useless in the real world. You need observability, ingress controls, certificate management, autoscaling, and countless other add-ons. But! The last thing anyone wants to do is configure these things every time a new cluster is created.
Both PMK and CE offer options to add cluster enhancements but just as before, they go about it in different ways (are you seeing a theme?). CE uses Carvel’s kapp-controller to introduce the concept of package repositories holding installable packages. The VMware Tanzu CLI simplifies this with a single command to initialize a repository and then add packages to the repository. From there you can install the packages over and over in the cluster with another one-liner.
The VMare Tanzu team has created quite a collection of pre-made packages that cover most needs. Most packages offer a convenient table showing its compatibility with popular cluster providers.
At times you might notice a bias to VMware products but overall there is not much lock-in. Because they follow an open spec, you have the option to create your own packages. Which is a nice alternative.
PMK follows a similar pattern using a package repository in the cluster but offers package management in a more point-and-click way. Every PMK account gets a Helm server pre-loaded with “certified” packages. While creating a cluster (or after the fact) you are given an option to configure and install these packages. The certification means you get Platform9’s support along with the management of the application(s) (even in the free tier). This is a nice option to simply tick “Monitoring” and “Metrics Server” in the wizard and not think about any config. Grafana and Prometheus will be magically running and ready with quite a few dashboards.
Building your cloud-native skills
Using free versions of a product to learn best practices from others and “up” your own cloud-native game is a smart way to stay up to date. Once you have a handle on the design and what’s going on when certain commands are run, you can make it your own. Customize as you would like it, to continually grow your capabilities.
Given the differences in how PMK and CE approach workload clusters both have tons of learning opportunities. I encourage you to get a working model then script it out and make things immutable (ie: delete it all and create again from the script).
Extending the evaluation
Evaluating free versions of a larger product suite is quickly becoming an expectation of any platform that’s worth its weight. Both PMK and CE are perfect examples of approaching DevOps style practices in very different ways. One size does not fit all. Every ops team is at a different stage in their journey and should choose their platform based on their strengths. Free versions show you how the project is engineered and what real-time support is like when things break (you could always open a ticket).
CE is a great representation of how VMware Tanzu manages cluster lifecycle (ie: cluster-api). The overall Tanzu suite has SaaS management that ties together RBAC, observability, application initialization, and many other features. Your level of investment in the paid tiers will determine how many of these features you get.
PMK is a single integrated product with different levels of support and SLA depending on the tier you chose to start with. Whether it’s the free tier, growth, or enterprise you are using the same product. Its distinguishing features like RBAC management with cluster profiles, managed KubeVirt, managed Bare Metal, and muti-tenancy are just a few examples. There are a few nuances and limitations on # of nodes, but for the most part, it’s all there.
As you move past the learning and evaluation phase to find the right product for your team or organization, look at the experience as a whole. The Tanzu and PMK products both bring a hefty list of features. Both are offered as a SaaS as well as on-premises. PMK is a point-and-click style UI that makes Kubernetes management as simple as a click. Tanzu also offers a UI for managing clusters, as well as a CLI-based approach for deeper customizations.
- Getting to know Nate Conger: A candid conversation - June 12, 2023
- Platform9 at the Edge Computing Expo North America 2023 - May 8, 2023
- Argo CD vs Tekton vs Jenkins X: Finding the Right GitOps Tooling - March 1, 2023