办公网络与K8S POD网络连通方案


一、场景需求:

目前开发环境迁移到k8s集群,运行在k8s内的微服务应用注册到nacos,注册的信息是集群内部的IP与端口,但开发人员在本地办公电脑上启动一个微服务,注册到nacos,注册信息是办公网络的IP与端口,由于办公网络与k8s集群内部网络不通,导致此微服务之间调用有问题。

目前采用的方法是修改pod的网络为主机网络,但这样会产生pod与主机高度粘性,无法发挥k8s自由调度的优势,故进行优化改进。

二、方案图解:

 

 

三、具体实施:

一些信息:

  • 开发测试k8s集群的pod网段为10.42.0.0/16,svc的网段为10.43.0.0/16
  • 公司办公网络为192.168.0.0/16
  • k8s集群node节点的网络为192.168.145.0/24,选择的nat节点IP为192.168.145.163

步骤如下:

  1. 选定k8s内部一台node节点为nat节点(如192.168.145.163,k8s-node5),(专门做路由功能,配置可以差一点),设置禁止调度。

    # kubectl taint nodes k8s-node5 forward=k8s-node5:NoSchedule
  2. 开启nat节点的路由转发

    # echo "net.ipv4.ip_forward = 1"  >> /etc/sysctl.conf
    # sysctl -p
  3. 设置SNAT

    # iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 10.42.0.0/16 -j MASQUERADE
    # iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 10.43.0.0/16 -j MASQUERADE
  4. 在办公网络的出口路由器上添加静态路由

    # ip route 10.42.0.0 255.255.0.0 192.168.145.163
    # ip route 10.43.0.0 255.255.0.0 192.168.145.163

此时,办公网络与pod网络就可以相互ping通了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM