kubernetes快速打通办公网/开发网与POD/SVC通信
现有网络环境
开发网段 172.16.0.0/24
开发网DNS 172.16.0.2
pod网段 100.64.0.0/10
svc网段 10.96.0.0/12
需求是开发网段能直接访问pod和svc
实现
采用方案是k8s增加一个edge node
,只做流量分发,不跑其他pod
新建一个node
主机名 nodeedge
IP地址 172.16.0.26
nodeedge节点开启ip_forward
转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/k8s.conf
sysctl -p
nodeedge节点做到pod的snat:
iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -d 100.64.0.0/10 -j MASQUERADE
到svc的snat可以不做,直接访问nodeedge就行。
将nodeedge节点加入k8s并打污点
kubectl taint nodes nodeedge forward=nodeedge:NoSchedule
增加路由
在上层路由上增加到svc和pod的转发,从nodeedge走:
本例用路由器增加静态即可:
增加dns
路由通后,可以在DHCP服务中直接配DNS为coredns的ip
也可以在nodeedge节点启动一个dns服务,回环配coredns的ip
也可以在nodeedge节点启动一个nginx,代理coredns的53端口(udp和tcp都代理出来)
效果:
pod-ip 100.95.93.191
svc-ip 10.96.116.10
开发网已经可以直接访问:
你好,我这边也有这样的需求,但是到 【增加路由】这一步不知道怎么实现了
在网关配置两条静态路由器,指定pod和service段从nodeedge走