ExternalDNS
ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
Platform availability
Available on 1 of 9 platforms
- Unraid (not listed)
- TrueNAS (not listed)
- Umbrel (not listed)
- ZimaOS (not listed)
- Proxmox (not listed)
- Helm
- Mac (not listed)
- Windows (not listed)
- Linux (not listed)
Health score?A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). When the source code has been checked, a fifth factor, security check (20%: automated scan for committed secrets, unsafe desktop-app settings, known-vulnerable dependencies and project hygiene; any serious finding caps it at 20), is added. Factors without data are left out and the rest are rescaled.
73/100 Good
- Maintained
- 100last commit 7 days ago
- Popular
- 799,104 GitHub stars
- Easy to install
- 101 install platform
- Light to run
- No data
Based on 3 of 4 factors.
Availability: platform listings confirmed today
- GitHub stars
- 9,104
- Open issues
- 182
- Last commit
- 2026-10-05
- Latest release
- v0.23.0
- License
- Apache-2.0
- Activity
- steady
Checked 7 days ago - source: GitHub (kubernetes-sigs/external-dns)
Resources & Compatibility
Requirements not published yet.
First-install notes
- Add your DNS provider token first Put your DNS provider API key in the container environment as API_TOKEN, or use API_TOKEN_FILE if the setup recommends it, before starting. Without a valid key, the app can't update DNS and your records will never appear. source
- Mount the Docker socket read-only Add the volume '/var/run/docker.sock:/var/run/docker.sock:ro' so the app can read labels from your other containers. The Docker socket is Docker's control connection, and without this read-only mount external-dns can't see your DNS instructions. source
- Add DNS records as container labels On each container you want to expose, add a label like docker-compose-external-dns:1 followed by the JSON record details such as type, name, and address or target. These labels tell external-dns what to publish, so missing or malformed labels mean no DNS record is created. source
Fetched today - each note links to its source
Variants
Alternatives
No alternatives collected yet.
Common questions
Does ExternalDNS require Kubernetes to use a particular DNS provider?
No. ExternalDNS controls DNS records dynamically through Kubernetes resources in a DNS provider-agnostic way.
What problem can occur when internal domain names are resolved through external DNS?
Mixing internal and external DNS can cause Active Directory clients to get stuck on external DNS and lead to resolution glitches.
What basic redundancy setup is suggested for self-hosted DNS?
Use at least two DNS VMs on different subnets, not the same IP ranges. Hosting them in separate cloud providers can further reduce risk.
Does the ExternalDNS website point directly to a fixed docs version?
The ExternalDNS website redirects to the latest documentation.
Answers sourced from community.spiceworks.com, github.com, kubernetes-sigs.github.io, www.reddit.com
Community
- External DNS : r/sysadmin - Reddit (reddit)
- Internal/external DNS : r/sysadmin - Reddit (reddit)
- DNS resolving internal domain names with external dns (other)
- Expressway E internal and external dns - Cisco Community (other)
Collected 8 days ago - public community threads