Kubernetes 1.9: Apps Workloads GA and Expanded Ecosystem

Table of Contents
Introduction
On December 15, 2017, Kubernetes version 1.9 was officially released.
This release marked a key milestone as the “Apps Workloads” API reached General Availability and the ecosystem matured with expanded support for Windows containers, Docker runtime improvements, and storage interface work.
Official Highlights
1. Apps/v1 GA for Workloads
Kubernetes 1.9 moved the core workloads API (apps/v1) into General Availability, meaning Deployments, ReplicaSets, DaemonSets and StatefulSets now operated under the stable API version.
2. Expanded Windows & Docker Support
This release included broader support for Windows container workloads and deeper Docker runtime integration, reflecting the growth of hybrid and heterogeneous environments.
3. Storage and Ecosystem Maturation
Kubernetes 1.9 saw enhanced storage interface efforts (including early stages of Container Storage Interface (CSI)), improved admission-control features, and further ecosystem toolchain developments.
- CoreDNS moved closer to becoming the default cluster DNS (beta), and Custom Metrics API advanced to beta to power autoscaling.
- Dynamic admission webhooks and the MutatingAdmissionWebhook API reached beta, enabling richer policy enforcement.
Upgrade Checklist
- Update manifests to apps/v1: Deployment/StatefulSet/DaemonSet specs now require explicit
.spec.selectormatching.spec.template.metadata.labels. Immutable selectors mean you must recreate resources if labels drift. - Cordoned, phased upgrades: Use
kubeadm upgrade plan(or manual steps) to upgrade control-plane components in order, then drain nodes to roll kubelet+kubectl. - Enable feature gates where needed: CSI requires
--feature-gates=CSINodeInfo=true,CSIDriverRegistry=trueon API server, controller-manager, and kubelet (alpha status). - Validate Windows nodes: Install the Windows kubelet/KubeProxy binaries aligned with v1.9; ensure hybrid networking (OVS/Flannel) is configured before joining.
- Adopt CoreDNS beta: test migrating from kube-dns by deploying CoreDNS 1.0 and updating the
cluster-dnskubelet flag in staging clusters.
Additional Highlights
- CoreDNS Beta: Bundled as a beta DNS option, paving the way for its 1.13 default switch.
- Custom Metrics API Beta: Enables
HorizontalPodAutoscalerto scale from non-resource metrics via adapter APIs. - Dynamic Admission Webhooks: Mutating & validating admission webhooks graduated to beta, unlocking policy engines like OPA.
- Kubectl plugins: Official
kubectl pluginmechanism introduced, encouraging ecosystem tooling without alias hacks.
Milestones Timeline
| Date | Event |
|---|---|
| Dec 15 2017 | Kubernetes 1.9 release announced. |
| Late 2017 | Apps/v1 GA becomes default in new clusters; Windows + Docker support grows. |
| Early 2018 | CSI interface builds gain traction; ecosystem contributions continue rising. |
Patch Releases for 1.9
Patch releases in the 1.9 branch (1.9.x) delivered bug-fixes, stability and compatibility improvements.
| Patch Version | Release Date | Notes |
|---|---|---|
| 1.9.0 | 2017-12-15 | Initial 1.9 release |
| 1.9.1+ | various dates | Subsequent maintenance patches |
Deprecations & Gotchas
extensions/v1beta1Deployment/DaemonSet APIs are on the deprecation path—migrate toapps/v1orapps/v1beta2.- Default StorageClass admission switched to beta; review dynamic provisioning policies to avoid unintended PVC bindings.
- Alpha features like dynamic kubelet config remain off by default—only enable with clear rollback plans.
- PodSecurityPolicy is still beta but required for hardened clusters; verify policies before enabling admission controllers globally.
Legacy and Impact
Kubernetes 1.9 cemented its role not just as a container orchestrator but as a stable, enterprise-grade cloud-native platform.
With workloads API stabilized, growing Windows/Docker support, and a richer ecosystem, this release helped define the base for multi-runtime, multi-platform Kubernetes clusters.
Summary
| Aspect | Description |
|---|---|
| Release Date | December 15, 2017 |
| Key Innovations | Apps/v1 GA, Windows + Docker runtime support, ecosystem & storage advances |
| Significance | Major step in Kubernetes stabilisation and ecosystem growth |
Next in the Series
Next up: Kubernetes 1.10 (March 2018) — where we’ll dive into storage and networking stability enhancements, broader cloud-provider integration, and the next wave of container runtime flexibility.