Зачем добавлять кастомную зону?
Это может пригодиться для:
- Внутреннего тестирования (*.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.
→ Узнать больше: