微服务利器,6个值得拥有的服务网格工具

发布时间:2025-04-07 点击:10
服务网格(service mesh)并不是新概念,但将其作为运行容器平台在kubernetes之上的微服务连接来实现,则是服务网格变得更为流行的原因。如果没有服务网格,则每个微服务都需要配置接受并发送与其通信的其他微服务的连接,而服务网格完全改变了这一点。
开发者现在可以创建一个网格,使微服务能够以可靠,安全和可控的方式相互通信,而不必处理手动配置,并且不必花费大量时间和精力来维护微服务之间的连接。kubernetes和服务网格相辅相成,因为使用服务网格可以实现更复杂的容器化架构,而不会增加额外的工作量。还有很多方法可以将服务网格建立为kubernetes上的一层,来看看时下流行的服务网格工具。
aws app mesh
目前,许多kubernetes支持的应用和微服务都在aws的环境中运行,因此谈到服务网格很难避开aws app mesh不谈。aws app mesh是亚马逊自己的服务网格,为aws的服务创建服务网格层。
aws app mesh结合了envoy的专有技术作为其服务代理,通过创建虚拟服务在相同名称空间内的连接服务。aws环境中的每个微服务都可以找到该虚拟服务,并将其用于将通信引导至其他微服务。
aws app mesh与其他aws服务,如eks,fargate和ec2的无缝集成是其最强的优势之一,但是在使用aws app mesh方面存在一些限制,不能迁移到app mesh外部或在多云设置中使用这项服务。
此外,app mesh还借助cloudwatch和aws x-ray来管理服务网格,但这意味着你无需离开主仪表板就可完全控制服务网格层。尽管app mesh不支持授权规则,但也支持如mtls、高级负载均衡之类的安全功能。
istio
istio是kubernetes最受欢迎的服务网格工具。最初是由为lyft开发,之后成为了google和ibm联合的开发项目。背靠这样的巨头,istio在许多部署类型中得到广泛使用就不足为奇了。
与app mesh相似,istio也使用envoy作为其服务代理,但并不仅限于envoy作为唯一的入口控制器。istio的独特之处在于它提供了巨大的灵活性,而没有通常的复杂性。实际上可以将istio用于其他容器化平台,但是它与kubernetes的无缝集成才是最为关键的
例如,istio支持网格扩展和多集群网格,这两个功能都是app mesh和许多其他服务网格工具所没有的。istio也像执行这些任务一样处理流量访问控制和负载均衡。它甚至支持故障注入和延迟注入。
而使用istio的唯一不足就是可能会对它提供的功能感到不知如何下手。但如果有足够的资源使用istio处理服务网格层,则它可以利用其功能简化最复杂的微服务体系架构。
linkerd
linkerd也是非常流行的服务网格工具。kubernetes社区已经很好地接受了新的系列版本,到2020年4月中旬,其稳定的2.7.1版本已经发布。它完全是作为独立的服务网格工具构建的,因此它不依赖envoy等第三方工具进行管理。它甚至包含linkerd-proxy作为服务代理。
最近的升级,还包括仪表板改进和金丝雀部署的流量拆分功能的可视化。这使其成为实时监控和编排金丝雀和蓝/绿部署的好工具。
linkerd在保持独立性的同时,还与入口控制器保持高度兼容性。实际上,linkerd能够与你使用的任何入口控制器一起使用,从而使其在这方面具有很好的灵活性。要使服务网格与应用程序集成在一起,只需要一个简单的连接器注入命令即可。
linkerd2也进行了高度优化,安装仅需60秒。如果你正在寻找一个可以使表格发挥好性能的服务网格工具,那么可以尝试一下。linkerd一旦部署,并不需要太多的优化。开箱即用的配置能够支持复杂的微服务阵列,并且能够防止重大攻击。linkerd通过mtls加密来增强应用程序安全性。
它也是专门为kubernetes开发的工具,不支持多云和多集群网格创建,但是当用作kubernetes实例的服务网格层时,它的功能也不会因此降低。此外,它还可以与opencensus配合使用,使跟踪和管理变得非常容易。
kuma
kuma提供了envoy作为服务代理和对任何入口控制器支持的独特组合。它与consul connect非常相似,但有些新功能令人耳目一新,kuma也是与其他工具相比,还很年轻。
kuma不仅可以投入生产,而且还具有功能强大的服务网格功能。它支持与opentracing兼容的所有后端,并在需要时允许使用外部ca证书。但它还存在许多功能的不足。
目前,在kuma中无法进行基于路径或基于标头的流量拆分,还不支持流量访问控制和指标等功能。这些功能可能会在以后的更新中引入,但是就目前而言,必须手动进行代理模板处理才能解决这些工具的不足。
尽管如此,kuma看起来还不错。它当前为0.4.0的版本,它的开发团队正在不断听取社区用户的意见,尽快追上与其他服务网格工具的差距。
consul connect
hashicorp的consul connect,它可以与envoy和其他各种服务代理替代产品一起使用。它还可以与任何入口控制器一起使用,使其成为最容易集成到现有kubernetes集群中的一种工具。
consul connect可在任何consul环境中无缝运行。该服务网格工具虽然提供了许多方便的功能,但只能满足与其他hashicorp产品一起使用。
它支持从tcp到grpc的所有内容,也可与kubernetes,vm和nomads一起使用。完全支持网格扩展,因此可以拥有跨多个云服务和集群的环境,并且具有支持微服务的功能强大的服务网格层。
consul connect需要改进的一方面是监控。目前它可以集成其他监控工具来访问日志和按路由度量。如可以集成prometheus和grafana之类的工具来进行可视化数据监控。只需要从服务代理中提取数据即可,而不是直接从consul connect中提取数据。
envoy proxy
以上服务网格工具主要设计为与envoy一起用作服务代理。与其他边缘代理工具相比,envoy确实具有一些优势,高级负载均衡是所有这些工具中最突出的优势。
自动重试,区域本地负载均衡和请求屏蔽,使你可以配置流量负载均衡来实现好性能。另一方面,高可可视性使envoy成为维护支持功能强大架构的强大网络的理想解决方案。
写在最后,这些工具的主要目标是创建一种云架构,以满足微服务以可靠,安全的方式相互通信。无论你使用以上哪种工具,都能够实现这个目标。
微服务服务网格服务网格工具


微营销中如何才能做好微商城的营销技巧
站外SEO优化问题
宝山网站制作分析注意什么细节能提高用户体验度
功能型网站价格-网络公司功能型网站建设的报价准则
制作网站分享五个重要技巧
网站优化成功的条件
seo难吗?怎么做好seo?
应对文章被微信广告点击率的五大应对方法