← Katalog
E I A C

CoreDNS

App-as-Code

Serwer DNS sterowany konfiguracją i łańcuchem pluginów (DNS-as-code) - domyślny DNS w Kubernetes.

★ 14 000 Apache-2.0 #app #dns #kubernetes #plugins #cncf

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ć Corefile w 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 prometheus wystawia metryki wprost do Prometheusa - obserwowalność bez dokładania warstw.
  • Apache-2.0, CNCF graduated, w pełni self-hostowalny.