External DNS¶
ExternalDNS makes Kubernetes resources discoverable via public DNS servers. Like KubeDNS, it retrieves a list of resources (Services, Ingresses, etc.) from the Kubernetes API to determine a desired list of DNS records. Unlike KubeDNS, however, it's not a DNS server itself, but merely configures other DNS providers accordingly—e.g. AWS Route 53.
Usage¶
External DNS can be deployed by enabling the add-on via the following.
You can optionally customize the Helm chart that deploys External DNS via the following configuration.
enable_external_dns = true
external_dns = {
name = "external-dns"
chart_version = "1.12.2"
repository = "https://kubernetes-sigs.github.io/external-dns/"
namespace = "external-dns"
values = [templatefile("${path.module}/values.yaml", {})]
}
external_dns_route53_zone_arns = ["XXXXXXXXXXXXXXXXXXXXXXX"]
Verify external-dns pods are running.
$ kubectl get pods -n external-dns
NAME READY STATUS RESTARTS AGE
external-dns-849b89c675-ffnf6 1/1 Running 1 (2d ago) 2d5h
To further configure external-dns, refer to the examples: