How Kubernetes Is Becoming the Universal Control Plane for Distributed Applications
Kubernetes is emerging as one of the best control planes in the context of modern applications and infrastructure. The powerful scheduler, which was originally designed to deal with the placement of pods on appropriate nodes, is quite extensible. It can solve many of the problems that exist in traditional distributed systems.
Kubernetes is fast becoming the preferred control plane for scheduling and managing jobs in highly-distributed environments. These jobs may include deploying virtual machines on physical hosts, placing containers in edge devices, or even extending the control plane to other schedulers such as serverless environments.
From bare-metal servers to virtual machines to the internet of things (IoT) devices to managed cloud services, Kubernetes has gone beyond containers and pods to tackle multiple provisioning and scheduling challenges.
Below are a few examples of this pattern:
Crossplane aims to standardize infrastructure and application management using the same API-centric, declarative configuration and automation approach pioneered by Kubernetes. It is a unified control plane that integrates seamlessly with existing tools and systems, and makes it easy to set policies, quotas and track reports.
Crossplane acts as a bridge between Kubernetes and traditional workloads such as databases, and even managed services in the public cloud. DevOps can declare external resources using the same YAML specification, along with the native Kubernetes applications. This approach encourages configuration as code by extending the versioning, continuous integration and deployment to non-Kubernetes resources.
K3s from Rancher is a certified Kubernetes distribution designed for production workloads running in highly-constrained environments such as IoT and edge computing deployments.
K3s can be deployed on the most virtual machine in the public cloud, or even on a Raspberry Pi device. Its architecture, while maintaining full compatibility and compliance with Cloud Native Computing Foundation (CNCF) Kubernetes conformance tests, is highly optimized for unattended, remote deployments on resource-constrained devices.
K3s is bringing Kubernetes to the edge computing layer by making it accessible and lightweight.
At KubeCon+CloudNativeCon 2018 in Seattle, Huawei presented KubeEdge, the official project to bring the power of Kubernetes to the edge.
KubeEdge is based on Huawei’s Intelligent Edge Fabric (IEF) — a commercial IoT edge platform based on Huawei IoT PaaS. A large part of IEF has been modified and open sourced for KubeEdge. Available in version 1.3, KubeEdge is stable and addresses the key use cases related to IoT and edge. It can be installed on a supported Linux distribution and on an ARM device like a Raspberry Pi.
The KubeEdge project is also a part of CNCF Sandbox.
KubeVirt, a virtual machine management add-on for Kubernetes, is aimed at allowing users to run VMs right alongside containers in their Kubernetes or OpenShift clusters. It extends Kubernetes by adding resource types for VMs and sets of VMs through Kubernetes’ CustomResourceDefinitions (CRD) API. KubeVirt VMs run within regular Kubernetes pods, where they have access to standard pod networking and storage, and can be managed using standard Kubernetes tools such as kubectl.
KubeVirt is part of the CNCF Sandbox.
Microsoft’s Virtual Kubelet project is the most interesting extension of the Kubelet agent and Kubernetes API. The Virtual Kubelet is an agent that runs in an external environment which is registered as a node within the Kubernetes cluster. The agent creates a node resource through the Kubernetes API. By leveraging the concepts of taints and tolerations, it schedules pods in an external environment by calling its native API.
Virtual Kubelet works with Azure Container Instances, Azure IoT Edge, and AWS Fargate control plane.
Though Kubernetes had a humble beginning in container orchestration, it quickly evolved to become the operating system of the cloud and the edge. Kubernetes is the foundation of modern infrastructure across the data center, hybrid cloud, public cloud and multicloud environments.