Модуль не включен по умолчанию в каком-либо наборе модулей.
Чтобы настроить модуль, используйте 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
- disableDHCP
Отключает DHCP-сервер.
По умолчанию:
false
- dns
Настройки, которые будут переданы клиентам через DHCP.
- dns.search
Список search-доменов.
Пример:
search: - office.example.com - srv.example.com
- dns.servers
Список DNS-серверов.
Пример:
servers: - 4.2.2.2 - 8.8.8.8
- nodeSelector
Обязательный параметр
Cелектор, который идентифицирует узлы, на которых будут настроены правила iptables и на которых будет работать DHCP-сервер.
Структура, аналогичная
spec.nodeSelector
пода Kubernetes. Поды инстанса унаследуют это поле как есть.Пример:
nodeSelector: type: network-gateway
- publicAddress
Обязательный параметр
Адрес, на который будет заменен src-адрес исходящих из локальной сети пакетов.
Шаблон:
^([0-9]{1,3}\.){3}[0-9]{1,3}$
Пример:
publicAddress: 10.220.203.240
- storageClass
Имя StorageClass’а, который будет использоваться для хранения DHCP lease.
Если не указано, используется StorageClass существующей PVC, а если PVC пока нет, используется или глобальный StorageClass, или
global.discovery.defaultStorageClass
, а если и их нет, данные сохраняются в emptyDir.global.discovery.defaultStorageClass
применяется только при включении модуля, смена StorageClass по умолчанию в кластере не приведет к перезаказу диска.Dnsmasq, на котором основан наш DHCP-сервер, имеет свои механизмы защиты от дублирования IP-адресов в случае утери базы с lease’ами, но лучше ее не терять.
- 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
- tolerations
Toleration’ы для подов c DHCP и с настройщиками iptables.
Стандартный список toleration. Поды инстанса унаследуют это поле как есть.
- tolerations.effect
- tolerations.key
- tolerations.operator
- tolerations.tolerationSeconds
- tolerations.value