Настройка NodeLocal DNSCache
Содержание
ОбзорОсновные возможностиВажные примечанияУстановкаУстановка через MarketplaceПринцип работыАрхитектураКонфигурацияНастройка Network PolicyОбзор
NodeLocal DNSCache — это кластерный плагин, который повышает производительность DNS в кластере за счет запуска кэширующего DNS-прокси на узлах кластера. Этот плагин снижает задержку DNS-запросов и повышает стабильность кластера, локально кешируя ответы DNS на каждом узле, что уменьшает нагрузку на центральный DNS-сервис.
Основные возможности
- Локальное кеширование DNS: локально кеширует ответы DNS на каждом узле, чтобы снизить задержку запросов
- Повышенная производительность: значительно сокращает время DNS-поиска для приложений
Важные примечания
Особенности развертывания:
-
Режим 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".
Принцип работы
Архитектура
Конфигурация
Настройка Network Policy
Важно: если в вашем кластере включен NetworkPolicy, необходимо настроить корректные правила, чтобы разрешить DNS-трафик к NodeLocal DNSCache. Без этих правил Pod могут не иметь возможности разрешать DNS-запросы.
При использовании NetworkPolicy убедитесь, что разрешен следующий DNS-трафик: