Зачем добавлять кастомную зону?

Это может пригодиться для:

  • Внутреннего тестирования (*.local, *.internal)
  • Разрешения внешних сервисов внутри кластера
  • Переопределения DNS

Пошаговая инструкция

1. Редактируем ConfigMap CoreDNS

kubectl -n kube-system edit configmap coredns

Добавляем зону:

apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          fallthrough in-addr.arpa ip6.arpa
        }
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }

    internal.test:53 {
        hosts {
            10.10.10.10 service1.internal.test
            10.10.10.11 service2.internal.test
            fallthrough
        }
    }

2. Перезапускаем CoreDNS

kubectl -n kube-system rollout restart deployment coredns

3. Проверка

Внутри любого пода:

nslookup service1.internal.test

Ожидаем IP-адрес 10.10.10.10.

Советы

  • Используйте hosts или file плагины — в зависимости от задачи.
  • fallthrough — позволит продолжать запрос, если не найдено.
  • Убедитесь, что зоны не пересекаются по имени.

Заключение

Пользовательские DNS-зоны в CoreDNS — мощный инструмент для настройки и интеграции внутренней DNS-архитектуры в Kubernetes.

→ Узнать больше: