CoreDNS
App-as-Code
Serwer DNS sterowany konfiguracją i łańcuchem pluginów (DNS-as-code) - domyślny DNS w Kubernetes.
CoreDNS to serwer DNS, którego całe zachowanie opisujesz kodem: plik Corefile deklaruje łańcuch pluginów, przez który przechodzi każde zapytanie. Zamiast konfigurować monolityczny serwer, komponujesz DNS z małych, wymienialnych klocków (cache, forward, kubernetes, hosts, prometheus…). To projekt CNCF (graduated) i domyślny DNS w Kubernetes - a jego siła to właśnie deklaratywna, wersjonowalna konfiguracja zamiast klikania w ustawieniach.
Kiedy używać
- Potrzebujesz DNS w klastrze albo lekkiego, konfigurowalnego serwera DNS na brzegu.
- Chcesz komponować zachowanie DNS z pluginów i trzymać
Corefilew repo (GitOps). - Zależy Ci na wbudowanej obserwowalności (plugin metryk) i self-hostingu.
Przykład użycia
# Corefile - DNS jako łańcuch pluginów, wersjonowany w repo
.:53 {
kubernetes cluster.local
forward . 1.1.1.1 9.9.9.9
cache 30
prometheus :9153
log
}
Warto wiedzieć
- Rekordy z zasobów klastra generuje ExternalDNS; CoreDNS jest tu serwerem, który je serwuje.
- Plugin
prometheuswystawia metryki wprost do Prometheusa - obserwowalność bez dokładania warstw. - Apache-2.0, CNCF graduated, w pełni self-hostowalny.