В Deckhouse Kubernetes Platform можно развернуть локальный кэширующий DNS-сервер на каждом узле кластера. Он экспортирует метрики в Prometheus для визуализации в дашборде Grafana.
Функциональность реализуется модулем node-local-dns. Модуль состоит из оригинального CoreDNS, разворачиваемого в DaemonSet на всех узлах кластера, с добавлением алгоритма настройки сети и правил iptables.
Подробная информация о проблемах, которые позволяет решить кэширующий DNS-сервер и о принципе его работы — в разделе Кэширующий DNS-сервер в кластере.
Пример настройки кастомного DNS в поде
apiVersion: v1
kind: Pod
metadata:
name: dns-example
spec:
dnsPolicy: "None"
dnsConfig:
nameservers:
- 169.254.20.10
containers:
- name: test
image: nginx
Подробную информацию о настройке DNS можно найти в документации Kubernetes.