CoreDNS
CoreDNS is a flexible DNS server written in Go, commonly used as the cluster DNS for Kubernetes. It resolves service names to pod IPs through a plugin-based architecture that can also handle forwarding, caching, and custom record sources.
itCloud native tools and technologies | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic - CoreDNS
CoreDNS centers on CoreDNS. CoreDNS is a DNS server built around plugins. DNS turns names into records that software can use.
Operate from the project's own resources and APIs. Learn how desired state becomes running state, which status conditions matter, and which dependencies (network, storage, identity, certificates) the control plane assumes.
Upgrades, backups, and credential rotation are part of the product, not optional aftercare. Version skew between clients and servers creates failures that look like application bugs. Pin versions and rehearse rollback.
Convenience features reduce boilerplate and widen blast radius. Enable them when you can observe and reverse the expanded surface. Defaults from quickstarts are starting points, not production policy.
Name owners for upgrades, credentials, and disaster recovery before traffic arrives. Unowned control-plane state becomes an outage with no clear pager. Prefer explicit version pins and tested rollback over floating tags that quietly change behavior between deploys.
Name owners for upgrades, credentials, and disaster recovery before traffic arrives. Unowned control-plane state becomes an outage with no clear pager. Prefer explicit version pins and tested rollback over floating tags that quietly change behavior between deploys.
Name owners for upgrades, credentials, and disaster recovery before traffic arrives. Unowned control-plane state becomes an outage with no clear pager. Prefer explicit version pins and tested rollback over floating tags that quietly change behavior between deploys.
Read the Intro for the mental model. Use the Cheatsheet when you need the resource map. Updates and Upstream track the CoreDNS release line that changes these APIs.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://coredns.io/
Supports
- CoreDNS as a plugin-based DNS server
- Representative plugin functions including Kubernetes service discovery, metrics, rewriting, and zone-file serving
- https://coredns.io/manual/toc/
Supports
- CoreDNS architecture, installation, server selection, server blocks, Corefiles, and plugin chains
- Most functionality supplied by plugins and plugins compiled into the binary
- Most-specific zone matching and plugin processing outcomes
- Plugin execution order defined by plugin.cfg rather than Corefile directive order
- Root-zone and port syntax, environment substitution, imports, and snippets
- Authoritative zone-file and forwarding setups
- Default distribution without a native recursive resolver plugin
- https://coredns.io/plugins/
Supports
- Canonical catalog of CoreDNS plugin documentation
- https://coredns.io/plugins/kubernetes/
Supports
- Kubernetes plugin reads zone data and implements Kubernetes DNS-based service discovery
- Service and endpoint behavior, namespace selection, fallthrough, time to live, and multicluster options
- Startup synchronization, SERVFAIL before synchronization, and readiness reporting
- Forward plugin use for stub domains and upstream nameservers
- https://coredns.io/plugins/forward/
Supports
- Forwarding syntax, upstream selection, connection reuse, transports, in-band health checks, and metrics
- Forwarding all names through resolvers listed in /etc/resolv.conf
- https://coredns.io/plugins/cache/
Supports
- Response caching, positive and denial caches, capacity, time-to-live behavior, prefetch, serve-stale behavior, and metrics
- https://coredns.io/plugins/errors/
Supports
- Processing-error logging and error consolidation
- https://coredns.io/plugins/log/
Supports
- Query logging to standard output, response classes, customizable formats, and performance cost on busy servers
- https://coredns.io/plugins/health/
Supports
- Process health endpoint and liveness meaning
- https://coredns.io/plugins/ready/
Supports
- Readiness aggregation, default endpoint, response codes, and monitoring modes
- https://coredns.io/plugins/metrics/
Supports
- Prometheus endpoint and CoreDNS request, duration, size, response, build, and panic metrics
- https://coredns.io/plugins/reload/
Supports
- Automatic Corefile reload, jitter, reload metrics, and retention of the old configuration after parse failure
- https://coredns.io/plugins/loop/
Supports
- Startup detection of simple static forwarding loops
- Kubernetes forwarding loops involving host resolver configuration
- Detection limits after the startup probe succeeds
- https://coredns.io/2017/07/25/compile-time-enabling-or-disabling-plugins/
Supports
- Plugins enabled or disabled at compile time through plugin.cfg
- Listing compiled plugins with the plugins command-line flag
- https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
Supports
- Normal and headless Service records
- Service name structure, namespaces, search domains, Pod DNS policies, and external forwarding under ClusterFirst
- https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/
Supports
- Kubernetes DNS add-on behavior
- Default CoreDNS Corefile and supported cluster DNS customization
