ExternalDNS

ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.

  • Network Services
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

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

Collected 8 days ago - public community threads