Доступно в редакциях:  CE, BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)

Стадия жизненного цикла модуля: General Availability

В модуле реализован 1 алерт.

Модуль включен по умолчанию в наборе модулей Default. Модуль выключен по умолчанию в наборах модулей: Managed, Minimal.

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль kube-dns, включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля

  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля, или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля kube-dns:

    d8 system module enable kube-dns
    
  • С помощью ModuleConfig kube-dns.

    Установите spec.enabled в true или false в ModuleConfig kube-dns (создайте его, при необходимости).

    Пример манифеста для включения модуля kube-dns:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: kube-dns
    spec:
      enabled: true
    

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль kube-dns, включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация», или укажите настройки модуля в формате YAML на вкладке «YAML», не включая секцию settings. Сохраните изменения.

    Пример:

    Интерфейс настройки модуля

    Вы также можете отредактировать объект ModuleConfig kube-dns на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль kube-dns), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig kube-dns (подробнее о настройке Deckhouse читайте в документации), выполнив следующую команду:

    d8 k edit mc kube-dns
    

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig kube-dns, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста ModuleConfig kube-dns:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: kube-dns
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.
    

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.clusterDomainAliases
      массив строк

      Список альтернативных доменов кластера, разрешаемых наравне с global.discovery.clusterDomain.

      Обратите внимание: альтернативный домен не должен совпадать с доменом, используемым в шаблоне DNS-имен в параметре publicDomainTemplate.

      • Элемент массива
        строка

        Шаблон: ^[0-9a-zA-Z\.-]+$

    • settings.enableLogs
      булевый

      Включение логирования в CoreDNS.

      По умолчанию: false

    • settings.hosts
      массив объектов

      Необязательный параметр.

      Статический список хостов в стиле /etc/hosts.

      • settings.hosts.domain
        строка

        Шаблон: ^[0-9a-zA-Z\.-]+$

      • settings.hosts.ip
        строка

        Шаблон: ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}$

    • settings.stubZones
      массив объектов

      Список дополнительных зон для обслуживания CoreDNS.

      По умолчанию: []

      Пример:

      stubZones:
      - zone: example.com
        upstreamNameservers:
        - 8.8.8.8
        cacheTTLSeconds: 3600
        transportProtocolMode: PreferUDP
      
      • settings.stubZones.cacheTTLSeconds
        целочисленный

        Максимальный TTL в секундах для успешных запросов.

        По умолчанию: 30

        Допустимые значения: 1 <= X <= 3600

      • settings.stubZones.transportProtocolMode
        строка

        Режим транспортного протокола взаимодействия с вышестоящим DNS-сервером:

        • PreferUDP — Используется UDP, даже если первоначальный запрос пришел по TCP. Обратите внимание, что если DNS-ответ от вышестоящего DNS-сервера превысит 512 байт, был усечен и помечен битом TC (RFC 1035, то он будет повторно отправлен по TCP (RFC 5966). В случае каких-либо других проблем с UDP, запрос повторно по TCP отправлен не будет.
        • ForceTCP — Всегда используется TCP, даже если исходный запрос пришел по UDP.
        • KeepOriginal — Используется тот же протокол (TCP или UDP), что и в исходном запросе.

        По умолчанию: PreferUDP

        Допустимые значения: PreferUDP, ForceTCP, KeepOriginal

      • settings.stubZones.upstreamNameservers
        массив строк

        Обязательный параметр

        Список IP-адресов рекурсивных DNS-серверов, которые CoreDNS будет использовать для разрешения доменов в этой зоне.

        • Элемент массива
          строка

          Шаблон: ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}(:[0-9]{1,})?$

      • settings.stubZones.zone
        строка

        Обязательный параметр

        Зона CoreDNS.

        Шаблон: ^[0-9a-zA-Z\.\-_]+$

        Пример:

        zone: consul.local
        
    • settings.transportProtocolMode
      строка

      Режим транспортного протокола взаимодействия с вышестоящим DNS-сервером:

      • PreferUDP — Используется UDP, даже если первоначальный запрос пришел по TCP. Обратите внимание, что если DNS-ответ от вышестоящего DNS-сервера превысит 512 байт, был усечен и помечен битом TC (RFC 1035, то он будет повторно отправлен по TCP (RFC 5966). В случае каких-либо других проблем с UDP, запрос повторно по TCP отправлен не будет.
      • ForceTCP — Всегда используется TCP, даже если исходный запрос пришел по UDP.
      • KeepOriginal — Используется тот же протокол (TCP или UDP), что и в исходном запросе.

      По умолчанию: PreferUDP

      Допустимые значения: PreferUDP, ForceTCP, KeepOriginal

    • settings.upstreamNameservers
      массив строк

      Список IP-адресов рекурсивных DNS-серверов, которые CoreDNS будет использовать для разрешения внешних доменов.

      По умолчанию используется список из /etc/resolv.conf.

      • Элемент массива
        строка

        Шаблон: ^[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}(:[0-9]{1,})?$