Google's Kubernetes container cluster management framework ratcheted up a point revision this week. Version 1.2 provides many refinements to scaling, deployment, and management.
Clusters in 1.2 can now scale up to 30,000 pods (systems) per cluster, a claimed 400 percent improvement over the previous point revision. Earlier critiques of Kubernetes noted it had a ways to go before exhibiting the same kind of scale as its Google predecessor Borg or Apache Mesos. Mesosphere, the commercial developer of Mesos, actually supports Kubernetes via its Mesos-based DCOS data center automation product, so the two projects might be better viewed as complements rather than rivals.
Many of the improvements focus on cluster handling, which is central to Kubernetes. Custom metrics can be defined in a way unique to one's infrastructure to provide an option to scale. Failovers can now take place across cluster zones, and scheduling of job launches can be done between multiple zones. A new shutdown function allows all running jobs to be gradually transitioned off a given node, potentially easing the process.
Also new to Kubernetes are features that might have been inspired by DCOS automation. Apps can "pull" their configuration when launched, rather than requiring they be packaged at build time, allowing app configuration changes to slip in more easily. A new deployment API allows Kubernetes to automatically handle "versioning, multiple simultaneous rollouts, aggregating status across all pods, maintaining application availability, and rollback" for apps.
The tentative road map for the next version of Kubernetes hints at more improvements in the same vein -- larger cluster sizes and improved support for stateful applications. Application state has been a persistent problem with containerized apps; each app is largely responsible for its own state, which makes management of state at scale a major challenge.
The Kubernetes project has also made it easier to contribute to its documentation (all you have to do is fork/clone the site and send a pull request) and has started a bug bounty project with rewards paid in Google Cloud Platform credits.
Kubernetes' feature set and performance were challenged when Docker claimed its Swarm container orchestration system was faster in spinning up containers at scale, thanks to Swarm being smaller and more nimbly architected.
Defenders of Kubernetes shot back that Google's product was bigger for a reason, and Swarm and Kubernetes are aimed at different use cases. Kubernetes, they said, is an all-in-one framework for building distributed systems, designed to make "strong guarantees about cluster state."