If you’ve been following my blog, you know that a lot of the content I publish focuses on VMware’s Container Service Extension and it’s integration with VMware Cloud Director, which allows service providers to create a Kubernetes-as-a-Service experience for their tenants utilizing their existing VCD-managed infrastructure.
Recently, myself and my colleague at VMware, Daniel Paluszek partnered with Nirmata to perform some testing on their new Kubernetes Extension for VMware Cloud Director. The Nirmata Kubernetes Extension for VCD builds on the rich UI experience already present in the VCD tenant portal by providing a workflow for provisioning Kubernetes clusters via CSE using the native UI.
The Native CSE Experience
As I’ve written about in my previous posts on CSE, once a service provider enables a tenant to provision Kubernetes clusters via CSE, tenants will use the vcd-cli with a CSE extension enabled to provision and manage Kubernetes clusters. For example, a tenant would log in to their VCD Org through the
vcd-cli and issue the following command to create a Kubernetes cluster via CSE:
$ vcd cse cluster create k8-cluster-1 --network outside --nodes 1
k8-cluster-1 is the name of the cluster,
--network is the OvDC network the cluster will nodes will utilize, and
--nodes 1 defines the number of worker nodes the cluster will contain.
While many users are familiar enough with a CLI to adapt to this method of resource provisioning, one piece of feedback we get from our partner community is that they’d like to offer a native UI experience in the tenant portal to allow their end customers to more intuitively provision Kubernetes clusters via VCD. That’s where the Nirmata Kubernetes Extension for VCD comes in…
Utilizing the Nirmata Kubernetes Extension
The Nirmata Kubernetes Extension for VMware Cloud Director is a custom extension created by Nirmata in partnership with the VMware Cloud Director team. The extension is comprised of a VCD UI extension as well as a Nirmata Server, deployed as a docker container, that passes communication between the UI elements, the CSE server, and the Nirmata SaaS platform. Daniel and I put together a detailed write up over at the Nirmata blog so I won’t go too deep in this blog post but wanted to walk through the experience of utilizing the service in the tenant portal.
After a Cloud Admin has onboarded a tenant in CSE and enabled the Nirmata Kubernetes Extension for their org, a tenant will see the Kubernetes option in their tenant portal menu:
After navigating to the Kubernetes page in the tenant portal, they can observe various information about the number of clusters, nodes, and pods deployed in the org. By selecting the Clusters option in the left hand, they are taken to a page that contains information about existing clusters as well as options to provision new clusters or register existing clusters with the extension.
As we can see from the screenshot above, our
cse-standard-admin VCD user has already got a handful of clusters deployed in the environment. But what about a cluster that was provisioned outside of the UI? Can we still “see” that within the extension without redeploying? We sure can! We can click the Register button and register the existing cluster. This action communicates with the Nirmata server to deploy the Nirmata controller pod to the cluster to feed information about the cluster back to the UI for visibility:
After the cluster has been registered, we can select the cluster and observe a wealth of information about the cluster itself natively in the UI:
Nirmata also surfaces the idea of “add-ons,” or curated applications, that tenants can deploy directly to their clusters from the UI:
Service Providers can utilize applications curated by the Nirmata team as well as adding their own custom deployments. To take it a step further, Service Providers can create profiles that contain a set of add-ons that will be deployed to a cluster automatically on provisioning.
As far as interacting with existing clusters goes, tenants can also scale clusters in the tenant portal as well, via the extension:
So tenants can managed existing clusters deployed by CSE, what about provisioning net-new workloads? Tenants can visit the Cluster page of the UI extension and select the Create button and provision a Kubernetes cluster with a couple of clicks!!
The tenant defines information such as OvDC, OvDC network, storage policy, and worker node count and Nirmata and CSE handle the rest! In my humble opinion, this a game changer for the service provider community already invested in VCD. By installing and configuring CSE and the Nirmata Kubernetes Extension, they have the foundation in place to build an advanced Kubernetes-as-a-Service offering for their tenants to consume.
Nirmata has done some great work in conjunction with the VMware Cloud Director team to bring Kubernetes cluster provisioning and management directly into the tenant portal of VCD. As I said earlier, Daniel and I collaborated on a more detailed write-up on the Nirmata Kubernetes Extension for VCD that is hosted on the Nirmata blog. We also put together a video walkthrough of the extension, which you can view below: