Kuma将Envoy作为服务代理并且支持任意ingress controller。这与Consul Connect十分类似(该工具我们稍后会介绍),但Kuma也有自己令人耳目一新的功能。而且这些新意可能是因为Kuma是这个列表中最新的工具。
不要被Kuma年轻的年龄所欺骗了,它不仅仅已经生产就绪,而且还具备了你所期望的服务网格工具的功能。它支持所有与OpenTracing兼容的所有后端并且允许你在需要时使用外部CA证书。不过,这一工具也存在不完善的地方——有一些功能是缺失的。
目前,在Kuma中没有办法进行基于路径或基于请求头的流量分割。它也不支持诸如流量访问控制和指标等功能。这些功能也许会在后续版本中引入,但现在你必须得手动制作代理模板来弥补这些功能的缺失。
但是,Kuma作为一个服务网格工具还是很有前途的,尽管目前它只是0.4.0版本,但其开发者十分关注社区的意见并且十分乐意满足用户的要求,从这个维度上看,这个工具无疑是极具竞争力的。
最适用于Consul环境的服务网格:Consul Connect官网:https://www.consul.io/
由HashiCorp推出的Consul Connect可以与Envoy及其他各种服务代理一起工作,它还可以与任何ingress controller一起工作,这使其成为最容易集成到现有Kubernetes集群中的工具之一。
在任意Consul环境中Consul Connect都可以无缝衔接,但是它也只能在Consul环境中工作。虽然该服务网格工具提供了许多方便的功能,但它是为了能与其他HashiCorp产品使用而设计的。不过,这些工具的应用十分广泛。
从TCP到gRPC的一切都支持,此外这一工具还能与Kubernetes、VM甚至Nomads一起工具。网格扩展也是完全支持的,所以你可以拥有一个跨多个云服务和集群的环境,并且仍然具有一个支持微服务的功能强大的服务网格层。
Consul Connect需要改进的一个方面是监控。然而,你也可以整合其他监控工具,以便获得日志和每个路由的指标。你甚至可以集成诸如Prometheus和Grafana等工具来可视化你的监控数据。然后你只需要从你的服务代理中提取数据即可。
Envoy Proxy这些服务网状工具基本设计为Envoy作为服务代理。与其他边缘代理工具相比,Envoy确实具有一些优势,其中高级负载均衡是最突出的优势。
自动重试、区域本地负载均衡、request shadowing等功能可以让你配置流量负载均衡以获得最大性能。另一方面,高可观察性使得Envoy成为维护支持能力强大架构的网络的完美解决方案。
当然,这些工具有一个主要目标:创建一个云架构,在这个架构中,微服务可以以可靠和安全的方式彼此通信。好消息是,无论你使用哪种工具,你都能实现这个目标。