现有网络环境

开发网段    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走:
本例用路由器增加静态即可:
2222222222222.png

增加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 

开发网已经可以直接访问:
333333333333.png

2 对 “kubernetes快速打通办公网/开发网与POD/SVC通信”的想法;

  1. 你好,我这边也有这样的需求,但是到 【增加路由】这一步不知道怎么实现了

  2. 在网关配置两条静态路由器,指定pod和service段从nodeedge走

回复 Chris 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code