CoreDNS is a Cloud computing-native, authoratitive DNS server, written in Go (Private), designed to accommodate service discovery. It's commonly deployed as part of Kubernetes. It's extensible, with its request pipeline being based on a middleware design.
- 2014: Miek Gieben created SkyDNS2, solving the service discovery problem using etcd as a data source for DNS.
- March 2016: SkyDNS2 replacement with a request pipeline design, forked from Caddy, is initially called Caddy DNS, but quickly becomes CoreDNS. It receives CNCF inception sponsorship.
- 2018: Kubernetes 1.12 replaced
kube-dnswith CoreDNS as the recommended DNS server.
- Extensible via plugins, which can be chained together in the request pipeline:
- Backends provide zone data.
- Manipulators modify properties of the request.
- Capable of serving DNS traffic over multiple transports:
- Integration with policy engines (Themis), enabling multi-tenancy, firewalling and conditional forwarding.
- Facilitates dynamic DNS-based service discovery backed by etcd.
- Observable out of the box with Prometheus (Private).