6大服务网格工具比较

服务网格(Service mesh)已经不是一个新鲜概念,但它实现了连接运行在Kubernetes作为容器化平台之上的微服务,这使得服务网格的想法更加流行。如果没有服务网格,每个微服务都需要配置以接收(或发送)连接到其他需要与之通信的微服务,但服务网格完全改变了这一状况。

与此前需要手动配置以及投入大量的时间精力来维护微服务之间的连接所不同的是,开发人员现在可以创建一个网格,使得微服务彼此通信可靠、可控以及安全。Kubernetes和服务网格是相互作用的,主要是因为使用服务网格可以在不增加工作量的情况下,实现更复杂的容器化架构。

因此,有很多方式可以在Kubernetes顶层建立一个服务网格。在本文中,我们将比较一些你可以用于建立服务网格的工具,你可以分别了解到它们的优劣势进而选出最适合自己的服务网格工具。

image

与AWS环境完美适配:AWS App Mesh

官网:https://aws.amazon.com/app-mesh/

由于现在许多基于Kubernetes的应用程序和微服务都运行在Amazon Web Services环境中,所以很难不谈到AWS App Mesh。顾名思义,AWS App Mesh是亚马逊自己的服务网格,用于为Amazon services创建服务网格层。

作为亚马逊的产品,AWS App Mesh利用结合了Envoy的专有技术作为其服务代理。AWS App Mesh通过创建虚拟服务在相同的命名空间中连接服务。 在你的AWS环境中每个微服务都可以找到虚拟服务并使用它来与其他微服务通信。

AWS App Mesh与其他服务(例如EKS、Fargate和EC2)的无缝集成是其最强的优势,但在使用App Mesh的过程中存在一些限制。首先,你不能将App Mesh迁移到外部或者在多云设置中使用这一服务。

App Mesh还借助CloudWatch和AWS X-Ray来管理服务网格,这意味着你可以在不离开主仪表板的情况下完全控制该层。诸如支持mTLS和高级负载均衡的特性在App Mesh中也有,但是它不支持身份验证规则。

最流行的服务网格工具:Istio

官网:https://istio.io/latest/zh/

Istio可能是最流行的Kubernetes服务网格工具,它最初由Lyft开发,但后来变成Lyft、Google和IBM联合开发。考虑到Kubernetes背后的公司是谷歌,那么Istio被广泛用于许多部署类型也并不奇怪了。

与App Mesh类似,Istio也将Envoy用作其服务代理,但它并没有限制你把Envoy作为唯一的ingress controller。Istio的独特之处在于它提供了巨大的灵活性。你可以将Istio用于其他的容器化平台,但其与Kubernetes的无缝衔接使其发挥的作用更大。

例如,Istio支持mesh扩展和多云网格,这两个特性在App Mesh和其他服务网格工具里都是没有的。Istio还可以处理流量访问控制以及负载均衡,就像它是为了执行这些任务而构建的一样。它甚至支持故障注入和延迟注入。

使用Istio的唯一缺点是你可能会对它提供的功能感到不知所措。如果你有足够的资源使用Istio处理服务网格层,这个工具有可能通过其功能简化最复杂的微服务架构。

独立的服务网格工具:Linkerd

官网:https://linkerd.io/

当Linkerd发布2.x版本时,它已经是一个十分流行的服务网格工具了。新版本受到了Kubernetes社区的欢迎,截止到2020年4月中旬,其2.7.1稳定版已经出炉。它完全是作为一个独立的服务网格工具来构建的,所以它并不依赖Envoy等第三方工具来管理,它甚至还包含了linkerd-proxy作为服务代理。

最近的升级还包括dashboard的改进和针对金丝雀部署的流量拆分功能的可视化。这使其成为实时监控和编排金丝雀和蓝绿部署的绝佳工具。

在保持独立的同时,Linkerd还与Ingress controller保持高度兼容性。实际上,Linkerd能够与你使用的任意Ingress controller一起工作,使它在这方面最为灵活。一个简单的linkerd inject命令就可以让服务网格与你的应用程序集成。

Linkerd2 也是高度优化的,安装仅需60秒。如果你正在寻找可以带来最佳性能的服务网格工具,那么Linkerd是你可以考虑尝试的。作为一个非侵入式的服务网格工具,Linkerd在部署之后并不需要进行大量的优化。开箱即用的配置足以支持复杂的微服务架构,并且能够防止重大工具。Linkerd通过mutual TLS(mTLS)加密来增强应用程序的安全性。

Linkerd也是一个专门为Kubernetes开发的工具。它可能不支持多云和多集群网格创建,但这丝毫不会减弱其作为Kubernetes实例的服务网格层的能力。除此之外,它也可以与OpenCensus配合使用,从而使跟踪和管理变得非常容易。

最年轻的服务网格工具:Kuma

官网:https://kuma.io/

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成为维护支持能力强大架构的网络的完美解决方案。

当然,这些工具有一个主要目标:创建一个云架构,在这个架构中,微服务可以以可靠和安全的方式彼此通信。好消息是,无论你使用哪种工具,你都能实现这个目标。

本文来自Rancher Labs

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356