Generated by GPT-5-mini| CoreDNS | |
|---|---|
| Name | CoreDNS |
| Programming language | Go |
| Operating system | Linux, macOS, Windows |
| Genre | DNS server, service discovery |
| License | BSD-3-Clause |
CoreDNS is a DNS server and service discovery tool implemented in Go (programming language), designed for cloud-native environments such as Kubernetes and distributed systems like Docker Swarm and Apache Mesos. It serves as an authoritative and recursive DNS resolver with a modular plugin architecture influenced by projects including BIND, dnsmasq, and Unbound. CoreDNS is adopted across projects and organizations including Cloud Native Computing Foundation, Google, Amazon Web Services, Microsoft Azure, and research initiatives at institutions like MIT and Stanford University.
CoreDNS originated as a successor to earlier DNS implementations from the IETF and utilities used in Linux distributions such as Ubuntu and Debian. Its design emphasizes extensibility similar to nginx for HTTP and Envoy (software) for service mesh proxying. CoreDNS integrates with orchestration platforms including Kubernetes, Nomad (software), and OpenShift and is employed by cloud providers including Google Cloud Platform, Amazon Elastic Kubernetes Service, and Microsoft Azure Kubernetes Service. Influences and interoperability extend to Consul, etcd, ZooKeeper, and Prometheus monitoring.
CoreDNS uses a modular, middleware-style architecture akin to Apache HTTP Server modules and HAProxy filters, implemented in Go (programming language) for concurrency and performance characteristics similar to gRPC servers. Its design separates core DNS packet handling from plugin chains, echoing patterns from NGINX and Envoy (software). CoreDNS stores dynamic state via backends like etcd, Consul, Kubernetes API, and traditional zone files compatible with BIND. Integration points exist for observability with Prometheus, tracing with OpenTracing, and logging compatible with Fluentd and ELK Stack components such as Elasticsearch, Logstash, and Kibana.
CoreDNS exposes functionality through plugins comparable to Apache Cassandra extension models and includes plugins for DNSSEC signing akin to OpenSSL cryptography libraries and features inspired by RFC 1035. Notable plugins provide service discovery for Kubernetes, stub resolvers for systemd-resolved, caching similar to Varnish patterns, health checks inspired by Consul services, and metrics for Prometheus scraping. Additional plugins enable forwarding like Unbound and Forwarder patterns, rewriting records similar to HAProxy routing rules, and experimental integrations with Istio and Linkerd. Third-party plugins and community contributions mirror ecosystems like Terraform providers and Helm charts.
CoreDNS configuration is handled through a concise, declarative file similar in role to nginx.conf and haproxy.cfg, enabling configuration-as-code workflows paralleling Ansible playbooks, Chef recipes, and Puppet manifests. In Kubernetes clusters CoreDNS typically replaces kube-dns via DaemonSet or Deployment resources and is configured through ConfigMap objects and Service manifests. Operators deploy CoreDNS with orchestration tools such as Helm, Kustomize, Flux (software), and Argo CD, and integrate with CI/CD pipelines implemented with Jenkins, GitLab CI, and GitHub Actions. Rolling updates align with strategies used by Istio and Linkerd for zero-downtime upgrades.
Built in Go (programming language), CoreDNS leverages goroutine concurrency models similar to gRPC servers and benefits from runtime characteristics documented by Google and Rob Pike. Benchmarks compare CoreDNS against BIND, dnsmasq, and Unbound with metrics gathered by tools such as dnsperf and monitored via Prometheus and Grafana. Scalability patterns follow distributed systems practices from CAP theorem discussions and techniques employed by Consul and etcd clusters, including sharding, caching, and hierarchical delegation used in large deployments by Spotify and Netflix. High-availability topologies mirror those of HAProxy and keepalived setups.
CoreDNS supports DNSSEC features aligned with standards from the IETF and key management strategies used by OpenSSL and Let's Encrypt, as well as RBAC and policy integration with Kubernetes RBAC and service meshes like Istio. Access controls can be enforced via IP-based ACLs similar to iptables rules, TLS mutual authentication comparable to mTLS in Envoy (software), and integration with identity systems like LDAP, OAuth 2.0, and OpenID Connect providers used by Okta and Keycloak. Logging and auditing integrate with SIEM systems such as Splunk and ELK Stack for compliance regimes influenced by PCI DSS and SOC 2.
CoreDNS development is coordinated within ecosystems such as the Cloud Native Computing Foundation and open-source platforms like GitHub and GitLab. The project attracts contributors from companies including Google, Red Hat, IBM, CNCF, and Huawei and follows practices established by Linux Foundation projects and governance models similar to Kubernetes SIGs. Community communication occurs on channels used by projects like Envoy (software) and Prometheus including mailing lists, Slack (software) workspaces, and annual events such as KubeCon and CloudNativeCon. Commercial support and ecosystem tooling are offered by vendors that also support Kubernetes distributions such as Red Hat OpenShift, Rancher, and Canonical.
Category:DNS software