Зачем использовать кастомные зоны в NodeLocal DNSCache?
NodeLocal DNSCache ускоряет DNS в Kubernetes за счёт локального CoreDNS на каждом узле. Пользовательские зоны позволяют:
- Быстро резолвить внутренние или статические имена
- Заменить внешние DNS-запросы локальными
- Разделить внутренние и внешние зоны
Пошаговая инструкция
1. Получаем ConfigMap
kubectl -n kube-system get configmap node-local-dns -o yaml > node-local-dns.yaml
2. Добавляем зону в Corefile
В секции Corefile
добавьте зону:
Corefile: |
.:53 {
errors
cache {
success 9984 30
denial 9984 5
}
reload
loop
bind 169.254.20.10
forward . /etc/resolv.conf
prometheus :9253
log
}
internal.zone.local:53 {
hosts {
10.10.10.10 service1.internal.zone.local
10.10.10.11 service2.internal.zone.local
fallthrough
}
}
Замените
internal.zone.local
на нужную вам зону.
3. Применяем изменения
kubectl apply -f node-local-dns.yaml
4. Перезапускаем DaemonSet
kubectl -n kube-system rollout restart daemonset node-local-dns
5. Проверяем
nslookup service1.internal.zone.local
Советы
- Избегайте конфликта зон — NodeLocal не поддерживает все плагины CoreDNS.
- При проблемах проверьте совместимость с DaemonSet’ом.
Заключение
Кастомные зоны в NodeLocal DNSCache дают больше контроля над именами в Kubernetes. Особенно полезно для гибридных и изолированных сред.
→ Узнать больше: