容器網路Calico高階實踐 褚向陽

2021-09-23 17:41:36 字數 1976 閱讀 9380

各位晚上好,我是數人雲的褚向陽,接下來要跟大家分享的主題是《容器網路calico高階實踐》.

距離上次聊 calico 已經過去快半年的時間了,數人雲也一直在努力將容器網路方案應用到企業客戶的環境中,calico v2.0 也馬上就要發布了,這次跟大家一起感受下新版.

需要說明下,本人跟 calico 沒有任何直接關係,也只是個"吃瓜群眾",做為使用者,想跟大家聊聊心得而已。

這次分享的內容主要包括:

calico 簡介回顧

首先,還是簡單的回顧下 calico 的架構和關鍵元件,方便大家理解。

calico 架構

calico 是乙個三層的資料中心網路方案,而且方便整合 openstack 這種 iaas 雲架構,能夠提供高效可控的 vm、容器、裸機之間的通訊。

etcd,分布式鍵值儲存,主要負責網路元資料一致性,確保 calico 網路狀態的準確性;

bgp client(bird), 主要負責把 felix 寫入 kernel 的路由資訊分發到當前 calico 網路,確保 workload 間的通訊的有效性;

bgp route reflector(bird), 大規模部署時使用,摒棄所有節點互聯的 mesh 模式,通過乙個或者多個 bgp route reflector 來完成集中式的路由分發;

felix 2.0.0-rc4

calicoctl v1.0.0-rc2

calico/node v1.0.0-rc2

calico/cni v1.5.3

libcalico v0.19.0

libcalico-go v1.0.0-rc4

calico-bird v0.2.0-rc1

calico-bgp-daemon v0.1.1-rc2

libnetwork-plugin v1.0.0-rc3

calico/kube-policy-controller v0.5.1

networking-calico 889cfff

felix v1.4.1b2

calicoctl v0.22.0

calico/node v0.22.0

calico/node-libnetwork v0.9.0

calico/cni v1.4.2

ibcalico v0.17.0

calico-bird v0.1.0

calico/kube-policy-controller v0.3.0

calico-bgp-daemon (gobgp based calico bgp daemon,alternative to bird)

libnetwork-plugin (docker libnetwork plugin for project calico, integrated with the calico/node image)

networking-calico (openstack/neutron integration for calico networking)

macvlan 集群,分別是:10.1.1.105 和 10.1.1.106

其實我個人不怎麼畫網路拓撲圖的,不過如果是

windows 以前就是用 visio,最近畫圖都用 gliffy,chrome 有外掛程式的。如果是放在頁面中的動態生成圖,建議看看 d3.

calico有具體的效能資料嗎?

(來自:中生代技術(西安)- @李釗-zte-研發)

之前做過簡單的效能對比測試,總體來看還是很不錯的,具體見圖:

3:遇到問題隨時到 slack 去聊聊,想請教下這個跟slack有什麼關係?(來自:中生代技術(成渝一家)@鄒晨-佳網)

這裡指的是

calico 的 slack: ,

容器網路 Calico容器網路方案

calico共有兩個容器網路方案 calico bgp和calico ipip。calico bgp資料面如下 容器a訪問容器b,資料面流程如下 容器a內的calic0裝置的掩碼長度為32,即與容器b屬於不同網路,需要通過閘道器進行通訊 容器a查詢路由表,存在default路由,下一跳為169.25...

calico網路策略

完全通過三層網路的路由 來實現 以calico 3.2版本為準,在calico 3.3中增加了blocksize可變更以及針對namespace單獨設定子網的功能 參考 calico 不同於flannel不需要為每個node分配子網段,所以只需要考慮pod的數量 例如配置172.0.0.0 16即總...

Cilium 容器網路的落地實踐

隨著越來越多的企業採用 kubernetes,圍繞多雲 安全 可見性和可擴充套件性等新要求,可程式設計資料平面的需求用例範圍越來越廣。此外,服務網格和無伺服器等新技術對 kubernetes 底層提出了更多的定製化要求。這些新需求都有一些共同點 它們需要乙個更可程式設計的資料平面,能夠在不犧牲效能的...