Kubernetes 1.13: kubeadm GA, CSI GA & CoreDNS Default

Kubernetes 1.13: kubeadm GA, CSI GA & CoreDNS Default

Introduction

On December 3 2018, Kubernetes version 1.13 was officially released.
This release continues the focus on stability and extensibility of Kubernetes with three major features graduating to general availability in the areas of cluster lifecycle, storage and DNS.


Official Highlights

1. kubeadm Reaches GA

The Kubernetes 1.13 release brings the installation & cluster-lifecycle tool kubeadm to General Availability. This milestone means production-ready cluster bootstrapping, joining, and upgrades via kubeadm are fully supported.

2. Container Storage Interface (CSI) Goes GA

With 1.13, the Container Storage Interface (CSI) becomes generally available, enabling third-party storage drivers to integrate via a standardized interface outside the core Kubernetes code.

3. CoreDNS Becomes Default DNS

The DNS add-on plugin CoreDNS replaces kube-dns as the default DNS server in Kubernetes, delivering a lighter, extensible DNS solution written in Go and aligning with cloud-native expectations.

4. Admission Webhooks & Dry-Run APIs (GA)

  • Mutating and Validating Admission Webhooks graduate to GA, enabling policy engines such as OPA Gatekeeper to run in production with official support.
  • API server dry-run now allows safe change previews without mutating live resources—perfect for CI testing of manifests.

5. kubectl Plugin System & CLI Polish

  • kubectl krew ecosystem benefits from the new plugin mechanism, letting operators extend kubectl with custom commands in their $PATH.
  • kubectl diff graduates from alpha, providing first-class drift detection before apply.

6. Windows & Node Enhancements

  • Windows node support improves with stable CNI integrations, CSI mounting, and Hybrid Overlay fixes.
  • Device Plugin API refinements and TopologyManager alpha prepare clusters for NUMA-aware scheduling with GPUs and FPGAs.

Field Notes & Best Practices

  • kubeadm GA: store ClusterConfiguration manifests in Git and use kubeadm upgrade plan && kubeadm upgrade apply to sequence rolling upgrades.
  • CoreDNS migration: update stubDomains, upstreams, and custom rewrite rules; test with kubectl exec DNS queries before decommissioning kube-dns.
  • CSI GA: verify driver sidecars meet the minimum required versions (e.g., external-provisioner v1.0+) and enable CSIDriver/CSINodeInfo for topology-aware scheduling.

Upgrade Checklist

  1. Take an etcd snapshot (ETCDCTL_API=3 etcdctl snapshot save).
  2. Run kubeadm upgrade plan to confirm target versions and kubelet requirements.
  3. Upgrade control-plane nodes sequentially using kubeadm, then update kubelets and kubectl on workers.
  4. Apply CoreDNS ConfigMap changes and validate service discovery.
  5. Roll out CSI driver upgrades, ensuring PodSecurityPolicies or admission webhooks allow required hostPath mounts.

Milestones Timeline

DateEvent
Dec 3 2018Kubernetes 1.13 released.
Late 2018kubeadm GA, CSI GA and CoreDNS default roll-out begins.
Early 2019Production clusters adopt the new defaults and APIs.

Patch Releases for 1.13

Patch releases in the 1.13 branch (1.13.x) include security fixes, compatibility patches and performance improvements.

Patch VersionRelease DateNotes
1.13.02018-12-03Initial 1.13 release
1.13.1+various datesMaintenance, bug-fix updates

Legacy and Impact

Kubernetes 1.13 represents a key turning point: by graduating kubeadm, CSI and CoreDNS to GA, the project moved further into production-grade maturity.
These advancements improved cluster lifecycle management, storage extensibility and DNS robustness — all crucial for enterprises running large-scale, heterogeneous, multi-cloud Kubernetes deployments. Admission webhooks and dry-run APIs delivered policy and testing assurances that platform teams had been requesting for years.


Summary

AspectDescription
Release DateDecember 3, 2018
Key Innovationskubeadm GA, CSI GA, CoreDNS default, admission webhooks GA, kubectl plugins
SignificanceMarked strengthened stability, policy control and operational automation in Kubernetes

Deprecations & Gotchas

  • kubectl run generators have been deprecated in favor of declarative manifests; migrate scripts to kubectl apply.
  • Remove use of the deprecated --insecure-port and --insecure-bind-address API server flags—kubeadm now enforces secure endpoints.
  • CoreDNS requires slightly different stub domain syntax than kube-dns; ensure custom domains are ported before cutting over.

Next in the Series

Up next: Kubernetes 1.14 (March 2019) — we’ll cover enhanced workload APIs, improved Windows container support and further Kubernetes governance refinements.