91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes中flannal、calico和cannal網絡原理的實例分析

發布時間:2021-12-03 16:48:54 來源:億速云 閱讀:821 作者:柒染 欄目:云計算

本篇文章為大家展示了kubernetes中flannal、calico和cannal網絡原理的實例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

一、flannel

原理:flannel有host-gw(非overlay網絡),host-gw 模式是指直接使用指向目標機器物理ip的路由,不進行任何封裝而進行數據包傳輸

(性能很高,但是如果節點太多,則每臺機器的路由表會膨脹到一定境界,必須所有機器都互聯,所有的節點必須都在同一個子網中,不能跨網段,二層必須能夠互聯)

           overlay網絡,支持UDP、VxLAN、AWS VPC和GCE路由等數據轉發方式 (kubernetes默認使用了vxlan,下面以vxlan為例說明)

首先是ip地址的分配,通過在ip池中劃分子網到指定物理機器實現。(flannel在分配ip的時候會挑選可用的子網到各自物理機器上去,而pod的ip從該子網中分配)

主機192.168.0.4上

ip link add dev flannel_vxlan_c type veth peer name flannel_vxlan_h

brctl addif cni flannel_vxlan_h
ip link set flannel_vxlan_h up
ip addr add 10.244.0.1/24 dev cni

ip netns add flannel_vxlan
ip netns exec flannel_vxlan ip link set lo up
ip link set flannel_vxlan_c netns flannel_vxlan
ip netns exec flannel_vxlan ip link set flannel_vxlan_c up
ip netns exec flannel_vxlan ip addr add 10.244.0.3/24 dev flannel_vxlan_c
ip netns exec flannel_vxlan ip route add default via 10.244.0.1

ip nei add 10.244.2.0 dev flannel.1 lladdr 22:3d:4d:c5:65:ff(這個mac地址是對面192.168.0.16上flannel.1的mac地址)
bridge fdb add 22:3d:4d:c5:65:ff dst 192.168.0.16 dev flannel.1
ip route add 10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink

這樣,在另一邊做同樣的設置,就可以實現在vxlan的基礎上的東西向互聯了

需要注意的是圖中的flanneld這里,我還不太確定他是做什么用的

優勢:overlay網絡,能適應公有云環境

缺點:udp性能損耗非常高,vxlan相對很好,不能進行網絡隔離等等網絡策略操作

二、calico網絡

calico提供兩種模式網絡:BGP、ip-in-ip(overlay網絡)

工作原理:

calico在每個節點上的內核中創建一個vrouter,這個vrouter做高效的路由轉發,vrouter通過bgp向其他節點通報本地的pod相關的路由信息,在小規模部署中,所有的節點都可通過bgp互聯,大規模的時候可以通過bgp reflector來完成路由的通報。

ip地址分配:分配策略同flannel類似,也是將整個pool劃分為不同的子網,將子網調度到不同的節點上,然后各節點上使用相應的子網內的ip地址創建pod

calico可以使用iptables實現訪問控制,可以實現很多網絡策略

如圖:

pod與物理機通過veth相連接。

felix用來設置路由以及iptables(可以實現網絡策略,控制pod的通信情況)

bgp client(bird)通過讀取路由信息,向整個網絡中進行廣播。這樣對面就會獲知娶一個特定網絡的路由信息。

需要注意的是ip-in-ip 與 完全bgp的區別是,pod出來的數據包,通過ip route被發送給一個本地的ipip設備(這個設備做的工作就是使用本地物理機的ip和目的物理機器ip將pod的ip報文封裝起來,根據路由發送到相應的機器上去)

具體實現大概是下面這樣子的

主機192.168.0.4

ip netns add calico
ip link add dev calico-c type veth peer name calico-h
ip link set calico-c netns calico
ip netns exec calico ip link set lo up
ip netns exec calico ip link set calico-c up
ip netns exec calico ip addr add 10.244.0.3/24 dev calico-c
ip netns exec calico ip route add default via 169.254.1.1
ip netns exec calico ip route add 169.254.1.1 dev calico-c

ip route add 10.244.0.3 dev calico-h
ip link set calico-h up
sysctl -w net.ipv4.conf.calico-h.proxy_arp=1

BGP模式

ip route add 10.244.2.0/24 via 192.168.0.16

IP-IN-IP模式

ip tunnel add tunl0 mode ipip

ip route add 10.244.2.0/24 via 192.168.0.16 dev tunl0

在另一邊是相反的。當然這些操作都是felix以及confd 和bird完成的

calico的性能:比flannel強太多,即便overlay網絡ip-in-ip也比flannel的overlay網絡性能強很多

優點:性能強、快、有網絡策略、有overlay、基于三層路由的

缺點:據說是不能VRF,當然目前我還不知道什么是VRF

三、canal

canal是flannel與calico的結合版,在這里去除了calico的confd bird部分,也就意味著不使用bgp,不使用ipip隧道,保留的只有felix部分,這部分提供路由以及iptables的設置,也就是一般的網絡策略。flannel在這里保留的是vxlan的隧道部分

canal創建的pod的網絡結構就是這樣的

其本質是:

主機192.168.0.4

ip link add dev canal-c type veth peer name canal-h
ip link set canal-c netns canal
ip netns exec canal ip link set lo up
ip netns exec canal ip link set canal-c up
ip netns exec canal ip addr add 10.244.0.3/24 dev canal-c
ip netns exec calico ip route add default via 169.254.1.1
ip netns exec canal ip route add 169.254.1.1 dev canal-c

ip route add 10.244.0.3 dev canal-h
ip link set canal-h up
sysctl -w net.ipv4.conf.canal-h.proxy_arp=1

ip nei add 10.5.47.0 dev flannel.1 lladdr 22:3d:4d:c5:65:ff (192.168.0.16上flannel.1的mac)
bridge fdb add 22:3d:4d:c5:65:ff  dst 192.168.0.16 dev flannel.1
ip route add 10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink

主機192.168.0.16

ip link add dev canal-c type veth peer name canal-h
ip link set canal-c netns canal
ip netns exec canal ip link set lo up
ip netns exec canal ip link set canal-c up
ip netns exec canal ip addr add 10.244.1.3/24 dev canal-c
ip netns exec calico ip route add default via 169.254.1.1
ip netns exec canal ip route add 169.254.1.1 dev canal-c

ip route add 10.244.1.3 dev canal-h
ip link set canal-h up
sysctl -w net.ipv4.conf.canal-h.proxy_arp=1

ip nei add 10.244.0.0 dev flannel.1 lladdr  56:ad:b6:5f:16:d7 (192.168.0.4上flannel.1的mac)
bridge fdb add 56:ad:b6:5f:16:d7 dst 192.168.0.4 dev flannel.1
ip route add 10.244.0.0/24 via 10.244.1.0 dev flannel.1 onlink

優勢:網絡策略、overlay網絡

缺點:性能下降的很快,但是貌似沒有calico的不能vrf的缺點

上述內容就是kubernetes中flannal、calico和cannal網絡原理的實例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪泽县| 阿鲁科尔沁旗| 连云港市| 宣汉县| 枣阳市| 南召县| 龙江县| 进贤县| 巧家县| 郧西县| 武安市| 观塘区| 织金县| 隆昌县| 武清区| 昆山市| 稻城县| 新营市| 漳浦县| 莲花县| 兖州市| 珲春市| 舞阳县| 清新县| 中西区| 陕西省| 隆昌县| 泽库县| 普兰店市| 武定县| 文山县| 和平区| 麦盖提县| 尚义县| 达孜县| 巴南区| 龙南县| 扶余县| 塔城市| 武宣县| 通城县|