CoreDNS 1.2: Kubernetes’ Default DNS Becomes Production Default

CoreDNS 1.2: Kubernetes’ Default DNS Becomes Production Default

Introduction

With CoreDNS 1.2 released on July 10, 2018, the CNCF project moved from “alternative DNS” to the default DNS server for Kubernetes 1.11+. The release brings plugin refinements, auto-scaling hooks, and Prometheus metrics that ease kube-dns migrations.


Release Highlights

Polished Kubernetes Plugin

  • Smarter endpoint sharding reduces watch pressure on large Services.
  • Supports stubDomains and upstream configuration parity with kube-dns.
  • Adds per-record caching controls so platform teams can tune TTLs.

Autoscaling Friendly

  • Horizontal Pod Autoscaler metrics expose QPS and latency via /metrics.
  • Graceful shutdown ensures zero query loss during rolling upgrades.
  • Integrates with Cluster Proportional Autoscaler out of the box.

Observability & Policy

  • rewrite plugin now supports wildcard rewrites for vanity domains.
  • New transfer plugin allows zone replication for hybrid cluster DNS.
  • Prometheus metrics distinguish between cache hits, misses, and SERVFAILs.

Migration Checklist

  1. Ensure clusters run Kubernetes 1.10+ with the CoreDNS feature gate.
  2. Deploy CoreDNS using the cluster/addons/dns/coredns manifest or Helm chart.
  3. Mirror kube-dns ConfigMap options into CoreDNS via the Corefile.
  4. Monitor coredns_cache_hits_total metrics and adjust cache settings as needed.
  5. Remove kube-dns Deployments after validating service discovery flows.

Sample Corefile

.:53 {
  errors
  health :8080
  prometheus :9153
  kubernetes cluster.local in-addr.arpa ip6.arpa {
    pods insecure
    fallthrough in-addr.arpa ip6.arpa
  }
  rewrite name internal.example.com svc.cluster.local
  cache 30
  loop
  reload
  loadbalance
}

Ecosystem Connections

  • Prometheus 2.3 dashboards can now differentiate DNS cache performance.
  • Works alongside Calico 3.0 network policies—DNS pods expose labels for egress whitelisting.
  • Ready for Knative 0.1 service routing requirements.

Common migration gotchas

  • Stub domains and rewrites: kube-dns and CoreDNS can express similar intent, but the syntax differs; migrate carefully and test from a real workload pod.
  • The loop plugin: keep it enabled — it prevents painful DNS recursion loops that can otherwise melt a cluster.
  • Latency hides in retries: when DNS is flaky, clients often retry quietly; watch SERVFAIL/NXDOMAIN rates alongside p99 latency, not just QPS.

Summary

AspectDetails
Release DateJuly 10, 2018
Key GainsDefault DNS status, plugin polish, autoscaling metrics
Why it MattersSimplifies the kube-dns → CoreDNS migration for production Kubernetes clusters

CoreDNS 1.2 cements the project’s role as the authoritative DNS layer for Kubernetes. With performance, policy, and observability improvements, it is the dependable choice for clusters retiring kube-dns in 2018.