Модуль не включен по умолчанию в каком-либо наборе модулей.
Чтобы настроить модуль, используйте 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.
- settings.dns.search
Список 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, или
global.discovery.defaultStorageClass
, а если и их нет, данные сохраняются в emptyDir.global.discovery.defaultStorageClass
применяется только при включении модуля, смена StorageClass по умолчанию в кластере не приведет к перезаказу диска.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