Доступно в редакциях:  EE

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

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

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

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

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

    Пример:

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

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

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

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

    d8 system module enable network-gateway
    
  • С помощью ModuleConfig network-gateway.

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

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

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: network-gateway
    spec:
      enabled: true
    

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

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

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

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

    Пример:

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

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

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

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

    d8 k edit mc network-gateway
    

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

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

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

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста 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
        строка