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

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

Чтобы явно включить или выключить модуль kube-dns, установите spec.enabled в true или false в ModuleConfig/kube-dns (создайте, при необходимости), или воспользуйтесь командой deckhouse-controller module в поде d8-system/deckhouse.

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

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: kube-dns
    spec:
      enabled: true
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec deploy/deckhouse -c deckhouse -- deckhouse-controller module enable kube-dns
    

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

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: kube-dns
    spec:
      enabled: false
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec deploy/deckhouse -c deckhouse -- deckhouse-controller module disable kube-dns
    

Чтобы настроить модуль, используйте custom resource ModuleConfig с именем kube-dns (подробнее о настройке Deckhouse…).

Пример ресурса ModuleConfig/kube-dns для настройки модуля:

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

Параметры

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

  • clusterDomainAliasesмассив строк

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

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

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

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

  • enableLogsбулевый

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

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

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

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

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

    • hosts.domainстрока

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

    • hosts.ipстрока

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

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

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

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

    Пример:

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

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

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

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

    • 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

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

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

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

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

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

    • stubZones.zoneстрока

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

      Зона CoreDNS.

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

      Пример:

      zone: consul.local
      
  • 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

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

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

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

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

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