顶级三种服务网格比较 - cncf


随着微服务架构的普及,服务网格技术应运而生。因为服务网格促进了网络与业务逻辑的分离,它使您能够专注于应用程序的核心能力。
微服务应用程序分布在多个服务器、数据中心或大洲,使其高度依赖网络。服务网格通过使用路由规则和服务之间包的动态方向控制流量来管理服务之间的网络流量。 
在本文中,我们将查看用例、比较顶级网格选项并回顾最佳实践。 
虽然每次会议上总会有一些初创公司推出花哨的服务网格产品,但只有三个顶级网格选项在云原生世界中被广泛使用:IstioLinkerdConsul Connect。它们都是具有活跃社区的开源产品。根据他们的愿景和实施,他们每个人都有自己的优缺点。
 
Istio
Istio是一个 Kubernetes 原生的服务网格,最初由 Lyft 开发并被业界广泛采用。Google、IBM 和 Microsoft 等领先的云 Kubernetes 提供商使用 Istio 作为其服务中的默认服务网格。Istio 提供了一组强大的功能来创建服务之间的连接,包括请求路由、超时、熔断和故障注入。此外,Istio 通过延迟、流量和错误等指标深入了解应用程序。 
优点
最活跃的社区 业内采用率高 与 Kubernetes 和 VM 配合使用
缺点
陡峭的学习曲线 集群的大量开销 没有本地管理仪表板
 
Linkerd
Linkerd是第二受欢迎的服务网格,并且是云原生计算基金会 (CNCF) 的一部分
从架构的角度来看,Linkerd 与 Istio 类似,但具有更大的灵活性。这种灵活性来自可插拔架构的多个维度。例如,在连接性方面,Linkerd 可与最流行的入口控制器配合使用,如 Nginx、Traefik 或 Kong。同样,除了自己的 GUI 之外,它还与 Grafana、Prometheus 和 Jaeger 一起使用以实现可观察性。  
优点
文档和易于安装在行业中受到采用和企业支持的牵引力 
缺点
仅适用于 Kubernetes,不支持 VM 缺少一些网络路由功能,例如断路或速率限制

  
Consul
Consul是分布式应用程序中最流行的服务发现和键/值存储,直到其母公司 HashiCorp 转换为名为 Consul Connect 的服务网格。
因此,Consul Connect 有一个混合架构,在应用程序旁边有 Envoy sidecar,它的控制平面和键/值存储是用 Go 开发的。从连接性和安全性的角度来看,Consul Connect 与其替代品相比并没有提供出色的功能。但是,它具有较少的配置和复杂性,因此更容易上手——就像云原生世界中的其他 HashiCorp 工具一样。
优点
由 HashiCorp 和企业级支持可用性支持 适用于 VM 和 Kubernetes 
缺点
有限的开源社区 缺乏完整且易于遵循的文档