做者:清弦
阿里雲技術專家,主要負責 ACK 容器網絡設計與研發,阿里雲開源 CNI 項目 Terway 主要維護者,Cilium Alibaba IPAM 負責人
html
近期 Cilium 社區發佈了 Cilium 1.10 正式版本,在這個版本中正式支持阿里雲 ENI 模式,阿里雲也是國內首家支持 Cilium 的雲廠商。nginx
Cilium 是一個基於 eBPF 的高性能容器網絡項目,提供網絡、可觀測性、安全三方面的解決方案。git
Cilium 自己支持 Overlay 網絡模式部署在各類雲平臺或者自建的集羣上,可是這種非雲原生的網絡模式會帶來不小的性能損耗。阿里巴巴雲原生容器服務團隊向 Cilium 社區貢獻了阿里雲 ENI 模式,使得在阿里雲上能夠以雲原生方式運行 Cilium 。
雲原生容器服務團隊貢獻 PR
https://github.com/cilium/cil...
https://github.com/cilium/cil...
github
AlibabaCloud Operator 是集羣內的網絡資源控制器,承擔對網絡資源(ENI、ENIIP)統一管理、分配工做。
安全
Cilium agent 經過 list-watch 機制、CNI 請求對 Operator 分配的地址資源進行配置、管理。
這種架構將全部阿里雲 OpenAPI 調用集中到 Operator 中,能夠有效的進行 API 請求管理,避免大規模集羣下 API 流控問題。
網絡
Cilium 使用了 EBPF 內核技術對傳統數據鏈路進行了優化,繞過了Conntrack 模塊,對容器場景下網絡性能有了很是大的提升。在阿里雲上使用 Cilium 1.10 + 阿里雲 ENI 模式有多種按照方式,請閱讀 Cilium 社區的安裝文檔[1]。
爲了使雲上用戶享受到更加出色的網絡性能,阿里雲自研的開源 CNI 插件 Terway [2] 與 Cilium 實現了更好的結合。Terway 支持使用阿里雲的彈性網卡來實現的容器網絡。使得容器網絡和虛擬機網絡在同一個網絡平面,在不一樣主機之間容器網絡通訊時不會有封包等損失,不依賴於分佈式路由也能讓集羣規模不受限於路由條目限制。目前,Terway IPvlan 模式已經深度集成 Cilium 。架構
使用 Terway 模式很是簡單,在阿里雲容器服務控制檯,建立集羣中選擇網絡插件 Terway ,並勾選 IPvlan 便可啓用。
分佈式
測試環境:微服務
Terway 獨佔 ENI ( ipvs )
Terway 共享 ENI IPvlan ( ebpf )
Terway 共享 ENI veth ( ipvs )
Flanne l vxlan ( ipvs )性能
測試場景:使用 netperf 測試 Pod 間通信
上圖數字越大性能越好
經過測試,能夠看到基於 IPvlan 的 Pod 網絡延遲較低,在 TCP_CRR 的測試中性能指標和獨佔 ENI 模式至關。
測試場景:採用 wrk 壓測 nginx 的 Service 的方式,採用 100 字節的小頁面模擬常見的集羣中微服務通訊。
上圖數字越小性能越好
上圖數字越大性能越好
Terway IPvlan 模式在 wrk- nginx 的短鏈接測試中相對於傳統的 Terway veth 策略路由方式:
隨着 Kubernetes 已經成爲容器調度的事實標準,企業上雲的首選。容器網絡作爲應用的底層基礎資源,獲得愈來愈多的關注。
在阿里雲上咱們默認提供高性能的 Terway 網絡插件 [3] 幫助用戶充分使用雲原生的網絡資源。Cilium 做爲社區新興的容器網絡方案,在可觀測性、安全性上有許多出色的特性,本次增長的阿里雲ENI模式,能夠幫助 Cilium 的用戶充分使用阿里雲上的網絡資源。咱們也將繼續與社區同行,推進高性能的雲原生網絡實現規模化落地。
安裝文檔:_https://docs.cilium.io/en/v1....
Terway: https://www.alibabacloud.com/...
Terway 網絡插件:_ https://help.aliyun.com/docum...