В 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.