服务网格Istio、Linkerd和Cilium性能比较


服务网格是一个专用的基础设施层,它使用代理促进服务或微服务之间的服务到服务通信。

这篇文章中,我们将比较三种流行的开源服务网格 - 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 在高连接数和内部通信方面表现更佳。