In 2003 IBM tried to teach the masses about Linux and, by extension, open source. In the commercial, IBM represents Linux as an inquisitive boy, one who is “learning, absorbing. He’s getting smarter every day.” Today, that same representation could be applied to Kubernetes, the container orchestration darling that a host of companies have rallied around to dramatically improve its functionality.
Like Linux before it, Kubernetes dominates its particular market because it comprises the sum total of a variety of commercial inputs, with companies as varied as Google and Red Hat actively investing significant code to shape it to their needs. In so doing, as Pivotal’s Andrew Clay Shafer styled it, Kubernetes is becoming a “ubiquitous invisible standard” that developers will depend upon absolutely, even if they don’t think much about it directly.
As we enter 2018, it’s worth reviewing some of the big technical advances the Kubernetes community fostered in 2017.
Getting smarter all the time
Though container (and Kubernetes) adoption remains relatively small, as Red Hat CEO Jim Whitehurst highlighted on the company’s most recent earnings call, it’s “growing really rapidly” and represents “the biggest trend in technology right now,” at least in infrastructure. Small wonder, then, that every major tech company has been forced to develop a Kubernetes strategy, making the container orchestration project the industry’s standard.
Even so, Kubernetes has lacked basic features that more weathered technology, like virtual machines, delivered ages ago. In 2017, however, that list of deficiencies grew shorter.
For example, roughly 18 months ago it was accurate to call out Kubernetes failings in documentation, setup, and ease of use. Talking with Red Hat cloud general manager Ashesh Badani, this complaint has less resonance today.
“A few years ago,” Badani said, “people said that getting started with Docker Swarm was easier than Kubernetes. The Kubernetes community created tools like Minikube and Minishift to run locally on the laptop, automation playbooks in Ansible, services like Katacoda have made it really simple to have online tutorials to learn, and multiple cloud offerings [like GKE and OpenShift] make it simple to get a working Kubernetes cluster immediately.”
Beyond improved simplicity in getting to “Hello World,” Badani went on, the Kubernetes community has collectively improved its operational experience. Much of these improvements, whether from Red Hat, Google, Microsoft, or others, derive from these companies’ own experiences running Kubernetes in production, pushing improvements upstream into the community code base.
More and faster
As enterprises kick the tires on cloud, all remain earthbound with a wide array of workloads, pushing them into hybrid cloud territory. With a desire to ensure consistency of Kubernetes from one cloud environment to the next, Badani pointed to CNCF’s Kubernetes Conformance model as the solution.
Similarly, as the Kubernetes community tackled the issues of infrastructure and application breadth, innovative solutions emerged for hard-to-master problems. On the first problem, according to Badani, “Other container orchestrators had ways to integrate storage and networking, but only Kubernetes created standards (e.g., CNI, CSI) that have gained mainstream adoption to create dozens of vendors and cloud options.” As for the second issue (application breadth), “The community has evolved from supporting stateless apps to supporting stateful applications (and containerized storage), serverless applications, batch jobs, and custom resources definitions for vertical-specific application profiles.”
The Kubernetes community hasn’t stopped there. In Badani’s words, the community is growing Kubernetes in the following three areas:
- Security: A year ago, there were concerns about Kubernetes security. Since then, the community has responded with better encryption and management of secrets, and improved Kubernetes-specific container capabilities like CRI-O and OCI standardization.
- Performance: Red Hat (and others) have started the Performance SIG to focus on high-performance applications (HPC, Oil & Gas, HFT, etc) and profile the required performance characteristics of these applications in containerized environments.
- Developer Experience: Just a few months after KubeCon 2017 in Berlin, we’re seeing standardization around the Helm format for application packaging, Draft to streamline application development, and Kubeapps to simplify getting started with apps from a self-service catalog.
Like Linux before it, Kubernetes is “getting smarter every day,” drawing strength from the disparate needs of its increasingly diverse community. Unlike single-vendor projects before it, Kubernetes has benefited from not being beholden to any one company’s quarter. As each corporation seeks to advance its own self-interest and, by extension, the interests of their customers, Kubernetes keeps getting better and faster. In 2018, we should expect to see this continue, if not accelerate.