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 для обеспечения корректной связи.

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