Last week, VMware had its huge launch which included VMware Cloud Foundation 4, vSphere 7, vSAN 7 and the brand new VMware Tanzu Portfolio that will help organizations build, run and manage modern applications for their business. Although we still have a couple of more months before general availability, the level of excitement for these upcoming releases was pretty amazing to see on social media, especially for the highly anticipated Kubernetes with vSphere capability, formally known as Project Pacific.
UPDATE (04/10/20) - TKG 1.0 has officially GA'ed, you can now deploy TKG Clusters using the new TKG CLI/UI as demonstrated in this blog post.
When vSphere 7 is available, Kubernetes with vSphere is just one way in which customers will be able to deploy upstream and conformant Open Source Kubernetes also referred to as Tanzu Kubernetes Grid (TKG). For customers that require a solution today or for those that may not able to upgrade to vSphere 7 immediately, VMware has another option called Tanzu Kubernetes Grid Plus for vSphere and VMware Cloud on AWS which was also announced last week but albeit not many folks took notice.
- Tanzu Kubernetes Grid Plus is a new offering that is comprised of the core TKG software and it includes support from VMware's Customer Reliability Engineering (CRE), which is a team made up of Kubernetes Architects that can help customers design and architect their Cloud Native Applications running on the VMware Tanzu Platform
- For customers that do not require CRE support and just want standard VMware GSS Support, then you can simply use Tanzu Kubernetes Grid (TKG) which includes VMware Support and Subscription (SnS)
- The core TKG software which Tanzu Kubernetes Grid Plus includes can deploy Tanzu Kubernetes Cluster (upstream K8s running in VMs). Customers can already do this right now by using Cluster API (CAPI) and specifically the Cluster API Provider for vSphere (CAPV) which provides lifecycle management of Tanzu Kubernetes Cluster running on any valid vSphere endpoint including VMware Cloud on AWS. The latest CAPV v1alpha3 release also introduces a new workflow that reduces the number of steps compared to v1alpha2 which is now deprecated
For customers that want to further customize how Tanzu Kubernetes Cluster are deployed and configured including tools that they are already using, CAPV will be the most flexible option. Having gone through the CAPV workflows myself, I think it can still be daunting if you are new to this space, not to mention the different CLI tools that you will have to learn to have a successful deployment. Luckily, the VMware TKG team has also been thinking about the overall user experience and how they can build on top of CAPV to provide a much more simpler and more intuitive interface for customers that is just looking for a turnkey option.
Here is a sneak peek (Technical Preview) of the upcoming Tanzu Kubernetes Grid CLI or TKG CLI for short which will make deploying Tanzu Kubernetes Cluster on ANY vSphere endpoint incredibly EASY!
When I say easy, I really do mean EASY like 1, 2, 3. I even came up with this little jingle while waiting for my setup to complete as that is how easy it is to deploy a Tanzu Kubernetes Cluster on VMware Cloud on AWS, which was the specific vSphere infrastructure I was using but this would also apply to any vSphere deployment.
🎶 1️⃣2️⃣3️⃣ 🎶
🎶 TKG on VMC 🎶
— William Lam (@lamw) March 13, 2020
Over the past couple of weeks I have been using the TKG CLI and providing my candid feedback to both the TKG Development and Product teams. In fact, a large majority of my requests have already been incorporated into the tool with the remainder asks being planned in future releases of the TKG CLI.
Here is a high level diagram of what I will be covering today which are the three key steps to deploying upstream Tanzu Kubernetes Cluster running on VMware Cloud on AWS, which also applies to any vSphere endpoint as mentioned in my tweet. The only requirement is to have the TKG CLI and Docker running on the system where the CLI will be executed from and optionally a web browser if you wish to have a graphical user experience.
Import the desired K8s Distribution which are provided as OVAs (Ubuntu, CentOS & PhotonOS) from here, these images will be used to deploy both the K8s Management and Workload Kubernetes Cluster In addition, you will also need the CAPV HAProxy OVA Appliance which will be used to provide out of the box high availability of the K8s Control Plane. Once the OVAs have been imported, you just need to convert them into traditional vSphere Templates
A config.yaml file will need to be created which contains deployment details about your vSphere environment along with the credentials and the VM templates to use for both the K8s distribution and HAProxy. You then run the "init" command to bring up your K8s Management Cluster which will then be used to deploy and manage your Tanzu Kubernetes Cluster(s).
There will be a couple of out of the box "flavors" that define the configuration of both the control plane and worker nodes. For example:
- Dev Flavor = 1 x Control Plane VM and 1 x Worker Node VM
- Prod Flavor = 3 x Control Plane VM and 3 x Worker Node VM
In the future, you will be able to define and use your own custom flavors. When deploying a Tanzu Kubernetes Cluster, you will have the ability to customize the number of control plane and worker nodes during deployment which you will see in the next step.
tkg init --infrastructure=vsphere:v0.6.0 --flavor=prod --name=tkg-mgmt-cluster
If you prefer a graphical user experience, simply specify the --ui argument and you will be able to launch a guided wizard using just your web browser.
tkg init --ui
Finally, let's deploy a new Tanzu Kubernetes Cluster. As mentioned earlier, when deploying a Tanzu Kubernetes Cluster, you can either rely on the default VM configuration or you can override them such as the example below which deploys a Tanzu Kubernetes Cluster with 3 x Control Plane and 8 Worker Nodes.
tkg create cluster --controlplane-machine=3 --worker-machine-count=8 --flavor=dev tkg-workload-cluster-01
If you take a look at our vSphere UI, you should see both a K8s Management and Workload Cluster. In the example below, I actually deployed another Tanzu Kubernetes Cluster to show that you can have different configuration based on different requirements.
We have only scratched the surface of what TKG CLI can do, I have not even talked about how easy it is to scale up a Tanzu Kubernetes Cluster or full lifecycle management of Tanzu Kubernetes Cluster using this single CLI utility. The really nice thing about TKG CLI is not only will this benefit VMware customers but anyone wanting to consume upstream TKG in a very simplified manner and it will also will be supporting other infrastructure endpoints beyond just vSphere. I know my buddy Kendrick Coleman, who works over in our Modern Applications Platform Business Unit (MAPBU) as a Developer Advocate for Tanzu Kubernetes Grid will certainly be providing more technical details when TKG CLI is available, so be sure to give him a follow on Twitter if you do not already.