External-DNS 0.10: DNS Automation for Kubernetes
K8s Guru
2 min read

Table of Contents
Introduction
External-DNS 0.10 — DNS Automation for Kubernetes — was released on July 8, 2021.
Edge and east-west traffic paths tend to be where reliability and security issues show up first — so small gateway and proxy changes can have outsized impact.
In this release: External-DNS 0.10 enhances DNS automation with improved provider support, better Kubernetes integration, and enhanced reliability for managing DNS records automatically.
Provider Support Enhancements
- Cloud provider integrations expand support for AWS Route53, Google Cloud DNS, Azure DNS, and Cloudflare.
- DNS provider improvements enhance compatibility with additional DNS providers and services.
- Multi-provider support enables managing DNS records across multiple providers simultaneously.
- Provider-specific features leverage unique capabilities of each DNS provider.
Kubernetes Integration Improvements
- Service discovery enhancements automatically discover Kubernetes services and ingresses.
- Ingress support improvements provide better integration with Ingress resources.
- Annotation enhancements enable more flexible DNS record configuration.
- RBAC integration provides fine-grained access control for DNS management.
Reliability & Performance
- Reconciliation improvements ensure DNS records stay synchronized with Kubernetes resources.
- Error handling enhancements provide better recovery from transient DNS provider failures.
- Rate limiting support prevents exceeding DNS provider API rate limits.
- Caching optimizations reduce unnecessary DNS API calls.
Advanced Features
- DNS record types support expansion includes A, AAAA, CNAME, TXT, and SRV records.
- Health checks enable automatic DNS record management based on endpoint health.
- Multi-zone support enables managing DNS records across multiple DNS zones.
- Dry-run mode previews DNS changes without actually modifying records.
Getting Started
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/external-dns/v0.10.0/docs/contributing/crd-source/crd-manifest.yaml
Deploy External-DNS:
apiVersion: apps/v1
kind: Deployment
metadata:
name: external-dns
spec:
template:
spec:
containers:
- name: external-dns
image: k8s.gcr.io/external-dns/external-dns:v0.10.0
args:
- --source=service
- --source=ingress
- --domain-filter=example.com
- --provider=aws
- --aws-zone-type=public
Create a service with annotation:
apiVersion: v1
kind: Service
metadata:
name: my-service
annotations:
external-dns.alpha.kubernetes.io/hostname: my-service.example.com
spec:
type: LoadBalancer
ports:
- port: 80
Summary
| Aspect | Details |
|---|---|
| Release Date | July 8, 2021 |
| Headline Features | Enhanced provider support, improved Kubernetes integration, better reliability |
| Why it Matters | Automates DNS record management, reducing operational overhead and ensuring DNS records stay synchronized with Kubernetes resources |
External-DNS 0.10 continues to evolve as the standard solution for DNS automation in Kubernetes, providing teams with reliable, automated DNS record management.