The Evolution of Kubernetes: From Borg to K8s and How it Became the Standard for Container Orchestration
Kubernetes is an open-source system for managing containerized applications across multiple hosts. It provides basic mechanisms for deployment, maintenance, and scaling of applications. Kubernetes is also the foundation of modern application architecture, and more and more enterprises use Kubernetes as the container orchestration system.
Key Features of Kubernetes
Trends of Kubernetes
History Overview
Kubernetes was born out of Google’s experience in running large-scale distributed systems for over a decade. Google introduced the Borg system around 2003–2004, which was a cluster management system that ran hundreds of thousands of jobs, from many thousands of different applications, across many clusters, each with up to tens of thousands of machines. Borg enabled Google to achieve high availability, scalability, and efficiency for its services.
However, Borg had some limitations, such as being tightly coupled with Google’s internal infrastructure, having a complex and monolithic design, and lacking support for declarative configuration and application-level health checks. To address these issues, Google introduced the Omega system in 2013, which was a flexible, scalable scheduler for large compute clusters. Omega used a shared-state approach, where multiple schedulers could operate on the same cluster state concurrently, allowing for more fine-grained resource allocation and better utilization.
Kubernetes was founded by Joe Beda, Brendan Burns, and Craig McLuckie, who were quickly joined by other Google engineers including Brian Grant and Tim Hockin. Kubernetes was first announced by Google in mid-2014, and was influenced by both Borg and Omega. The original codename for Kubernetes within Google was Project 7, a reference to the Star Trek ex-Borg character Seven of Nine. The seven spokes on the wheel of the Kubernetes logo are a reference to that codename.
Kubernetes was open-sourced since its launch and managed by a large community of contributors. In 2015, the Cloud Native Computing Foundation (CNCF) was created to host and govern Kubernetes and other cloud-native projects. Since then, Kubernetes has become the de-facto standard for container orchestration, with support from major cloud providers, software vendors, and enterprises.
History in Depth
Borg Era (2000–2013)
Borg, an internal cluster management system developed by Google in the early 2000s. Borg was designed to run hundreds of thousands of jobs, from many different applications, across many clusters of machines. Borg enabled Google to achieve high resource utilization, fault tolerance, and scalability for its massive workloads.
Borg was also the inspiration for many of the concepts and features that Kubernetes would later adopt, such as pods, services, labels, and controllers. However, Borg was not open-sourced, and it was tightly coupled with Google’s proprietary infrastructure and tools.
Omega Experiment (2013 — mid 2014)
Omega, a new cluster management system that aimed to improve upon Borg’s limitations. Omega was more flexible and scalable than Borg, and it allowed for multiple schedulers to operate on the same cluster. Omega also introduced a declarative approach to defining the desired state of the cluster, which would later influence the design of Kubernetes.
However, Omega was not a replacement for Borg, but rather an experiment to explore new ideas and technologies. Omega was also not open-sourced, and it faced some challenges with performance and complexity.
Birth of Kubernetes (mid 2014 — mid 2015)
A group of Google engineers decided to create a new system that would bring the benefits of Borg to the wider world. They wanted to make container orchestration more accessible, portable, and extensible. They also wanted to leverage the growing popularity of Docker, a new technology that made it easier to build and run containers.
The project was initially codenamed “Project 7”, after the Star Trek character Seven of Nine, who was a former Borg drone. The name Kubernetes was later chosen, which means “helmsman” or “pilot” in Greek. Kubernetes is often abbreviated as K8s, counting the eight letters between the K and the s.
The first public announcement of Kubernetes was made in June 2014, followed by the first GitHub commit in July 2014. The initial version of Kubernetes was heavily influenced by Google’s experience with Borg, but it was also designed to be more modular and flexible, allowing for different types of workloads and environments.
CNCF Era (mid 2015 — present)
Kubernetes reached version 1.0, marking its readiness for production use. Around the same time, Google partnered with the Linux Foundation to form the Cloud Native Computing Foundation (CNCF), a new organization dedicated to promoting and supporting cloud-native technologies. Google donated Kubernetes as the first seed project for the CNCF, ensuring its vendor-neutral governance and development.
Since then, Kubernetes has grown rapidly in popularity and adoption, becoming one of the most active and diverse projects in the open-source community. Thousands of contributors from hundreds of companies have added new features, improvements, and bug fixes to Kubernetes, making it more capable and reliable. Hundreds of vendors have offered products and services based on or compatible with Kubernetes, giving users more choices and flexibility. Millions of users have deployed Kubernetes in various scenarios and scales, from small startups to large enterprises, from cloud platforms to edge devices.
Kubernetes has also spawned a rich ecosystem of related projects and tools, covering areas such as networking, storage, security, monitoring, service mesh, serverless, and more. Some of these projects are also hosted by the CNCF or other foundations, creating a coherent landscape of cloud-native solutions.
Versions and major changes
Conclusion
Kubernetes is still evolving and improving with every release, adding new features and enhancements to make it more powerful, reliable, and user-friendly. Kubernetes is becoming the de-facto standard for running microservices infrastructures in the cloud, as well as in hybrid and multi-cloud environments. As a core technology, Kubernetes has become the foundation of modern application architecture, and more and more enterprises use Kubernetes as the container orchestration system.