ExternalDNS
Infrastructure-as-Code
Rekordy DNS sterowane zasobami Kubernetes (DNS-as-code).
ExternalDNS synchronizuje rekordy DNS u zewnętrznych dostawców (Cloudflare, Route 53, Google i dziesiątki innych) na podstawie zasobów Kubernetes — Service i Ingress. Zamiast ręcznie zakładać wpisy DNS, deklarujesz je adnotacjami/hostami w manifestach, a kontroler utrzymuje strefę w zgodzie z klastrem. DNS staje się kodem, wersjonowanym razem z aplikacją.
Kiedy używać
- Chcesz, by wpisy DNS powstawały automatycznie z Ingress/Service.
- Zarządzasz wieloma domenami/strefami i nie chcesz robić tego ręcznie.
- Pracujesz w GitOps i traktujesz DNS jak resztę infrastruktury.
Przykład użycia
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web
annotations:
external-dns.alpha.kubernetes.io/hostname: eiac.dev
spec:
rules: [{ host: eiac.dev, http: { paths: [ ... ] } }]
ExternalDNS utworzy i zaktualizuje rekord eiac.dev u dostawcy DNS.
Warto wiedzieć
- Świetnie współgra z cert-manager (DNS-01) i Kubernetes.
- Wspiera wielu providerów DNS przez jeden kontroler.