• Русский
  • Настройка NodeLocal DNSCache

    Overview

    NodeLocal DNSCache — это плагин кластера, который улучшает производительность DNS в кластере за счёт запуска прокси-кэша DNS на узлах кластера. Этот плагин снижает задержки при DNS-запросах и повышает стабильность кластера, кэшируя DNS-ответы локально на каждом узле, минимизируя нагрузку на центральный DNS-сервис.

    Key Features

    • Локальное кэширование DNS: Кэширует DNS-ответы локально на каждом узле для снижения задержек запросов
    • Повышенная производительность: Значительно сокращает время разрешения DNS для приложений

    Important Notes

    WARNING

    Особенности развертывания:

    1. Режим Kube-OVN Underlay: Плагин не поддерживает развертывание в режиме Kube-OVN Underlay. При развертывании в этом режиме возможны сбои DNS-запросов.

    2. Перезапуск kubelet: Развертывание этого плагина приведёт к перезапуску kubelet.

    3. Требуется перезапуск Pod: После успешного развертывания плагина он не повлияет на уже запущенные Pod, а вступит в силу только для вновь созданных Pod. При использовании CNI Kube-OVN необходимо вручную добавить параметр "--node-local-dns-ip=(IP-адрес локального DNS-кэша)" в kube-ovn-controller.

    4. Настройка NetworkPolicy: Если в кластере настроена NetworkPolicy, необходимо дополнительно разрешить трафик в обоих направлениях для node CIDR и nodeLocalDNSIP в networkPolicy, чтобы обеспечить корректную связь.

    WARNING

    Примечания к обновлению 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+ ручные действия не требуются.

    Installation

    Install via Marketplace

    1. Перейдите в Administrator > Marketplace > Cluster Plugins.

    2. В списке плагинов найдите "Alauda Build of NodeLocal DNSCache".

    3. Нажмите Install, чтобы открыть страницу настройки установки.

    4. Настройте необходимые параметры:

      ParameterDescriptionExample Value
      IPIP-адрес локального DNS-кэша узла. Для IPv4 рекомендуется использовать адрес из диапазона 169.254.0.0/16, предпочтительно 169.254.20.10. Для IPv6 рекомендуется использовать адрес из диапазона fd00::/8, предпочтительно fd00::10.169.254.20.10
    5. Ознакомьтесь с примечаниями по развертыванию и убедитесь, что ваша среда соответствует требованиям.

    6. Нажмите Install для завершения установки.

    7. Дождитесь, пока статус плагина не изменится на "Ready".

    How It Works

    Architecture

    Pod → NodeLocal DNSCache → [Cache Hit] → Pod
    
        [Cache Miss] → CoreDNS → Response → Cache & Pod

    Configuration

    Network Policy Configuration

    Важно: Если в вашем кластере включена NetworkPolicy, необходимо настроить соответствующие правила, разрешающие DNS-трафик к NodeLocal DNSCache. Без этих правил Pod могут не иметь возможности разрешать DNS-запросы.

    При использовании NetworkPolicy убедитесь, что разрешён следующий DNS-трафик:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: allow-dns-cache
    spec:
      podSelector: {}
      policyTypes:
        - Ingress
        - Egress
      ingress:
        - from:
            - ipBlock:
                cidr: 169.254.20.10/32 # NodeLocal DNS IP address
          ports:
            - protocol: UDP
              port: 53
            - protocol: TCP
              port: 53
      egress:
        - to:
            - ipBlock:
                cidr: 169.254.20.10/32 # NodeLocal DNS IP address
          ports:
            - protocol: UDP
              port: 53
            - protocol: TCP
              port: 53