What is it that all the major cloud vendors agree on? It is Kubernetes. The default flagship to run containers, Kubernetes has turned out to be a robust global-scale container orchestration platform. It is one of the fastest growing open source projects, with an ever-increasing community and contributor -base and.
Kubernetes borrows its prized features — resilience, scalability, high -availability and efficiency — from its predecessors, the Google Borg and Omega systems, which are Google’s internal scheduling platforms for running datacenters globally.
Kubernetes is an opinionated yet extensible platform for running Docker containers. It has a client-server architecture featuring a control plane and a data plane. Control plane consists of a distributed data store, a scheduler, a controller manager and a few other ecosystem components such as DNS and network components. Clients have a node agent and a proxy component. Kubernetes features different types of configurable application deployment objects, such as Deployments, DaemonSets, StatefulSets and Jobs, to suit different types of deployment topologies.
Kubernetes also supports Custom Resource Definitions (CRDs), through which its capabilities can be extended to suit different types of applications. The platform has built-in load balancing and proxying capabilities through Services and Ingress Controllers. A powerful Label and Annotation-based framework in Kubernetes provides great flexibility in creating and managing deployments. Namespaces, Quotas and Network Policies allow secure and efficient management and optimum utilization of the underlying resources. Kubernetes provides a standardized abstraction for all these features through a powerful command line as well as a REST API.
The Technological Facilitator of Transformation
Most enterprises are embracing digital transformation for seamless connectivity between their systems, partners and suppliers. Five main technologies are driving this transformation: Artificial Intelligence (AI) and Machine Learning (ML), Blockchain, Serverless technologies, BigData and Internet of Things (IoT). Cloud is the platform where most of this transformation is happening and Kubernetes is fast becoming the de-facto platform, vis-à-vis facilitator, for these technologies.
A machine-first approach is the chosen route to transformation for these enterprises. This involves huge investments in intelligent systems that require a significant amount of processing power. Kubernetes allows dynamic workload management to balance workload between expensive GPUs and cheaper CPUs. Efficient workload scheduling and resource utilization makes the platform the ideal choice for intelligent and ML systems. Projects like Kubeflow, FfDL and Polyaxon simplify the running of ML and deep learning models on Kubernetes. Now converging rapidly, Kubernetes and AI technologies complement each other.
IoT is another major technological wave that enables seamless, real-time data transfer between heterogeneous devices, people and objects. Data processing in IoT often happens at the ‘edge’ of the network and the IoT software is often mission critical. Kubernetes variants, such as microk8s, KubeEdge and k3OS, provide high availability and scalability, and facilitate rapid uniform deployment rollouts/ rollbacks through DevOps and Edge Computing needed in IoT.
Serverless technologies represent a paradigm shift in which applications are separated from the servers they are deployed on through a platform that provides all the infrastructure services required by the application. The servers for running these applications are dynamically provisioned and are charged based on usage.
Function as a Service (FaaS) technology takes another step and lets developers deploy a function or a piece of code that gets executed in response to an event. FaaS platforms manage the environment and infrastructure to place the function and integrate it with an ecosystem. FaaS and Serverless platforms require dynamic provisioning, efficient resource utilization and infrastructure management, which are out of the box features in Kubernetes.
CRDs ease deployment of native applications as well as creation and customization of applications of any technology. The surge in open source and proprietary Kubernetes-based serverless platforms, such as Knative, Kubeless and Apache Opewhisk, seem to indicate the future of Serverless computing is intertwined with Kubernetes.
Extensibility, Scalability, Availability, Observability and Alerting — all critical factors in building Blockchain architectures are available as first-class features in Kubernetes, making it a preferred choice for building Blockchain based applications. Projects like JIdoka facilitate Robotic Process Automation by leveraging Kubernetes’ high availability and service-based seamless connectivity.
Into the Future
Operating systems are evolving beyond traditional desktops and servers and are being created specifically with Kubernetes in mind. There has been a recent resurgence of Kubernetes-oriented operating systems, such as Talos, RancherOS, Linuxkit and k3os, which offer the capability to package and manage everything as a container in a uniform way. Although Linux is still an indispensable part of the system, its role is more like that of plumbing to the actual system than of the actual system.
Kubernetes has undergone significant evolution since its inception as a scalable container orchestration system. Today, Kubernetes prides itself on standardized abstraction for simpler access and management, in-built security measures, support for multiple diverse infrastructures, heterogeneous node management, out of the box handles for metering, monitoring, powerful customization handles and many other exciting features that strengthen it as the platform to build platforms. Kubernetes is no doubt the cloud operating system enabling our connected future.
Write to firstname.lastname@example.org for more on Kubernetes enabled transformation.