Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Разрешение системы доменных имен (DNS) является критически важным компонентом в службе Azure Kubernetes (AKS), что позволяет модулям pod и службам обмениваться данными с помощью пользовательских имен вместо IP-адресов. AKS предоставляет встроенные службы DNS, чтобы обеспечить простое разрешение имен как для внутренних ресурсов кластера, так и для внешних конечных точек. Понимание работы DNS в AKS помогает операторам кластера и разработчикам обеспечить надежное подключение, оптимизировать производительность и эффективно устранять проблемы с сетью.
CoreDNS в службе Azure Kubernetes
CoreDNS — это служба DNS по умолчанию в службе Azure Kubernetes (AKS), обеспечивающая внутреннее разрешение имен и обнаружение служб для рабочих нагрузок, работающих в кластере. Он работает как набор модулей pod в пространстве имен kube-system и тесно интегрирован с сетью Kubernetes.
Когда pod в AKS делает DNS-запрос, например определение имени другой службы, запрос направляется к pod CoreDNS. Эти модули pod обрабатывают запрос и возвращают соответствующий IP-адрес или пересылают запрос на вышестоящий DNS-сервер для внешних доменов.
Эта архитектура обеспечивает баланс между гибкостью и операционной безопасностью в управляемой среде. Дополнительные сведения о настройке CoreDNS в AKS см. в руководстве по настройке CoreDNS.
Сведения о проекте CoreDNS см. на странице вышестоящего проекта CoreDNS.
LocalDNS в службе Azure Kubernetes
Замечание
В этом документе представлен обзор того, что такое LocalDNS, и его преимущества в AKS. Он не содержит инструкции по настройке. Инструкции по включению и настройке LocalDNS см. в руководстве по localDNS.
Обзор
LocalDNS — это расширенная функция в службе Azure Kubernetes (AKS), которая развертывает прокси-сервер системы доменных имен (DNS) на каждом узле для обеспечения высокой устойчивости, низкой задержки разрешения DNS. Обрабатывая DNS-запросы локально, этот прокси-сервер уменьшает трафик к модулям надстроек CoreDNS, повышая общую надежность и производительность DNS в кластере. LocalDNS особенно полезен в больших кластерах или средах с высоким объемом запросов DNS, где централизованное разрешение DNS может стать узким местом.
При включении LocalDNS AKS развертывает локальный systemd кэш DNS в качестве службы на каждом узле. Pod на узле отправляют DNS-запросы в этот локальный кэш, что позволяет ускорить разрешение, снижая количество сетевых прыжков. Этот подход также сводит к минимуму conntrack использование таблиц, что снижает риск исчерпания таблицы. Кроме того, если вышестоящий DNS становится недоступным, LocalDNS может продолжать обслуживать кэшированные ответы в течение настраиваемой длительности, помогая поддерживать подключение pod и надежность службы.
Ключевые возможности
Сокращение задержки разрешения DNS: Каждый узел AKS запускает службу LocalDNS
systemd. Рабочие нагрузки, исполняемые на узле, отправляют DNS-запросы в эту службу, которая разрешает их локально, уменьшая сетевые переходы и ускоряя выполнение DNS-запросов.Настраиваемое поведение DNS: Вы можете использовать
kubeDNSOverridesиvnetDNSOverridesуправлять поведением DNS в кластере.Избегайте гонок conntrack и исчерпания таблицы conntrack: Pods отправляют DNS-запросы в службу LocalDNS на том же узле без создания записей таблицы. Пропуск отслеживания подключения помогает сократить состояние гонки conntrack и избежать переполнения таблиц DNS-записями UDP. Эта оптимизация предотвращает отклонение и прерывание подключений, вызванных условиями гонки и исчерпанием таблицы
conntrack.Подключение обновлено для TCP: Подключение от
localdnsкэша к службе CoreDNS кластера осуществляется с помощью Протокола управления передачей данных (TCP). TCP позволяет перебалансировать подключение и удаляетconntrackзаписи таблицы, когда сервер закрывает подключение (в отличие от подключений UDP, которые по умолчанию имеют 30-секундное время ожидания). Приложения не нуждаются в изменениях, так какlocaldnsслужба по-прежнему прослушивает трафик UDP.Кэширование: Подключаемый модуль кэша LocalDNS можно настроить с параметрами serviceStale и Time to Live (TTL).
serveStale,serveStaleDurationInSecondsиcacheDurationInSecondsпараметры могут быть настроены для обеспечения устойчивости DNS, даже во время сбоя вышестоящего DNS.Элемент управления протоколом: Для каждого домена можно задать протокол запросов DNS (например, PreferUDP или ForceTCP). Эта гибкость позволяет оптимизировать DNS-трафик для определенных доменов или соответствовать требованиям к сети.
Другие преимущества и соображения
| Преимущества | Соображения |
|---|---|
| Улучшена масштабируемость. Снижает нагрузку на централизованные модули pod CoreDNS | Минимальные затраты на ресурсы: использует небольшой объем ЦП и памяти на каждом узле |
| Простая интеграция: не требует изменений в существующих подключениях к приложению | Изменения конфигурации. Обновления требуют обновления образа узла, что может привести к временным сбоям |
| Блокировать недопустимые домены поиска: запрещает недопустимые запросы DNS на уровне узла |
Используя LocalDNS, вы получаете более быстрое и более надежное разрешение DNS для рабочих нагрузок, снижает риск сбоев, связанных с DNS, и получаете больше контроля над трафиком DNS в среде AKS.
Дальнейшие шаги
Сведения о включении LocalDNS и настройке параметров в кластере AKS см. в руководстве по использованию LocalDNS.
Дополнительные сведения см. в статье Основные понятия сети для приложений в AKS.