A Decade of Kubernetes: Reflections and Insights from a Seven-Year Journey
It is always interesting and curious to remember for me that just by having some experience with UNIX-based operating systems I had the opportunity to implement Solaris Zones and Containers in Production Systems a few years before we could hear about a Docker Container or Kubernetes.
In 2016, after a few years of indirect experience with cloud services, I just decided to take the former “Introduction to DevOps” course from Coursera that literally changed my life and blew my mind. Although at that moment Docker and Kubernetes were not within the scope of the course, my curious-by-nature spirit led me to investigate more a more and a few months later I just started hearing and reading small bits of content about Docker and Kubernetes.
My curiosity led me to a new role where I needed to go fast and experiment with Docker and microservices, it started getting better and better, and our customers started having Kubernetes clusters in the cloud but these clusters were running in the dark without the right Observability tools on them, few months later we were providing feedback to the Engineering Team of our Observability Provider to be able not just to monitor microservices and Container images but all the Kubernetes resources from clusters.
Moved by the community spirit around CNCF and Kubernetes, when we were locked in 2020 I went one step ahead and injected some energy into the CNCF Chapter in Chile trying to give more to the community and to open more professional possibilities to the newer generation of Developers in Latinoamérica. I remember we were able to interview the creator of the Kubernetes Ingress-NIGINX, you can see the video here, it was a revelation moment for me, and after that, I dedicated more and more time to learning about the internal components of Kubernetes. Going through my current role at that moment I was involved in an Application Modernization Project to automate Domain Names assignation to containerized applications using Kubernetes External DNS as a bridge, once again Kubernetes was there with beautiful challenges for me looking to improve the Developer Experience and leveraging the modernization process.
Now I can’t believe that I’m a Kubernetes Platform Engineer -contributing to Customer Adoption and DevX- member of a superheroes team creating a Kubernetes Edge Platform to help patients in the health & science industry, and in one week I’ll be holding the first Kubernetes Community Days in Barcelona as a co-organizer.
It has been 7 years, hundreds of container images, dozens of clusters, and some cloud credits spent learning about the magic of container orchestration, it is really worth the effort, the experiences and satisfaction are countless and priceless.
Beyond the architectural decisions taken and the current direction of the product, among the multiple features and capabilities now available in Kubernetes ( as of current version 1.30) the following ones are my favorites:
- Extensibility through Custom Resources and Operators: The ability to extend Kubernetes’ functionality through Custom Resources and Operators enables seamless integration with third-party tools and services, as well as the automated management of complex application stacks.
- Horizontal Scaling and Self-Healing Capabilities: Kubernetes’ ability to automatically scale applications horizontally (by adding or removing replicas) based on resource utilization or custom metrics is a powerful feature. Combined with its self-healing capabilities (automatically restarting failed containers or rescheduling them on healthy nodes), Kubernetes ensures high availability and resilience for applications running on the cluster.
Among the vast array of capabilities, these are game changers for me because they provide scalability, resilience, and simplified management for running -almost- any modern cloud-native application.
A decade-long story
Kubernetes and Containers have changed my life in the last seven years and this is my summarized story, additionally, as an anniversary gift I did some research about some important milestones and insights along the way during these 10 years, I hope you enjoy the reading:
2014: The Birth of Kubernetes
Kubernetes, an open-source project initially developed by Google, was released. During this year it was promoted as a tool with great potential for container management.
- Released Version: Kubernetes v0.1.
- Highlighted Features: Initial container orchestration capabilities.
2015: The Formative Year of Kubernetes
The project is donated to The Linux Foundation and at the same time it is created the Cloud Native Computing Foundation which takes the Kubernetes Project to empower container technology adoption. The first KubeCon took place in San Francisco, California where early adopters and contributors share their experiences and visions.
- Released Version: Kubernetes v1.0 (July 21, 2015).
- Highlighted Features: Stable APIs, initial support for replication controllers, and service discovery.
- KaaS: Google Kubernetes Engine (GKE) was launched (August 2015).
2016: Version 1.1, Enterprise Adoption, and Ecosystem Growth
This year was mainly focused on discussions on enterprise adoption and ecosystem expansion. Even when Apache Mesos was initially released in 2014, the 1.0 stable version appeared in June with the ability to manage different container runtimes.
- Released Versions: v1.1 to v1.5.
- Important Features: Ingress, ConfigMaps, and the first version of Helm.
2017: Helm, CRI, and Expanding Horizons
It was a transformative year for Kubernetes, marked by significant technical advancements such as Helm for deployment simplification, RBAC for granting fine access control, and the general availability of the Container Runtime Interface, expanding enterprise adoption, and robust community growth. KubeCon was extended to Europe.
- Released Versions: Kubernetes v1.6 to v1.9.
- Important Features: Container Runtime Interface (CRI), StatefulSets, and Role-Based Access Control (RBAC).
- KaaS: Alibaba Cloud announced and released Container Service for Kubernetes (ACK) as a fully managed Kubernetes service. ACK was one of the earliest managed Kubernetes offerings from major cloud providers. Amazon Elastic Kubernetes Service (EKS) announced at AWS re:Invent (November 2017).
- Kubernetes Certification: Certified Kubernetes Administrator (CKA) launched.
2018: Multi-Cloud, Hybrid Cloud, and Serverless
Six versions were released this year. Kubernetes focused on improving stability and usability, with significant enhancements to storage, networking, and security. Other important additions to the ecosystem were Serverless computing with Knative and multi-cloud/hybrid cloud capabilities. The first KubeCon + CloudNativeCon in Asia took place in Shangai, China between November 13 and 15th.
- Released Versions: Kubernetes v1.10 to v1.13.
- Important Features: Custom Resource Definitions (CRDs), kubeadm, and dynamic admission control.
- KaaS: Azure Kubernetes Service (AKS) preview released in November 2017 (formally launched in 2018).
- Kubernetes Certification: Certified Kubernetes Application Developer (CKAD) launched.
2019: Kubernetes as the Cloud OS, Operator Pattern, Edge and Service Meshes
We could see the rise of the operator pattern and the importance of service meshes like Istio, as well as the introduction of Windows Server containers support (GA). If we turn to Edge and IoT, Rancher’s K3s continued to gain popularity for edge and resource-constrained environments. KubeEdge saw increased adoption, with enhanced features for managing edge nodes and devices.
- Released Versions: Kubernetes v1.14 to v1.17.
- Important Features: Container Storage Interface (CSI), CoreDNS as the default DNS, and the Operator pattern.
- KaaS: VMware announced Tanzu, a portfolio for building, running, and managing Kubernetes-controlled containerized applications
- Kubernetes Certification: Kubernetes Certified Service Provider (KCSP) program expanded.
2020: Docker Deprecation, GitOps, and the Rise of Observability
Kubernetes had firmly established itself as a production-grade container orchestration platform, with widespread adoption across various industries and organizations. GitOps gained traction as a method for continuous delivery and operation of Kubernetes applications, with tools like Argo CD and Flux seeing increased adoption and development. The Kubernetes ecosystem saw further consolidation, with distributions like Rancher, Mirantis Kubernetes Engine, and VMware Tanzu emerging as popular choices.
- Released Versions: Kubernetes v1.18 to v1.20.
- Important Features: Deprecation of Docker as a container runtime, GitOps methodology, RuntimeClass for security, Ingress graduating to stable, improved IPv6/IPv4 dual-stack support, and Pod Security Policies.
- KaaS: Google’s Anthos and Microsoft’s Azure Arc furthered the capabilities of Kubernetes in hybrid and multi-cloud environments, emphasizing seamless management and deployment across diverse infrastructures.
- Kubernetes Certification: Certified Kubernetes Security (CKS) launched.
2021: Enhanced Security, Service Mesh Integration, and Edge Computing
The ecosystem around Kubernetes saw significant growth, with new tools, platforms, and services emerging to support various use cases. There was a deep integration of service mesh technologies and Kubernetes’ expansion to edge computing. Kubernetes solidified its role in ML/AI workloads, with Kubeflow providing robust support for deploying and managing machine learning pipelines.
- Released Versions: Kubernetes v1.21 to v1.23.
- Important Features: Significant API removals, Server-side apply, EndpointSlices, immutable secrets, Pod Security Admission and better network policies.
- Kubernetes Certification: Kubernetes and Cloud Native Associate (KCNA) certification launched.
2022: Edge Computing, 5G, and Removal of Docker Shim
Despite the ongoing global challenges, the Kubernetes community remained vibrant and active focusing on edge computing, 5G, and sustainability initiatives. Tools like Prometheus and Grafana remained essential for observing and monitoring Kubernetes environments, along with GitOps as operational practice with enhancements in Argo CD and Flux.
- Released Versions: Kubernetes v1.24 to v1.26.
- Important Features: Transition to contained or cri-o, cgroups v2 support, Dual-stack IPv4/IPv6 support, cron jobs GA, advancements in Kubernetes API and increased support for edge computing and 5G.
- KaaS: AWS released EKS Anywhere, allowing customers to run EKS clusters on-premises or in third-party clouds.
2023: Sustainability, Resource Efficiency, and AI/ML Integration
It was a year of strategic advancements and robust growth for Kubernetes, characterized by significant feature releases, enhanced security measures, and expanding adoption in edge computing, AI/ML, and hybrid cloud environments. GitOps as a standard practice. Sustainability in the Cloud Native ecosystem is positioned as one of the most important discussed topics across the different KubeCon+CloudNativeCon worldwide.
- Released Versions: Kubernetes v1.27 to v1.29.
- Important Features: Energy-efficient scheduling, workload optimization, and improved auto-scaling.
2024: Celebrating a Decade of Innovation and Future Directions
There is an Increasing focus on regulatory compliance, with Kubernetes projects emphasizing features to meet regulations like GDPR, CCPA, and HIPAA. Consolidation of Platform Engineering using Kubernetes as the only foundation to serve a better Developer Experience.
- Released Versions: Kubernetes v1.30 to v1.32 (projected).
- Important Features: Enhanced observability, improved API server scalability, enhancements to scheduling policies, and the GA of dynamic resource allocation
- Kubernetes Certification: Kubernetes and Cloud Native Security Associate (KCSA) certification launched.
The journey continues, and I’m just wondering what will bring Kubernetes for us in the next 10 years.
I don’t want to close this humble compliment to my favourite technology without recognizing the initial spark of all of it back in 2014 (and even before) of Joe Beda, Brendan Burns, and Craig McLuckie.
Happy KuberTENes everyone!
If you follow me on LinkedIn you will see that I’ve prepared some slides to summarize this post in a visually compelling way.
=========================
𝑭𝒐𝒍𝒍𝒐𝒘 𝒎𝒚 𝒓𝒆𝒂𝒅𝒊𝒏𝒈 𝒋𝒐𝒖𝒓𝒏𝒆𝒚 𝒂𝒕 𝑮𝒐𝒐𝒅𝑹𝒆𝒂𝒅𝒔 — https://lnkd.in/e9RGyd_F
𝑷𝒓𝒂𝒄𝒕𝒊𝒄𝒆 𝒚𝒐𝒖𝒓 𝑲8𝑺 𝒌𝒏𝒐𝒘𝒍𝒆𝒅𝒈𝒆 𝒘𝒊𝒕𝒉 𝒅𝒂𝒊𝒍𝒚 𝒒𝒖𝒊𝒛𝒛𝒆𝒔 — https://t.me/thekubequest
𝑳𝒆𝒂𝒓𝒏 𝒂𝒏𝒅 𝑪𝒆𝒓𝒕𝒊𝒇𝒊𝒄𝒂𝒕𝒆 𝒐𝒏 𝑪𝒍𝒐𝒖𝒅 𝑵𝒂𝒕𝒊𝒗𝒆 𝒇𝒐𝒓 𝒇𝒓𝒆𝒆 — https://lnkd.in/eZfhvq42