10 years ago this month the open source product Kubernetes was committed to GitHub for the first time with 250 files, and 47,501 lines of go, bash, and markdown. Today, that humble beginning has exploded to become one of the world's most important open source projects with 88,000 contributors from over 8,000 companies spread across 44 countries.
Kubernetes fits in a special category of software that only a select few enjoy; software that has forever changed how we think about computing and how we deploy software and systems.
Like the advent of the TCP/IP protocol, or the emergence of HTTP and the web, or the rise of virtual machines, Kubernetes has aided many a software development team in rapidly committing code, deploying systems in a herd-not-pets world, all the while abstracting applications and their dependencies from the underlying operating system.
|
Like other big tech firms in the early 2000s, Google was scaling rapidly and the idea of containerising applications began to form - some kind of structure to track and charge the utilisation of system resources for a workload. Some kind of container, say. By 2013 Docker emerged on the scene, making Linux-based containers more accessible and straightforward than ever before, and permenantly putting containers on the map.
Google had been experimenting with ways to manage the orchestration of containers at vast scale, and its efforts increased after Docker's release recognising that containers were no longer a nicety but an inevitability.
In came Kubernetes. The name originates from Ancient Greek, meaning 'helmsman' or 'pilot', and is often abbreviated as K8s.
Kubernetes assembles one or more computers, either virtual machines or bare metal, into a cluster which can run workloads in containers. While its origins were tied into Docker, it now supports a wide range of container runtimes such as containerd and CRI-O.
Kubernetes version 1.0 was released on 21st July 2015, and at the same time Google donated the product to a newly formed branch of the Linux Foundation, known as the Cloud Native Computing Foundation, or CNCF for short.
Since then, Kubernetes has continued to evolve, with notable roadmap entries being the introduction of role-based access control, the workloads API, the Container Storage Interface (CSI), and enhanced support for AI/ML workloads.
By 2018 Kubernetes was the second-most contributed-to open source project, coming in only after the Linux kernel itself.
Kubernetes is now available as a managed PaaS service from all major cloud providers while, of course, you can deploy it yourself as a fully open source project.
The next Kubernetes release, 1.31, will feature a whopping 40% reduction of file size, with 1.5 million lines of code removed. This removes a now-deprecated form of extensibility with that now better served through APIs and custom resource definitions.
Of course, challenges remain, but creative third-parties are always working to supplement Kubernetes and provide greater control and visibility to developers.
For example, tools like Groundcover, Weave Scope, Cilium and others leverage Kubernetes' eBPF functionality - the extended Berkeley Packet Filter - to execute code in the kernel when events occur. Use cases are still emerging, but include socket filtering, observability, network traffic visualisation, cost optimisation, and more.
Groundcover CEO and co-founder Shahar Azulay said, "Kubernetes has proven its ability to handle a diverse array of tasks, but its complexity demands significant setup and ongoing adjustments. Much like Linux's evolution into a robust operating system, I believe Kubernetes will evolve into a more user-friendly abstraction layer. As Kubernetes adoption continues to rise a decade in, the need for efficiency and cost optimization becomes increasingly critical. In the next decade, emerging technologies will help reduce costs, especially as cloud provider expenses remain the largest, with observability solutions sometimes adding up to 25% more. Cost-effective log management, metrics, and full tracing solutions will become essential, focusing on decoupling volume from pricing models. eBPF-based monitoring solutions are pioneering this transformation in the Kubernetes space, a trend that will grow in the coming years."