办公网与docker网络互通

微服务的流行推动着容器技术的发展,伴随着新技术的应用产生了新的问题。比如开发人员本机无法运行诸多的微服务,如何保障开发正常进行。本文将介绍如何打通开发环境网与docker环境之间的网络。

需求

办公室网络 和 docker 网络不通。开发在电脑完成某个微服务模块开发后,希望本地启动后,能注册到 docker 中开发环境的服务中心进行调试,而不是本地起一堆依赖的服务。

网络互通配置

选一台docker节点做路由转发,连接办公室网络和 docker 集群服务

  • 节点 IP 地址 192.168.1.90
  • 容器网段 10.42.0.0/16
  • 办公网段 192.168.0.0/24

image-20210303144129408

我的网络整体结构本身不复杂,所以相对来说配置简单。

节点,做snat:

开启转发

1
2
3
vim /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
sysctl -p

来自办公室访问dockerservice snat

1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 10.42.0.0/16 -j MASQUERADE

在办公室的出口路由器上,设置静态路由,将docker的网段,路由到节点上

1
ip route 10.42.0.0 255.255.255.0 192.168.1.90

以上步骤操作后,我们就可以在本地电脑通过访问docker ip去访问服务。

image-20210303135329788

参考链接:办公环境下 Kubernetes 网络互通方案