辦公網絡與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