kubernetes-直接路由

1.直接路由

    通過在每個Node上添加到其他Node上docker0的靜態路由規則,就可以將不同物理機的docker0網橋互聯互通。

    只需在每個Node的路由表中增加到對方docker0的靜態路由轉發規則。

    如:pod1 所在docker0網橋的IP子網事10.1.10.0,Node地址爲192.168.1.51,;而pod2所在docker0網橋的ip子網事10.1.20.0,Node地址爲192.168.1.52;

    在Node1上用route add 命令增加一條到Node2上docker0靜態路由規則;

route add -net 10.1.20.0 netmask 255.255.255.0 gw 192.168.1.52

同樣在node2上增加一條到Node1上docker0的靜態路由規則

route add -net 10.1.10.0 netmask 255.255.255.0 gw 192.168.1.51

在Node1 上通過ping命令驗證到Node2 上docker0的網絡連通性。這裏10.1.20.1位Node2上docker0網橋自身IP地址

###  node_01設置docker01

ifconfig docker0 10.1.10.1/24

### node_02設置docker01

ifconfig docker0 10.1.20.1/24
[root@node_01 ~]# ping 10.1.20.1
PING 10.1.20.1 (10.1.20.1) 56(84) bytes of data.
64 bytes from 10.1.20.1: icmp_seq=1 ttl=64 time=0.521 ms

    如上轉發規則生效,Node1 可以直接訪問到Node2上的docker0網橋,也可訪問到屬於docker0網段的容器應用(如:mysql) 

    若,集羣中有很多服務器,需要在每臺服務器上添加到另外99臺服務器docker0的路由規則,可以使用Quagga軟件來實現路由規則的動態添加

安裝簡介:

https://blog.csdn.net/wanchaopeng/article/details/103419887

也可使用quaggz容器來運行,下載鏡像

 

在運行quagga容器之前,需要確保每個Node上docker0網橋的子網地址不能重疊,也不能與物理機所在網絡重疊,

每臺Node上啓動quagga容器,quagga容器需要以--privileges特權模式運行,並且制定--net=host,表示直接使用物理機的網絡

 docker run -itd --name=router --privileged --net=host loggregator/router

啓動成功後,quagga會相互學習來完成到其他機器的docker0路由規則添加。

查看

route -n 

至此互通

發佈了105 篇原創文章 · 獲贊 169 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章