CoreDNS #
Deployment #
Quelle #
Das Projekt basiert auf dem CoreDNS GitHub Repository. Das Helm-Chart stammt aus dem CoreDNS Helm Charts Repository.
Dokumentation #
Funktion #
CoreDNS ist ein fundamentaler Bestandteil des Kubernetes-Clusters und verantwortlich für die Namensauflösung (DNS). Es ermöglicht Pods und Services, sich gegenseitig über ihre Namen zu finden (z.B. my-service.my-namespace.svc.cluster.local). Es ist so konfiguriert, dass es Anfragen für interne Cluster-Domains beantwortet und alle anderen Anfragen an Upstream-DNS-Server weiterleitet.
Lokale Anpassungen #
Die Konfiguration erfolgt über die values.yaml-Datei.
Wichtige Einstellungen #
- Replikas: Es werden drei Replikate von CoreDNS betrieben, um Hochverfügbarkeit zu gewährleisten.
- Dual-Stack: Der Service ist für den Dual-Stack-Betrieb (IPv4 und IPv6) konfiguriert.
- Plugins: Eine Reihe von Plugins ist aktiviert, darunter:
kubernetes: Für die Auflösung von Kubernetes-Services und -Pods.forward: Leitet Anfragen, die nicht vomkubernetes-Plugin aufgelöst werden können, an die DNS-Server in/etc/resolv.confweiter.cache: Cacht DNS-Antworten, um die Latenz zu verringern und die Last auf den Upstream-Servern zu reduzieren.prometheus: Stellt Metriken für das Monitoring bereit.
- Scheduling: CoreDNS-Pods werden bevorzugt auf den Control-Plane-Nodes ausgeführt und sind über
topologySpreadConstraintsauf verschiedene Nodes und Zonen verteilt, um die Ausfallsicherheit zu erhöhen.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/coredns-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/coredns | kubectl apply -n kube-system -f -
Abhängigkeiten #
CoreDNS ist eine Kernkomponente von Kubernetes und hat keine externen Anwendungsabhängigkeiten, ist aber für die Funktion fast aller anderen Anwendungen im Cluster kritisch.
Per E-Mail antworten