When a client asks us to create a highly available distributed system, we usually recommend/use KubernetesKubernetes (often abbreviated as K8s) offers a framework to run distributed systems efficiently. It's a platform that helps managing containerized workloads and services, and even takes care of scaling. Google open-sourced it in 2014.. Kubernetes is a container orchestration / portable cloud platform that is becoming the de-facto standard for running microservicesMicroservices are not a tool, rather a way of thinking when building software applications. Let's begin the explanation with the opposite: if you develop a single, self-contained application and keep improving it as a whole, it's usually called a monolith. Over time, it's more and more difficult to maintain and update it without breaking anything, so the development cycle may... infrastructures in the cloud. Even though there are several competing technologies by now, most of the bigger cloud providers offer managed Kubernetes clusters, making it even easier to adopt it as the foundation of distributed infrastructures.
To tell the story of how Kubernetes evolved from an internal container orchestration solution at Google to the tool that we know today, we dug into the history of it, collected the significant milestones & visualized them on an interactive timeline.
Kubernetes can speed up the development process by making easy, automated deployments, updates (rolling-update) and by managing our apps and services with almost zero downtime. Kubernetes is originally developed by Google, it is open-sourced since its launch and managed by a large community of contributors.
If you’d like to learn more about Kubernetes, check out our previous post:
What is Kubernetes & How to Get Started With It
Enjoy the timeline below! For more in-depth explanation & links scroll down a little bit.
The History of Kubernetes
2003-2004: Birth of the Borg System
- Google introduced the Borg System around 2003-2004. It started off as a small-scale project, with about 3-4 people initially in collaboration with a new version of Google’s new search engine. Borg was a large-scale internal cluster management system, which ran hundreds of thousands of jobs, from many thousands of different applications, across many clusters, each with up to tens of thousands of machines.
2013: From Borg to Omega
- Following Borg, Google introduced the Omega cluster management system, a flexible, scalable scheduler for large compute clusters. (whitepaper and announcement)
2014: Google Introduces Kubernetes
- mid-2014: Google introduced Kubernetes as an open source version of Borg
- June 7: Initial release – first github commit for Kubernetes
- July 10: Microsoft, RedHat, IBM, Docker joins the Kubernetes community.
2015: The year of Kube v1.0 & CNCF
- July 21: Kubernetes v1.0 gets released. Along with the release, Google partnered with the Linux Foundation to form the Cloud Native Computing Foundation (CNCF). The CNFC aims to build sustainable ecosystems and to foster a community around a constellation of high-quality projects that orchestrate containers as part of a microservices architecture.
- November 3: The Kubernetes ecosystem continues to grow! Companies who joined: Deis, OpenShift, Huawei, and Gondor.
- November 9: Kubernetes 1.1 brings major performance upgrades, improved tooling, and new features that make applications even easier to build and deploy.
- November 9-11: KubeCon 2015 is the first inaugural community Kubernetes conference in San Fransisco. Its goal was to deliver expert technical talks designed to spark creativity and promote Kubernetes education. You can watch the presentations here on day 1 and day 2.
2016: The Year Kubernetes Goes Mainstream!
- February 23: First release of Helm, the package manager of Kubernetes.
- February 24: KubeCon EU 2016 is the inaugural European Kubernetes conference with almost 500 attendees, following the American launch in November 2015. Read a recap of the conference here.
- March 16: Kubernetes 1.2 released – Improvements include scaling, simplified application deployment, & automated cluster management.
- July 1: Kubernetes 1.3: Bridging Cloud Native and Enterprise Workloads. v1.3 introduces Rktnetes 1.0, and a new alpha ‘PetSet’ object, and makes it possible to discover services running in multiple clusters.
- July 11: Official release of Minikube: a tool that makes it easy to run Kubernetes locally.
- September 8: Introducing Kops, an official Kubernetes project for managing production-grade Kubernetes clusters.
- September 19: Monzo released a case study on how they used Kubernetes to build a banking system from scratch.
- Septmeber 26: Kubernetes 1.4 introduces a new tool,
kubeadm, that helps improve Kubernetes’ installability. This release provides easier setup, stateful application support with integrated Helm, and new cross-cluster federation features.
- September 29: Pokemon GO! Kubernetes Case Study Released! Pokémon GO was the largest Kubernetes deployment on Google Container Engine ever. Luckily, it’s creators released a case study about how they did it.
- November 8-9: CloudNativeCon + KubeCon 2016 North America, in Seattle.
More than 1,000 end users, leading contributors and developers from around the world came together to exchange knowledge about Fluentd, Kubernetes, Prometheus, OpenTracing and other cloud-native technologies. Check out the presentation on this channel.
- December 7: Node feature discovery for Kubernetes Arrives – This package enables node feature discovery for Kubernetes. It detects hardware features available on each node in a Kubernetes cluster, and advertises those features using node labels.
- December 21: Kubernetes 1.5 – Windows Server Support Comes to Kubernetes. The new features include containerized multiplatform applications, support for Windows server containers and hyper-V containers, an expanded ecosystem of applications, coverage for heterogeneous data centers, & more..
- December 23: Kubernetes supports OpenAPI, which allows API providers to define their operations & models, and enables developers to automate their tools.
2017: The Year of Enterprise Adoption & Support
- March 28: Kubernetes 1.6 is a stabilization release. Specific updates: etcdv3 enabled by default, direct dependency on a single container runtime removed, RBAC in beta, automatic provisioning of StorageClass objects.
- March 29-30: CloudNativeCon + KubeCon Europe, Berlin. 1,500 end users, leading contributors and developers attended from around the world to exchange Cloud Native knowledge. You can find the presentations on this channel.
- May 24: Google and IBM announce Istio, an open technology that provides a way to seamlessly connect, manage & secure networks of different microservices — regardless of platform, source or vendor.
- June 30: Kubernetes 1.7: The container orchestration standard adds local storage, encryption for secrets, and extensibility i.e.: API aggregation, third-party resource, container runtime interface, and more.
- August 16: Github runs on Kubernetes: all web and API requests are served by containers running in Kubernetes clusters deployed on metal cloud.
- August 31: Kelsey Hightower released Kubernetes the Hard Way. Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster.
- September 11: The Cloud Native Computing Foundation Announces the First Kubernetes Certified Service Providers, the founding class of more than 22 Kubernetes Certified Service Providers (KCSPs), pre-qualified organizations that have deep experience helping enterprises successfully adopt Kubernetes.
- September 13: Oracle joined the Cloud Native Computing Foundation as a platinum member. Oracle open sourced a Kubernetes installer for Oracle Cloud Infrastructure and released Kubernetes on Oracle Linux.
- September 29: Kubernetes 1.8: This release was a milestone for the role-based access control (RBAC) authorizer, a mechanism for controlling access to the Kubernetes API, which would be a fundamental building block for securing Kubernetes clusters.
- October: Docker Fully Embraces Kubernetes – developers and operators can build apps with Docker and seamlessly test & deploy them using both Docker Swarm and Kubernetes.
- October 17: Docker Platform and Moby Projekt add Kubernetes: customers and developers have the option to use both Kubernetes and Swarm to orchestrate container workloads.
- October 24: Microsoft Introduces the preview of AKS – AKS features an Azure-hosted control plane, automated upgrades, self-healing, easy scaling, and a simple user experience for developers & cluster operators. Customers get open source Kubernetes without operational overhead.
- November 29: Amazon Announces Elastic Container Service for Kubernetes. Deploy, manage, and scale containerized applications using Kubernetes on AWS.
- December 6-8: KubeCon + CloudNativeCon North America, Austin – gathered more than 4,100 end users, vendors, leading contributors and developers from around the world. 289 sessions, keynotes, lightning talks, all available on this channel.
- December 15: Kubernetes 1.9 released: Apps Workloads GA and Expanded Ecosystem. New features: general availability of the apps/v1 Workloads API, windows support (beta), storage enhancements, and more.
- December 21: Introducing Kubeflow – A Composable, Portable, Scalable Machine Learning Stack Built for Kubernetes
- March 2: First Beta Version of Kubernetes 1.10 announced. Users could test the production-ready versions of Kubelet TLS Bootstrapping, API aggregation, and more detailed storage metrics.
- May 1: Google launches the Kubernetes Podcast, hosted by Craig Box.
- May 2-4: KubeCon + CloudNativeCon Europe 2018, hosted in Copenhagen. More than 4,300 developers gathered, including Risingstack at the Node Foundation booth:
- May 2: DigitalOcean dives into Kubernetes, announces a new hosted Kubernetes product. DigitalOcean Kubernetes will provide the container management and orchestration platform as a free service on top of its existing cloud compute and storage options.
- May 4: Kubeflow 0.1 announced, which provides a minimal set of packages to begin developing, training and deploying ML.
- May 21: Google Kubernetes Engine 1.10 is generally available and ready for the enterprise, featuring Shared Virtual Private Cloud, Regional Persistent Disks & Regional Clusters, Node Auto-Repair GA, and Custom Horizontal Pod Autoscaler for greater automation.
- May 24: Kubernetes Containerd Integration Goes GA. Containerd 1.1 works with Kubernetes 1.10 and above, and supports all Kubernetes features. The test coverage of containerd integration on Google Cloud Platform in Kubernetes test infrastructure is now equivalent to the Docker integration.
- June 5: Amazon EKS Becomes Generally Available. Amazon EKS simplifies the process of building, securing, operating, and maintaining Kubernetes clusters, and brings the benefits of container-based computing to organizations that want to focus on building applications instead of setting up a Kubernetes cluster from scratch.
- June 13: The Azure Kubernetes Service (AKS) is generally available. With AKS users can deploy and manage their production Kubernetes apps with the confidence that Azure’s engineers are providing constant monitoring, operations, and support for our customers’ fully managed Kubernetes clusters.
- June 27: Kubernetes 1.11 announced: In-Cluster Load Balancing and CoreDNS Plugin Graduate to General Availability. This newest version graduates key features in networking, opens up two major features from SIG-API Machinery and SIG-Node for beta testing, and continues to enhance storage features that have been a focal point of the past two releases.
Future of Kubernetes
We are looking forward to see where Kubernetes is heading to. Nowadays, there is a growing excitement about ‘serverless’ technologies, and Kubernetes is going in the opposite direction. However, Kubernetes has it’s place in our ‘increasingly serverless’ world. Tools like Kubeless and Fission providing equivalents to functions-as-a-service but running within Kubernetes. These won’t replace the power of Lambda, but show us that there are solutions on the spectrum between serverless and cluster of servers. Read more about the future of k8s on the ThoughtWorks blog.
Collecting the history of Kubernetes was fun, but there is a lot more to know about our favorite orchestration engine. Check out the Kubernetes-related articles on our blog, or if you need help, don’t hesitate to contact us.
Did I miss anything from the list? Or did you find any inaccuracies? Leave a comment below or find us on Twitter and let us know.