Настройка NodeLocal DNSCache
Содержание
ОбзорКлючевые возможностиВажные примечанияУстановкаУстановка через MarketplaceПринцип работыАрхитектураКонфигурацияНастройка NetworkPolicyОбзор
NodeLocal DNSCache — это кластерный плагин, который повышает производительность DNS в кластере за счёт запуска DNS caching proxy на узлах кластера. Этот плагин снижает задержку DNS-запросов и повышает стабильность кластера, кэшируя DNS-ответы локально на каждом узле и уменьшая нагрузку на центральную DNS-службу.
Ключевые возможности
- Локальное кэширование DNS: кэширует DNS-ответы локально на каждом узле, чтобы снизить задержку запросов
- Повышенная производительность: значительно сокращает время DNS lookup для приложений
Важные примечания
Особенности развертывания:
-
Режим Kube-OVN Underlay: плагин не поддерживает развертывание в режиме Kube-OVN Underlay. Если его развернуть, это может привести к сбоям DNS-запросов.
-
Перезапуск Kubelet: развертывание этого плагина приведёт к перезапуску kubelet.
-
Требуется перезапуск Pod: после успешного развертывания плагина он не повлияет на уже запущенные Pod, а начнёт действовать только для вновь созданных Pod. Когда CNI — Kube-OVN, необходимо вручную добавить параметр
--node-local-dns-ip=(IP address of the local DNS cache server)в kube-ovn-controller. -
Конфигурация NetworkPolicy: если в кластере настроен NetworkPolicy, необходимо дополнительно разрешить входящее и исходящее направления для node CIDR и nodeLocalDNSIP в networkPolicy, чтобы обеспечить корректное взаимодействие.
-
Обновление кластера через пересоздание: если кластер обновляется путём пересоздания узлов (re-provisioning), изменения конфигурации kubelet будут потеряны. Чтобы сохранить конфигурацию NodeLocal DNS между обновлениями, необходимо добавить параметр
--cluster-dnsвkubeletExtraArgsв следующих трёх местах шаблона кластера:KubeadmControlPlane→initConfiguration→nodeRegistration→kubeletExtraArgsKubeadmControlPlane→joinConfiguration→nodeRegistration→kubeletExtraArgsKubeadmConfigTemplate→template→spec→joinConfiguration→nodeRegistration→kubeletExtraArgs
Добавьте следующий параметр в каждый из указанных разделов
kubeletExtraArgs:
Примечания к обновлению до версии 4.2.x
При обновлении этого плагина с версий ниже 4.2.0 (не включая 4.2.0) до 4.2.x из-за проблем совместимости ResourcePatch необходимо выполнить следующие шаги:
Перед обновлением:
- Запишите значение параметра
--node-local-dns-ipиз конфигурации ResourcePatch для kube-ovn-controller - Удалите ResourcePatch для ресурса
deploy/kube-ovn-controller
После обновления:
- Вручную добавьте записанное значение параметра
--node-local-dns-ipобратно в конфигурацию kube-ovn-controller
Примечание: эта проблема совместимости устранена в версии 4.3 и выше, поэтому при обновлении до 4.3+ ручное вмешательство не требуется.
Установка
Установка через Marketplace
-
Перейдите в Administrator > Marketplace > Cluster Plugins.
-
Найдите "Alauda Build of NodeLocal DNSCache" в списке плагинов.
-
Нажмите Install, чтобы открыть страницу конфигурации установки.
-
Настройте необходимые параметры:
-
Проверьте примечания к развертыванию и убедитесь, что ваша среда соответствует требованиям.
-
Нажмите Install, чтобы завершить установку.
-
Дождитесь, пока статус плагина изменится на "Ready".
Принцип работы
Архитектура
Конфигурация
Настройка NetworkPolicy
Важно: если в вашем кластере включён NetworkPolicy, необходимо настроить корректные правила, чтобы разрешить DNS-трафик к NodeLocal DNSCache. Без этих правил Pod могут не иметь возможности разрешать DNS-запросы.
При использовании NetworkPolicy убедитесь, что разрешён следующий DNS-трафик: