天天看點

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

作者:清弦

阿裡雲技術專家,主要負責 ACK 容器網絡設計與研發,阿裡雲開源 CNI 項目 Terway 主要維護者,Cilium Alibaba IPAM 負責人

背景

近期 Cilium 社群釋出了 Cilium 1.10 正式版本,在這個版本中正式支援阿裡雲 ENI 模式,阿裡雲也是國内首家支援 Cilium 的雲廠商。

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

Cilium 是一個基于 eBPF 的高性能容器網絡項目,提供網絡、可觀測性、安全三方面的解決方案。

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

Cilium 本身支援 Overlay 網絡模式部署在各種雲平台或者自建的叢集上,但是這種非雲原生的網絡模式會帶來不小的性能損耗。阿裡巴巴雲原生容器服務團隊向 Cilium 社群貢獻了阿裡雲 ENI 模式,使得在阿裡雲上可以以雲原生方式運作 Cilium 。

雲原生容器服務團隊貢獻 PR

https://github.com/cilium/cilium/pull/15160 https://github.com/cilium/cilium/pull/15512

架構

AlibabaCloud Operator 是叢集内的網絡資源控制器,承擔對網絡資源(ENI、ENIIP)統一管理、配置設定工作。

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

Cilium agent 通過 list-watch 機制、CNI 請求對 Operator 配置設定的位址資源進行配置、管理。

這種架構将所有阿裡雲 OpenAPI 調用集中到 Operator 中,可以有效的進行 API 請求管理,避免大規模叢集下 API 流控問題。

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡

Cilium 使用了 EBPF 核心技術對傳統資料鍊路進行了優化,繞過了Conntrack 子產品,對容器場景下網絡性能有了非常大的提高。在阿裡雲上使用 Cilium 1.10 + 阿裡雲 ENI 模式有多種按照方式,請閱讀 Cilium 社群的安裝文檔[1]。

為了使雲上使用者享受到更加出色的網絡性能,阿裡雲自研的開源 CNI 插件 Terway [2] 與 Cilium 實作了更好的結合。Terway 支援使用阿裡雲的彈性網卡來實作的容器網絡。使得容器網絡和虛拟機網絡在同一個網絡平面,在不同主機之間容器網絡通信時不會有封包等損失,不依賴于分布式路由也能讓叢集規模不受限于路由條目限制。目前,Terway IPvlan 模式已經深度內建 Cilium 。

使用 Terway IPvlan

使用 Terway 模式非常簡單,在阿裡雲容器服務控制台,建立叢集中選擇網絡插件 Terway ,并勾選 IPvlan 即可啟用。

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

IPvlan + eBPF 性能對比:

測試環境:

  • 2 節點 ecs . g5ne . 4xlarge 機型
  • 對比測試

Terway 獨占 ENI ( ipvs )

Terway 共享 ENI IPvlan ( ebpf )

Terway 共享 ENI veth ( ipvs )

Flanne l vxlan ( ipvs )

Netperf 性能對比 TCP_CRR

測試場景:使用 netperf 測試 Pod 間通訊

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

上圖數字越大性能越好

通過測試,可以看到基于 IPvlan 的 Pod 網絡延遲較低,在 TCP_CRR 的測試中性能名額和獨占 ENI 模式相當。

wrk + nginx 性能對比

測試場景:采用 wrk 壓測 nginx 的 Service 的方式,采用 100 位元組的小頁面模拟常見的叢集中微服務通信。

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

上圖數字越小性能越好

Cilium 首次內建國内雲服務,阿裡雲 ENI 被納入新版本特性背景架構基于 Cilium 1.10 + 阿裡雲 ENI 的高性能雲原生網絡總結

Terway IPvlan 模式在 wrk- nginx 的短連接配接測試中相對于傳統的 Terway veth 政策路由方式:

  • ClusterIP 吞吐增加 277% , 延遲降低 50%。

總結

随着 Kubernetes 已經成為容器排程的事實标準,企業上雲的首選。容器網絡做為應用的底層基礎資源,得到越來越多的關注。

在阿裡雲上我們預設提供高性能的 Terway 網絡插件 [3] 幫助使用者充分使用雲原生的網絡資源。Cilium 作為社群新興的容器網絡方案,在可觀測性、安全性上有許多出色的特性,本次增加的阿裡雲ENI模式,可以幫助 Cilium 的使用者充分使用阿裡雲上的網絡資源。我們也将繼續與社群同行,推動高性能的雲原生網絡實作規模化落地。

安裝文檔:_

https://docs.cilium.io/en/v1.10/gettingstarted/alibabacloud-eni/#k8s-alibabacloud-eni_

Terway:

https://www.alibabacloud.com/help/zh/doc-detail/97467.htm

Terway 網絡插件:_

https://help.aliyun.com/document_detail/86500.html_

繼續閱讀