Today marks the release of Kubernetes 1.9, which continues the evolution of an increasingly-rich feature set, more robust stability, and even greater community contributions. Being the fourth release of the year, it gives us an opportunity to look back at just how much progress has been made in key areas. Particularly notable is the advancement of the Apps Workloads API to stable, or GA status. This removes any reservation potential adopters might have had in terms of functional stability required to run mission-critical workloads. Another big milestone is the advancement of Windows support to beta. This will open the door for many Windows-specific applications and workloads to run in Kubernetes, significantly expanding the implementation scenarios and enterprise readiness of Kubernetes.
Workloads API GA
With Kubernetes 1.9, we are excited to announce General Availability (GA) of the Apps/V1 Workloads API which is now enabled by default. The Apps Workloads API groups together DaemonSet, Deployment, ReplicaSet, and StatefulSet, which form the foundation for long-running stateless and stateful workloads in Kubernetes. Note that the Batch Workloads API (Job and CronJob), while also important, is not part of this effort, and will have a separate path to GA stability.
Deployment and ReplicaSet are two of the most commonly used objects in Kubernetes and have now stabilized after over a year of real-world use and feedback. SIG Apps has applied the lessons from this process to all four resource kinds over the last several release cycles, so that DaemonSet and StatefulSet are also part of this graduation. The V1 (GA) designation indicates production hardening and readiness and comes with the guarantee of long-term backwards compatibility.
Windows Support (beta)
Kubernetes was originally developed for Linux systems, but as our users are realizing the benefits of container orchestration at scale, we are seeing demand for Kubernetes to run Windows workloads. Work to support Windows Server in Kubernetes began in earnest about 12 months ago. SIG-Windows has now promoted this feature to beta status, which means that it can start to be evaluated for usage.
Storage Enhancements
From the first release, 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). As the project and ecosystem grows, more and more storage options are becoming available for Kubernetes. Adding volume plugins for new storage systems, however, has been a challenge.
Container Storage Interface (CSI) is a cross industry standards initiative that aims to lower the barrier for cloud native storage development, and ensure compatibility. SIG-Storage and the CSI Community are collaborating to deliver a single interface for provisioning, attaching, and mounting storage, compatible with Kubernetes.
Kubernetes 1.9 introduces an alpha implementation of the Container Storage Interface (CSI) which will make installing new volume plugins as easy as deploying a pod, and enable third-party storage providers to develop their solutions without the need to add to the core Kubernetes codebase.
Because the feature is alpha in 1.9, it must be explicitly enabled. Alpha features are not recommended for production usage, but are a good indication of the roadmap direction (in this case, towards a more extensible and standards based Kubernetes storage ecosystem).
Additional Features
- CRD Validation (now graduating to Beta and enabled by default) helps CRD authors give clear and immediate feedback for invalid objects
- Networking IPVS kube-proxy goes beta
- SIG Node hardware accelerator move to alpha, enabling GPUs and consequently machine learning and other high performance workloads
- CoreDNS alpha makes it possible to install CoreDNS with standard tools
- IPv6 support(alpha)
Each Special Interest Group (SIG) in the community continues to deliver the most requested user features for their area.
Availability
Kubernetes 1.9 is available for download on GitHub. To get started with Kubernetes, check out these interactive tutorials.