Kubernetes 1.9 is here! This is the fourth and final release of Kubernetes this year. Without further ado let's look at what the Elves have delivered in 1.9 as an early Christmas present to all of us!
K8s 1.9 marks important additions to what is now a very rich feature set in addition to greater stability and a sharp uptick in community contributions. One of the more notable features of 1.9 is the upgrades to the Apps workloads API to stable. This makes any reservations people have about running mission-critical workloads moot. 1.9 also brings to the table beta Windows support, which will now allow end users to run Windows applications and workloads within Kubernetes making Kubernetes even more enterprise ready.
Workloads API GA
The Apps Workloads API is now promoted to stable and enabled by default. Just to recap, the Apps Workload API groups DaemonSet, Deployment, ReplicaSet, and the StatefulSet APIs together to form the foundation to run stateful and long-running stateless workloads within Kubernetes. One thing to note is the Batch Workloads API, which includes Job and CronJob, is not yet part of this effort and will have a separate path to GA.
After more than a year of real-world use and feedback from users Deployment and ReplicaSet which are the two most commonly used objects within Kubernetes are now stabilized. Transferring the lessons learned from here to the other resource kinds have enabled DeamonSet and StatefulSet to join the graduation to stable. The v1 tag comes with the guarantee of long-term backward compatibility so end users can rest easy and take advantage of the new features released under the Apps Workloads API.
Windows support (beta)
While Kubernetes was first developed for Linux systems and workloads, there is increasing demand for Kubernetes to run Windows Workloads. SIG-Windows which began the effort to run Windows workloads a year ago has now promoted the feature to beta status.
Kubernetes has always had support for multiple options for persistent data storage. This included the widely used NFS and iSCSI, alongside native support for storage solutions from the major public and private cloud providers. Every release for Kubernetes has added to the list of options available. However, adding volume plugins for new storage systems has been a challenge because it involves adding to the core Kubernetes codebase for each plugin.
Kubernetes 1.9 is adopting the Container Storage Interface (CSI) which is a cross-industry standards initiative that aims to lower the barrier for the development of cloud-native storage while ensuring compatibility. The special interest group for Storage SIG-Storage is working closely with the CSI community to deliver a single interface for provisioning, attaching and mounting storage compatible with Kubernetes.
Kubernetes 1.9 has an alpha implementation of the CSI which makes installing new volume plugins as easy as deploying a pod while enabling third-party storage providers to develop the extensions needed to Kubernetes without the need to add to the core Kubernetes codebase.
Additional features worth a quick look
Custom Resource Definition (CRD) authors now have an easy way to get immediate feedback for invalid objects with the promotion of Custom Resource Definition (CRD) Validation to beta.
The SIG Node hardware accelerator is now in alpha enabling GPU and therefore machine learning and other high performance workloads. CoreDNS alpha makes it possible to install CoreDNS with standard tools. IPVS mode for kube-proxy goes beta, providing better scalability and performance for large clusters.
Kubernetes 1.9 is available for download on GitHub.