Kubernetes 1.6 has just been released, and I am incredibly proud to have served as its release lead. Thank you to Caleb Miles (CoreOS) and the rest of my team members from Microsoft, Red Hat, Heptio, Mirantis and Google for all of your hard work and support, as well as the hundreds of community members that participated in this release.
This unprecedented cross-company leadership marks a series of firsts: the first non-Google release lead and the first time a release team has been primarily staffed by non-Googlers. These milestones are further signs of the strength of the community that has grown around Kubernetes, the open source container orchestration platform.
Contributing to the release process
I knew leading the Kubernetes 1.6 release would be a unique opportunity to dive in even deeper with Kubernetes, and I expected to be thrown right in the middle of everything. My expectations were quickly met—I was exposed to the entire code base and had to engage the entire community in the process, making this a huge learning experience both technically and personally.
One of the biggest tests the team and I encountered was devising a way to more efficiently resolve flakes. Previously, a big problem release managers faced was working through the hundreds of flakes—tests that fail at varying frequencies—in front of them. With 26 Special Interest Groups (SIGs), it was impossible to get everyone to look at everything together. The team and I tried a new approach.
This time around, we assigned flakes to specific SIGs, in order to better identify and segment responsibility across the community. This approach worked; the process of resolving flakes was now much more manageable. Moving forward, when release teams have to think about the work in front of them to tackle this issue, it will be “SIG Auth and SIG Node have 20 flakes each,” not “as a project, we have 260 flakes.”
What’s new in Kubernetes 1.6
Kubernetes 1.6 is a stabilization release. This means we focused on a large number of lower level updates that significantly improve user experience, rather than adding many new features. Afterall, stabilization is key to Kubernetes becoming the plumbing of distributed systems.
The biggest update to come out of this release is the improvement of the core fundamentals of Kubernetes, improving both scalability and reliability. This is a major step forward in making Kubernetes a more efficient and production-ready system.
Specific updates I’m excited about in this release include:
etcdv3 enabled by default—etcdv3 is now the default controller enabled in Kubernetes. As a result, scalability, in terms of the number of nodes which can be managed by Kubernetes, has been improved dramatically.
Direct dependency on a single container runtime removed—Customers can now use container runtimes other than Docker, such as rkt or CRI-O. We’ve made container runtimes pluggable so that they can be swapped out. In previous versions, Kubernetes was tied to Docker. This update removes that direct dependency, making it so that you can call a generic container runtime.
RBAC is now in beta—RBAC (role-based access control) has moved from Alpha to Beta with the release of Kubernetes 1.6. This provides additional security in Kubernetes, allowing you to lockdown the various pieces of your cluster to specific people within your organization, as well as give granular control of what those people can do within the cluster. We have also added defaults for certain roles.
Automatic provisioning of StorageClass objects—Previously with Persistent VolumeClaims, if you wanted to have a volume automatically provisioned in Kubernetes, you had to manually create the cloud provider’s StorageClass. This release defaults to Kubernetes, automatically creating it on your behalf.
All of these updates provide the scalability and reliability enterprises are looking for as they adopt Kubernetes as their container management platform of choice.
Kubernetes moving forward
The strength of Kubernetes comes from the strength of its community, and that has always been the case. This release is a big step in terms of getting Kubernetes to be a true community project.
Having the full release process driven outside Google has exposed all of the dependencies they have had to manage up until this point. With this this release now complete, we can certainly look forward to future releases of Kubernetes managed by other companies and members of our community.
Once again, thank you to my release team members, including Caleb Miles, Ihor Dvoretskyi, Anthony Yeh, Jeff Grafton, Devin Donnelly, Maru Newby, Anthony Howe and Steve Kriss, as well as the rest of the community members who contributed to Kubernetes 1.6.
What does this mean for users of Tectonic?
Our work in upstream Kubernetes helps CoreOS release the latest version of Kubernetes in CoreOS Tectonic quickly while at the same time allowing others to build off of our open source contributions. Tectonic uses pure, upstream Kubernetes, and this release will be available to Tectonic users in just a few weeks.
Join the Kubernetes community and get involved
Dan Gillespie cofounded Redspread, a Y-Combinator company that developed a collaborative software deployment tool, which joined CoreOS in 2016. Gillespie now helps lead upstream Kubernetes development at CoreOS.