Зачем использовать кастомные зоны в 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. Особенно полезно для гибридных и изолированных сред.
→ Узнать больше: