If you work in the IT industry, you’ve probably heard the term “Kubernetes,” which is typically used in association with containers technology. Containers may be really beneficial when it comes to developing apps. Kubernetes was intended to address many of the issues that come with deploying applications, most notably by automating and orchestrating deployments and availability. In this article, we will take a closer look at how Kubernetes works with VMware and how to deploy Kubernetes on VMware infrastructure.
What is Kubernetes?
Kubernetes is an open-source project. It is heavily API-driven, making it an ideal tool for automation. It appeals to application developers that want to use modern development approaches such as fast or continuous development cycles, well-defined APIs, and well separated and specified services. Additionally, VMware is widely used for setting up and managing containers in a Kubernetes environment.
It has a huge and fast-expanding ecosystem. Services, support, and tools for Kubernetes are widely available. Kubernetes is a new way to orchestrate the deployment and lifecycle management of modern, container-based workloads. VMware makes significant contributions to the open-source Kubernetes software base and is active in Kubernetes communities and governance. For those who prefer GUI-based management, the vSphere GUI can be used for various aspects of Kubernetes setup and administrative duties.
How does Kubernetes work with vSphere?
By introducing the Kubernetes APIs as a new control plane, vSphere has become closely integrated with Kubernetes. This allows Kubernetes users to consume services from the VMware environment in the same way that they would in the public cloud. vSphere can now manage workloads, whether they are containers, applications, or virtual machines, in a uniform manner.
The Kubernetes API, as well as the Spherelet, a management agent based on the Kubernetes Kubelet, are now included in the ESXi hypervisor, which is at the heart of vSphere. As a result, the ESXi hypervisor can join Kubernetes clusters as a native Kubernetes node. This integration makes it easier to run Kubernetes on VMware vSphere, providing a seamless experience for managing containerized applications.
Containers can be run directly on the hypervisor on ESXi systems. A new container runtime dubbed CRX, which is included with vSphere makes this possible. Instead of loading a full Linux guest OS. This method makes use of a highly optimized Linux kernel and a lightweight init process.
Such containers can be accessible through a vSphere Pod Service in Kubernetes. The vSphere Pod Service allows you to run vSphere containers in Kubernetes, however, they are not Kubernetes clusters that are completely conformant.
Kubernetes for vSphere’s Developers and Admins
vSphere with Kubernetes appears and behaves like a typical Kubernetes cluster to a developer. Their tools and methods are adaptable to different implementations. They can specify what resources they require using Kubernetes’ “declarative syntax,” which includes storage, networking, and even relationships and availability requirements. They don’t need direct access to or knowledge of the vSphere APIs, clients, or infrastructure because they use the industry-standard Kubernetes syntax. Additionally, VMware provides a consistent management interface to centrally manage Kubernetes clusters, ensuring seamless integration and enhanced security.
To a vSphere Administrator, vSphere continues to function in the same way it has for decades, but with additional workload management tools to better meet the demands of developers. The vSphere Client, PowerCLI, and APIs are still used to manage vSphere. vSphere Administrators can create “namespaces,” which are Kubernetes terms for resource and policy management, and regulate the security, resource consumption, and networking capabilities available to developers.
vSphere with Kubernetes – pros and cons
Kubernetes can be deployed in a variety of methods. Managed, cloud, on-premises virtual, and on-premises bare metal are all options. To install and manage Kubernetes efficiently in the company, most installations necessitate substantial setup work, new processes, and retraining of people. This is where vSphere with Kubernetes and the VMware Cloud Foundation Services excel, with simple installation and operation that blends seamlessly with your existing IT infrastructure and procedures. VMware Kubernetes offers cloud-agnostic capabilities, support for air-gapping, and integration with existing VMware infrastructure, making it a versatile choice for managing both containers and VMs.
There are two types of Kubernetes clusters that run natively within vSphere: a “Supervisor” Kubernetes cluster control plane for vSphere and the Tanzu Kubernetes Cluster, also known as a “Guest Cluster”.
Supervisior Cluster vs. Tanzu Kubernetes Cluster
The supervisor is a Kubernetes cluster that employs ESXi instead of Linux as its worker nodes. This is accomplished by directly integrating the Spherelets worker agents into the ESXi hypervisor. The Spherelet doesn’t run in a VM, instead, it uses vSphere Pods to run directly on ESXi. Instead of Linux nodes, the supervisor cluster is a Kubernetes cluster with ESXi nodes. Container workloads are run on the Supervisor Cluster using vSphere Pods. Native Pods rely heavily on the ESXi hypervisor’s outstanding security, availability, and performance. Tanzu Kubernetes Grid plays a crucial role in running Kubernetes clusters on VMware infrastructure.
While the Supervisor uses Kubernetes, it is not a Kubernetes cluster that is conformant. This is by design, as the goal is to leverage Kubernetes to improve vSphere rather than to create a Kubernetes clone. Tanzu Kubernetes Clusters, also known as “Guest” clusters, can be used to give Kubernetes clusters to your developers that are standards-based and fully conformant with upstream Kubernetes.
A Tanzu Kubernetes Cluster is a Kubernetes cluster that runs on the Supervisor layer of virtual machines rather than on vSphere Pods. A Tanzu Kubernetes Cluster is guaranteed to function with all of your Kubernetes applications and tools because it is completely upstream-compliant Kubernetes. In vSphere, Tanzu Kubernetes Clusters leverage the open-source Cluster API project for lifecycle management, which uses the VM Operator to manage the cluster’s VMs.
If you want to learn more about the Tanzu Kubernetes Cluster, we are currently preparing another article, specifically about this topic, so stay tuned.
Conclusions
vSphere with Kubernetes provides users with traditional workloads, VMware Administrators may continue to use the vSphere environment they’ve known for decades, while also delivering a world-class environment for containerized workloads in new applications. The Tanzu Kubernetes Grid Service offers key characteristics that enhance the management and deployment of Kubernetes clusters.vSphere with Kubernetes provides users with traditional workloads, VMware Administrators may continue to use the vSphere environment they’ve known for decades, while also delivering a world-class environment for containerized workloads in new applications.
As you invest in your infrastructure, don’t skip the security and backup of the VMware ecosystem.
Kubernetes namespaces are set to revolutionize the way we manage applications in virtual infrastructure. They give developers autonomy and self-service within the business’s operational and security constraints. From the VMware vRealize Suite to Tanzu Mission Control, the VMware ecosystem of products benefits both administrators and developers. While positioning the organization for the future, the approach these solutions take recognizes and respects investments in infrastructure, people, processes, and present workloads. Additionally, these solutions ensure compatibility with upstream Kubernetes development across VMware infrastructure, bare metal servers, and public clouds.