服務網格是一個專用的基礎設施層,它使用代理促進服務或微服務之間的服務到服務通訊。
這篇文章中,我們將比較三種流行的開源服務網格 - Cilium、Istio和Linkerd :
此次比較涵蓋以下領域:
- 部署
- 配置
- 維護
- 效能和連線性
- 運營影響
- 合規性和標準
詳細的測試報告和程式碼庫可以在公共 GitHub 儲存庫中找到。
測試方法與網際網路上的其他測試類似。我們在不同環境的測試應用程式中生成負載,比較延遲、QPS、時間等。我們使用oha負載測試工具在測試應用程式上生成負載。流量有兩種型別:內部和外部,或者簡單地針對服務 IP 和入口 IP 執行 oha。
效能測試結果:
1、Linkerd
我們的結果表明,Linkerd 是所有測試網格中速度最快、效率最高的,儘管它比基線慢 5-10%。Linkerd 的 Sidecar 資源利用率較低,但當涉及到入口流量時,其資源使用高度依賴於第三方入口控制器。因此,其他擁有自己控制器的網格表現出更好的資源利用率。
2、Cilium
Cilium 的效能比 Linkerd 慢,但與 Istio 相當。與基線相比,Cilium 的內部通訊效能慢 20-30%,外部通訊效能慢 30-40%。Cilium 守護程序集的資源利用率較低;然而,其他網格在 QPS 方面表現出更好的結果。
3、Istio
Istio 比 Linkerd 慢,但效能幾乎與 Cilium 一樣好。它比基線慢 25-35%。Istio 的 Sidecar 資源利用率高於 Linkerd,但效能較低。在三個測試網格中,Istio 的 Ingress Controller 顯示出最佳的資源利用率。
概括
總而言之,Linkerd 是所選測試產品中速度最快的服務網格。如果 Linkerd 不是一款合適的產品,而您在 Istio 和 Cillium 之間進行選擇,那麼您的決定將根據您的需求而有所不同。Istio 在低連線數下提供更高的 QPS 和更低的延遲,而 Cilium 在高連線數和內部通訊方面表現更佳。