CoreDNS is a fast, flexible and modern DNS server. Its performant and flexible implementation allows CoreDNS to be easily extended to support various data sources and to implement rich DNS service behaviors: for example, response caching, query rewrite, load-balancing, zone transfer and signing.
CoreDNS is the successor of SkyDNS (https://github.com/skynetservices/skydns), a DNS server that uses etcd as its datastore backend. SkyDNS is widely
*Release methodology and mechanics*: The current version is v004; there have been four official releases. Releases are not on a specific schedule
but are coordinated by the community via the issue tracker. Additionally, the rule is that the master branch is production-ready at all times.
A more formal release process is on its way, and may introduce semantic versioning, but a final decision has not yet been made. Precompiled binaries are
distributed via GitHub and Caddy's download website (https://caddyserver.com/download), where "DNS" will be a Server Type option.
CoreDNS is a focused, lightweight DNS server. A microservice philosophy guides the internal design of CoreDNS. Individual DNS functions are provided by discrete, composable plugins that are enabled via runtime configuration.
CoreDNS can be thought of as a DNS protocol head that can be configured to front various backend data sources. A flexible DNS server is a necessary component to provide “Naming and Discovery” services to containers running in the CNCF distributed system services environment.
Running CoreDNS with Kubernetes requires only the coredns component. CoreDNS does not require a separate data cache or health service. CoreDNS includes an optional health-check “middleware” component that can be used for service monitoring.
CoreDNS is currently being extended to operate directly with Kubernetes to access the service data. This “middleware” implementation for CoreDNS provides the same client-facing behavior as KubeDNS. The pipeline-based design of CoreDNS allows easy extension to use any container orchestrator as a DNS data source.
With the Kubernetes middleware, CoreDNS can be considered as an alternative to KubeDNS with lower runtime complexity. Performance testing to compare against KubeDNS is pending.