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