Video: Cloud computing: Is geography the next big challenge?
Earlier this year, Kubernetes knocked off the last of its rivals and became the cloud container orchestration program. And, since Amazon Web Services (AWS) has adopted Kubernetes, the container management program is available on all serious cloud platforms. So, it couldn't be a better time for Kubernetes 1.9 to arrive.
This release boasts a richer feature set and improved stability. One highlight is that Apps Workloads application programming interface (API) is now stable and available for general use. This puts the DaemonSet, Deployment, ReplicaSet, and StatefulSet APIs together to form the foundation for long-running Kubernetes stateless and stateful workloads. The Batch Workloads API (Job and CronJob), however, are still in beta and not part of this effort and will have a separate path to GA stability.
Deployment and ReplicaSet, two of the most commonly used objects in Kubernetes, are also stable now. SIG Apps has applied the lessons learned along the way to all four resource kinds over the last several release cycles, enabling DaemonSet and StatefulSet to join.
The General Availability (GA) version 1 designation means these APIs and components have been hardened for production. It also means they come with the guarantee of long-term backward compatibility.
Kubernetes was originally developed for Linux systems, but there's been a demand for Kubernetes to run Windows workloads as well. This is in addition to making Kubernetes available for Linux containers on Azure. Kubernetes for Linux on Azure has been around since February. Then, in October, Microsoft announced a dedicated Azure Container Service for Kubernetes. Microsoft showed its commitment early on by buying Kubernetes vendor Deis. Running Windows apps on Docker on Windows Server, while managing them with Kubernetes, is now in beta.
From its start, Kubernetes has supported multiple options for persistent data storage, including commonly used NFS or iSCSI, along with native support for storage solutions from the major public and private cloud providers. While more storage options have been added, adding volume plugins for new storage systems, however, has been a challenge.
Kubernetes developers are addressing this by adopting Container Storage Interface (CSI). This is a cross-industry standards initiative. Its aim is to lower the barrier for cloud native storage development while ensure compatibility. SIG-Storage and the CSI Community are collaborating to deliver a single Kubernetes interface for provisioning, attaching, and mounting storage.
In this release, CSI has been adopted in an alpha implementation. It must be explicitly enabled and is not recommended for production usage. The goal is to make installing new volume plugins as easy as deploying a pod. It will enable third-party storage providers to develop their solutions without the building it into the core Kubernetes codebase.
The Kubernetes developers are, as CoreOS engineer Eric Chiang blogged, the "Kubernetes project is committed to enabling feature development outside of core." That's because, as he said, "Certain kinds of new features, particularly those that integrate directly with cloud providers, have started to require an extensibility point, instead of being implemented in core. This lifts the burden off of an already huge codebase, while also offering the benefit of not favoring one distribution or cloud provider over another."