External DNS v0.3.0 released! (multiple zones, ownership via TXT records, Route53 ALIAS records, ..)

336 views
Skip to first unread message

Henning Jacobs

unread,
May 8, 2017, 4:26:05 PM5/8/17
to Kubernetes user discussion and Q&A
ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.

What It Does: Inspired by Kubernetes DNS, Kubernetes' cluster-internal DNS server, 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 or Google CloudDNS.

In a broader sense, ExternalDNS allows you to control DNS records dynamically via Kubernetes resources in a DNS provider-agnostic way.

We reached a major milestone today by releasing v0.3.0:
https://github.com/kubernetes-incubator/external-dns/releases/tag/v0.3.0

Features:
  • Support for ALIAS records in AWS Route 53.
  • Support for managing multiple zones for AWS Route 53 and Google CloudDNS.
  • Added the ownership system which protects existing DNS records from modification by ExternalDNS.
  • Ability to create DNS records for services based on a template and service attribute values.
  • Support for altering the DNS record modification behavior via policies.
Docker image is available in Zalando's Open Source Docker registry:


It's running in production at Zalando for some days now (in 18 clusters on AWS), our deployment config FYI: https://github.com/zalando-incubator/kubernetes-on-aws/blob/dev/cluster/manifests/external-dns/deployment.yaml

External DNS is replacing Mate for us (Zalando) and will hopefully replace Kops' DNS Controller and Molecule's route53-kubernetes in future milestones.

Feel free to express any feature wishes and join the discussions on https://github.com/kubernetes-incubator/external-dns/issues

george...@gmail.com

unread,
May 23, 2017, 3:00:09 AM5/23/17
to Kubernetes user discussion and Q&A
Hello Henning,

Can I also expose headless services via External DNS? let's say I'm running kubernetes on AWS and I use Route53. Could you also point me to an example on how to do it? if that is possible?

Thanks!
George

Tim Hockin

unread,
May 23, 2017, 11:10:16 AM5/23/17
to Kubernetes user discussion and Q&A
To expose a headless Service you need to provision N external IPs.
External IPs cost money in most clouds, and they tend to be slower to
allocate. But mostly, the N can change over time, so it's trickier to
sync.

Now, if someone REALLY wanted this, it would not be terribly hard to
write a syncer program - most of the logic exists in CloudProvider and
ServiceController already. You'd just need to adapt it to make N load
balancers. I don't think we want this as a standard feature, but you
know, I have been wrong before. If it turned out to be something a
lot of people want, we would certainly look at it more closely.
> --
> You received this message because you are subscribed to the Google Groups "Kubernetes user discussion and Q&A" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-use...@googlegroups.com.
> To post to this group, send email to kubernet...@googlegroups.com.
> Visit this group at https://groups.google.com/group/kubernetes-users.
> For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages