CoreDNS 1.2: Kubernetes’ Default DNS Becomes Production Default
K8s Guru
2 min read

Table of Contents
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
rewriteplugin now supports wildcard rewrites for vanity domains.- New
transferplugin allows zone replication for hybrid cluster DNS. - Prometheus metrics distinguish between cache hits, misses, and SERVFAILs.
Migration Checklist
- Ensure clusters run Kubernetes 1.10+ with the
CoreDNSfeature gate. - Deploy CoreDNS using the
cluster/addons/dns/corednsmanifest or Helm chart. - Mirror kube-dns ConfigMap options into CoreDNS via the
Corefile. - Monitor
coredns_cache_hits_totalmetrics and adjust cache settings as needed. - 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
loopplugin: 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
| Aspect | Details |
|---|---|
| Release Date | July 10, 2018 |
| Key Gains | Default DNS status, plugin polish, autoscaling metrics |
| Why it Matters | Simplifies 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.