Я нашел решение, чтобы заставить dhcpd pod работать хорошо.
Приведенный ниже пример предназначен для сервера внешней сети за пределами сервисной сети k8s (clusterIP).
Конфигурация dhcp выглядит следующим образом:
include "/etc/dhcp/dhcpd-options.conf";
subnet 192.168.0.0 netmask 255.255.0.0 {}
# management network
subnet 10.0.0.0 netmask 255.255.0.0 {
option routers 10.0.255.254;
option broadcast-address 10.0.255.255;
next-server 10.0.100.6;
include "/etc/dhcp/lease-bmc.conf";
include "/etc/dhcp/lease-node.conf";
}
Служба k8s выглядит следующим образом:
$ cat dhcpd-service.yaml
apiVersion: v1
kind: Service
metadata:
name: dhcpd
namespace: kube-mngt
spec:
selector:
app: dhcpd
ports:
- protocol: UDP
port: 67
targetPort: 67
externalIPs:
- 10.0.100.5
Затем настройте коммутатор (интерфейс vlan X), чтобы указать вспомогательный адрес, который указывает на dhcp-сервер (в нашем случае 10.0.100.5)
interface Vlan1
ip address 10.0.255.254 255.255.0.0 secondary
ip address 10.0.0.1 255.255.0.0
ip helper-address 10.0.100.5
!