Модуль не включен по умолчанию в каком-либо наборе модулей.

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

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

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

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

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

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module enable network-gateway
    

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

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

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

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module disable network-gateway
    

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

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

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

Параметры

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

  • settings
    объект
    • settings.disableDHCP
      булевый

      Отключает DHCP-сервер.

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

    • settings.dns
      объект

      Настройки, которые будут переданы клиентам через DHCP.

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

        Список search-доменов.

        Пример:

        search:
        - office.example.com
        - srv.example.com
        
      • settings.dns.servers
        массив строк

        Список DNS-серверов.

        Пример:

        servers:
        - 4.2.2.2
        - 8.8.8.8
        
    • settings.nodeSelector
      объект

      Cелектор, который идентифицирует узлы, на которых будут настроены правила iptables и на которых будет работать DHCP-сервер.

      Структура, аналогичная spec.nodeSelector пода Kubernetes. Поды инстанса унаследуют это поле как есть.

      Пример:

      nodeSelector:
        type: network-gateway
      
    • settings.publicAddress
      строка

      Адрес, на который будет заменен src-адрес исходящих из локальной сети пакетов.

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

      Пример:

      publicAddress: 10.220.203.240
      
    • settings.storageClass
      строка

      Имя StorageClass, который будет использоваться для хранения DHCP lease.

      Если значение не указано, используется StorageClass существующей PVC. Если PVC нет, будет использоваться StorageClass, согласно настройке глобального параметра storageClass.

      Настройка глобального параметра storageClass учитывается только при включении модуля. Изменение глобального параметра storageClass при включенном модуле не приведет к перезаказу диска.

      Внимание. Если указать значение, отличное от текущего (используемого в существующей PVC), диск будет перезаказан, и все данные удалятся.

      Если указать false, будет принудительно использоваться emptyDir.

      Dnsmasq, используемый DHCP-сервером, включает механизмы защиты от дублирования IP-адресов при утере базы lease’ов, но лучше избегать ее потери.

    • settings.subnet
      строка

      Адрес локальной подсети, которую должен обслуживать шлюз.

      На основе этого адреса будут сформированы DHCP-опции для выдачи клиентам:

      • пул адресов — номера с 50 по последний;
      • роутер — первый адрес в подсети.

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

      Пример:

      subnet: 192.168.42.0/24
      
    • settings.tolerations
      массив объектов

      Toleration’ы для подов c DHCP и с настройщиками iptables.

      Стандартный список toleration. Поды инстанса унаследуют это поле как есть.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка