Istio太复杂了,那么试下Linkerd

服务网格已经引起了很多关注。通过在平台层提供可靠性,安全性和可观察性,服务网格可以在Kubernetes应用程序中扮演关键角色。但是评价不一,有些组织觉得它们看起来很复杂,他们避开了采用服务网格,而另一些从业者则说,它们易于运行。

在本文中,我想重点介绍Linkerd,它是Cloud Native Computing Foundation的服务网格,以简单性而闻名。在服务网格环境中,Linkerd使用的“less-is-more”的方法以及在数据平面层使用基于Rust的“微代理”都是独一无二的。Linkerd网站列出了相当多的组织在生产环境中运行它,因此我着手与其中一些使用者进行交谈,并听听他们的经验。为什么选择Linkerd,与Istio有什么差异?

对于这篇文章,我采访了来自两个不同组织的两名DevOps专业人员。他们分享了在生产环境中运行Linkerd的过程,并收获了一些有趣经验。

一位是GoSpotCheck高级的DevOps工程师 David Sudia。另一位是YouMail的CIO,Freddy Andersen

虽然我们分开讲他们的故事,但有一些惊人的相似之处:

  1. 对服务网格有类似的要求
  2. 先尝试过Istio,但发现它过于复杂
  3. 偶然使用了Linkerd,此后一直在用

现在,让我们深入了解其服务网格的故事。

Linkerd的简单性

Istio作为最广为人知的服务网格,两者都首先尝试了。但是,他们很快发现Istio在许多方面都过于复杂和具有挑战性。

Sudia回忆到,Istio需要安装多个Helm chart 并需要各种手动步骤才能将其部署到集群中。这个过程耗时一天,这对Sudia和他的小型Ops团队是一个很大的缺点。因为,他们没有时间“管理”服务网格工具。他也注意到,Istio最近采取了一些步骤来简化其体系结构并使其更具简单性。

Andersen首次尝试在Kubernetes集群上安装Istio,但是失败了。他不得不从头开始重建它。最终成功安装Istio之后,他对Istio提供的指标觉得并没有独特之处。用户界面似乎也已经过时了,他几乎放弃了完全使用服务网格的想法。

偶然的机会,两个人发现了Linkerd。他们喜欢Linkerd的简单性,并决定尝试。

Andersen他将Linkerd安装在开发集群上,令他惊讶的是,仅用一个命令就启动了第一个实例并运行。他在Kubernetes命名空间中添加了Linkerd代理,并在几分钟之内就能看到服务之间的流量和通信。

Sudia的经历与此类似。Sudia和他的团队发现Linkerd直观且易于上手,可以在几分钟内通过命令行安装。

在服务网格方面,你有很多选择。Istio的复杂性可能是由于它提供的功能。虽然,Linkerd采用了一种极简主义的方法,可以简化很多工作,但是在某些使用案例中,使用Istio更有意义,并且我们知道有很多快乐的Istio用户。但是我们也不能忽视所有关于它的复杂性的抱怨。

Linkerd的可视化

Sudia和Andersen采用服务网格的主要动机是在服务间通信中获得可观察性。Linkerd不仅提供正确的指标,而且还将它们可视化。

根据Sudia的说法,仪表板是Linkerd最好的部分之一。无需其他设置,就可以查看关键指标,例如请求率,错误率,请求持续时间和总响应。而且由于用户界面非常直观,他甚至不需要专门学习和培训。从安装部署的第二天开始,团队就能够准确地排查问题。

Andersen发现,Linkerd的“Tap”功能可跟踪服务之间的请求。无需任何额外设置即可实时查看正在发生的事情,这对他来说特别方便。

Linkerd的可观察性

对于Sudia和Andersen而言,服务网格的最高要求是能够观察分布式应用程序中服务之间的通信。这不仅使运维团队受益,而且使开发人员和QA人员的生活变得更加轻松。

Sudia说,Linkerd无需为最常见的指标设置工具,这是因为默认情况下会提供关键的RED(速率,错误,持续时间)指标。

Andersen在运行QA任务时看到了Linkerd的一个好处,软件部署后衡量负载的功能特别有用,可以极大地改善调试和故障排除能力。而且,Linkerd的跟踪功能也非常有用。

Linkerd的安全性

安全是软件的一项关键任务,必须支撑所有其他决策。因此,这对于Sudia和Andersen都是头等大事。两者都试图在服务网格中,通过mTLS来管理安全证书,以对集群内部的流量进行加密。

Sudia的团队通常使用证书管理器来发布Letsencrypt证书,并且需要每24小时轮换一次这些证书。他希望避免像Istio样,在每个容器的基础上实施复杂的RBAC策略。

对于一个规模较小的团队,具备使用mTLS快速创建高度安全的集群的能力至关重要。Sudia的团队花了大约30分钟的时间来设置mTLS,其中大部分时间都花在阅读文档上。Dave指出,这种简单易用的水平设置mTLS非常强大,特别是对于像他这样的小型团队而言。

Andersen的团队需要mTLS才能在Linkerd网格集群之间安全地路由流量。Linkerd提供了证书自动生成的能力,这很方便。

Linkerd的社区与支持

每当Andersen或Sudia遇到问题时,他们发现Linkerd社区会非常有帮助,并且能够迅速解决问题。

有一次,Andersen遇到了HTTP会话无法与Linkerd一起使用麻烦,在Linkerd Slack上,通过社区的帮助,他快速找到了解决方案并在一天之内解决它。令他高兴的是,Linkerd的下一个发行版中就修复了这个问题。

Sudia说,当他的团队需要帮助时,几乎在一天之内,他就能在Linkerd Slack的社区中找到解决方案。他特别喜欢Linkerd精简的文档,这是Istio一直在努力解决的问题。

最后

除了Linkerd,Sudia和Andersen还从多个来源访问监视数据,包括Prometheus,Grafana Cloud,Elasticsearch,Rancher,Datadog,Jaeger和SumoLogic。尽管它们的监视工具组合各不相同,但他们俩都在将所有监视度量标准整合到一个工具中,以获取所有度量标准,日志和跟踪的统一视图。

Sudia和Andersen理解Istio尝试做很多事情的做法,这可能对其他组织也有用,但他们想要的是具有针对性,灵活的事情,这正是他们在Linkerd中得到的。

译文链接: https://thenewstack.io/istios-complexity-leads-some-users-to-linkerd/

K8S中文社区微信公众号

评论 抢沙发

登录后评论

立即登录