A DevOps engineer walks into a bar, puts the bartender in a docker container, put Kubernetes behind the bar, spins up 1000 bartenders, and orders 1 beer.
– Ben Burton
Voiced by Amazon Polly
Kubernetes is an open-source container orchestration platform for managing containerized applications. Almost all enterprises use VMware’s virtualization platforms when it comes to implementing their IT infrastructure. As containers become more common, a growing requirement is deploying containers alongside traditional virtual machines and managing them alongside traditional virtual machines.
Containers were first introduced on Linux in 2008 as a lightweight & portable platform for distributing and running applications across operating systems and clouds. In 2019 VMware began supporting Kubernetes within its vSphere virtualization platform, which includes the ESXi hypervisor.
By being lightweight, containers don’t have the same boundaries – security, and performance – as virtual machines. The development of applications can be greatly enhanced by using containers. A key feature of Kubernetes is its ability to automate and orchestrate deployments and availability, which makes it ideal for managing many challenges associated with deploying those applications.
Kubernetes is an open-source project that is governed by the Cloud Native Computing Foundation. It is a platform for managing containerized workloads and services, which facilitates both declarative configuration and automation of workloads, and is defined as a portable, extensible, and open-source platform. In addition to contributing heavily to open-source Kubernetes software, VMware has also actively participated in Kubernetes communities and governance.
Due to Kubernetes’ API-driven nature, automation is a breeze. As application developers strive to implement modern development practices, short or continuous development cycles, well-defined APIs, and separated and defined services, such as microservices, it is very attractive.
In today’s IT infrastructure and governance environment, vSphere and Virtual Infrastructure administrators often find themselves positioned between developers seeking to implement modern application development practices and more traditional practices rooted in decades of IT experience. We are posting this guide to help administrators understand what vSphere with Kubernetes is, how it helps build bridges between applications, and how to start using it both on-premises and in the cloud.
Figure 1: Image Source VMware blogs
What is Kubernetes?
It has a large, rapidly growing ecosystem. Kubernetes services, tools, and support are widely available. Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services.
Application development and deployment are being revolutionized by container orchestration tools such as Kubernetes. Development teams are becoming more focused on delivering value through software with the growth of microservices architecture and decoupling infrastructure from application logic.
What does Kubernetes mean to a VMware Administrator?
Using Kubernetes, modern, container-based workloads can be orchestrated and managed throughout their lifecycle. To better understand how Kubernetes fits into the modern enterprise, perhaps we should look at the history of the different approaches to application deployment:
Figure 2: Deployment Type
Traditional Deployment Era
The traditional deployment method is to deploy applications and workloads directly to physical servers. These types of deployments tend to be inflexible, hard to scale, and waste resources by tying them to specific systems. For Example, if multiple applications run on a physical server, there can be instances where one application takes up most of the resources, and as a result, the other applications suffer. There would be a solution to this if each application were run on a separate physical server. Organizations were unable to scale this because resources were underused, and maintaining many physical servers was expensive.
Virtualized Deployment Era
To fix the traditional deployment problem, virtualization was introduced. A new deployment type allows multiple virtual machines to run on a single physical server. Since the VM was isolated, applications could not easily access other applications on different VMs. The cost of hardware and other expenses can be reduced due to the efficient use of resources on physical servers. In addition, it is easier to add and update applications as well, which helps reduce operational costs.
By mimicking the functions of a physical server with a hypervisor such as VMware ESXi workloads can appear as if they are running on them. As well as vMotion, and dynamic resource scheduling VMware ESXi provides many other features that make it an attractive alternative to traditional workload deployment
Containerized Deployment Era
Containers are like Virtual Machines but are lightweight; the fundamental difference lies in their isolation properties as well as it doesn’t have rigid boundaries which VM has. Because containers share the operating system (OS), they are ultralightweight. In contrast, containers have their filesystems and resource allocation mechanisms since they are decoupled from the underlying infrastructure. Containers can run on multiple cloud providers as well as running on different operating systems. The lightweight nature of containers makes continuous development and integration for deployment possible, a capability that makes containers popular.
Kubernetes is a powerful container management tool that automates container deployment and management. Running containers in production requires the deployment, management, and updating of thousands of containers, if it is done manually, it would require a large team and long hours. Kubernetes users can now consume services in a VMware environment like using public cloud service. VMware vSphere can now manage workloads uniformly, regardless of whether they are containers, applications, or virtual machines.
vSphere with Kubernetes
At VMworld 2019, VMware announced vSphere with Kubernetes as Project Pacific. In Addition to adding Kubernetes capabilities to vSphere, respect the traditional vSphere experience of developers and administrators.
To a Developer, it works like a standard Kubernetes cluster with the same tools and processes, Kubernetes is based on a declarative syntax for defining resources such as storage, network, scalability, and availability. It eliminates developers’ need to directly access vSphere APIs or infrastructure and even relationships between entities.
To a vSphere Administrator, Kubernetes clusters for VMware can provide developers with a way to manage security, resource consumption, and networking functions using namespaces (used in Kubernetes for policy and resource management). Vsphere Administrators can manage the security, resource consumption, and networking capabilities available to developers by deploying “namespaces”, which are Kubernetes terms for managing resources and policies.
Figure 3: vSphere with Kubernetes
With vSphere and Kubernetes, you can host both traditional workloads and modern, cloud-native applications. For developers, it’s Kubernetes. For administrators, it’s vSphere. For Business-critical workloads along with modern, cloud-native applications are deployed and managed seamlessly while IT infrastructure security and compliance are maintained.
How does Kubernetes work with vSphere?
In vSphere, you will find a Kubernetes API, with a control panel based on the namespace entity managed by administrators, providing cloud service like a public cloud. This architecture enables consistent orchestration and management no matter what form or shapes the workload takes – container, virtual machine, or application.
Spherelet and Pod Service
With Spherelet, a customs agent from vSphere, Kubernetes API can be accessed directly from the ESXi hypervisor. Kubelet agent allows the ESXi hypervisor to connect with the Kubernetes cluster locally by acting as a local Kubernetes node.
A Linux VM or instance doesn’t need to be run separately on this hypervisor for containers to be hosted. From Kubernetes’s perspective, vSphere Pods services appear as vSphere containers running on ESXi which is called CRX (Container Runtime for ESXi).
In the Supervisor, the Spherelet agent is integrated directly into the ESXi hypervisor as a worker node instead of Linux, a special Kubernetes cluster type. Direct integration of the spherelet agent with the hypervisor ESXi is performed for this purpose.
In vSphere Pods, the Spherelet runs directly on ESXi, taking advantage of the hypervisor’s high availability, security, and performance.
Tanzu Kubernetes Cluster
Its production-grade operational capabilities make it highly suitable for support in large Kubernetes deployments. Tanzu Kubernetes Grid Integrated Edition is VMware’s first Kubernetes – first infrastructure solution. With TKG (Tanzu Kubernetes Grid), the infrastructure layer and the application layer of Kubernetes are managed together.
The combination of vSphere and Kubernetes allows VMware Administrators to remain familiar with the traditional vSphere environment while also delivering a world-class environment for containerized workloads.
It can be challenging to install and operate open-source Kubernetes. It’s like nothing else in the industry brings Kubernetes to enterprises like VMware vSphere with Kubernetes and the VMware Cloud Foundation. These products help businesses position themselves for the future without sacrificing current investments by leveraging existing infrastructure, people, processes, and workloads.
With Kubernetes namespaces, we can manage applications inside virtual infrastructure in a whole brand-new way. The sets of operational and security boundaries, but the developers get freedom and self-service. As with namespaces, Kubernetes orchestrates deployment, availability, security, and other operational details for workload administrators, developers, and VMware administrators.
Kubernetes clusters come in different flavors in VMware vSphere with Kubernetes. While Supervisor Clusters are tightly integrated with vSphere, they’re not as secure and performant as Kubernetes. When it comes to lifecycle operations, Tanzu Kubernetes Clusters are more flexible and conform to upstream Kubernetes releases.
CloudThat is also the official AWS (Amazon Web Services) Advanced Consulting Partner and Training partner and Microsoft gold partner, helping people develop knowledge of the cloud and help their businesses aim for higher goals using best in industry cloud computing practices and expertise. We are on a mission to build a robust cloud computing ecosystem by disseminating knowledge on technological intricacies within the cloud space. Our blogs, webinars, case studies, and white papers enable all the stakeholders in the cloud computing sphere.
Drop a query if you have any questions regarding Kubernetes, vSphere and I will get back to you quickly.
1. Why should be Run Kubernetes on VMware?
ANS: – Kubernetes is not the only way to host it many other distributions are available some of them running on public cloud services like AWS EKS and Azure AKS and Google GKE and some which do not require any specific infrastructure. VMware offers some compelling advantages when running Kubernetes alongside it compared to most other approaches. The beauty of VMware Kubernetes is that it offers equal weight to traditional virtual machines and containers. The VMware Kubernetes platforms support air-gapping which means you can disconnect your clusters completely from the Internet. That’s useful for use cases that require high levels of security and privacy the other k8 platforms require constant Internet connectivity, so this platform lack air-gapping.
2. Who should use VMware Kubernetes?
ANS: – If any of the following are true, VMware Kubernetes makes a lot of sense as a Kubernetes solution:
- In your organization, VMware is widely used for running VMs and you have a deep understanding of VMware tools.
- A Kubernetes solution should support both on-premises and cloud environments.
- VMware provides a centralized platform that will allow you to manage all VMs and containers in your organization
3. Is Kubernetes part of vSphere ESXI?
ANS: – It’s built into ESXi and vCenter. You can only acquire the add-on license as part of VCF.
4. Why does Kubernetes make use of a hypervisor?
ANS: – Kubernetes does not make use of a hypervisor. While Kubernetes work with the container it does not require a hypervisor to run and scale the cluster even if it is abstracted away by cloud providers. Cloud providers can you say hypervisor to run Kubernetes spots for example an AWS Fargate uses the AWS firecracker hypervisor for Amazon elastic Kubernetes services.
WRITTEN BY Navneet Nirmal Toppo
Navneet is a Research Associate at CloudThat. He is a Microsoft Certified Solution Professional and a Certified Network Security Specialist and who has experience in AWS, Azure, GCP & vSphere. He is passionate about cloud computing, cybersecurity, and learning new cloud-native technologies who strives to provide the best cloud experience to clients through transparency.