今天,我们非常高兴地宣布,Linkerd 2.1正式与大家见面了。这是我们对2.0版本进行的第一次稳定更新,也引入了不少新功能:包括每路由指标、服务配置文件(service profiles)以及经过大幅改进的仪表板UI等等。此外,我们还添加了一些令人兴奋的实验性功能:代理自动注入、单命名空间安装以及控制面板的高可用性模式等。
对于通过我们 每周边缘版本 发布信息定期关注2.x分支的朋友们来说,相信各位已经体验过这些功能的实际应用效果。如果您并没有关注,则可以通过运行以下命令下载2.1稳定版本:
curl https://run.linkerd.io/install
在2.1版本当中,Linkerd现在不仅能够立足服务层级提供指标,亦可在路由层级提供指标。这意味着Linkerd能够显示服务当中特定API调用的流量级故障、迟缓或变更情况。
举例来说,以下是具有多个API端点的“webapp”服务的每路由指标:
UI上部所示为传入与传出依赖关系的拓扑结构。下部则显示路由指标。从这一点可以看出,/books与/books/<id>/edit路由存在问题,因为其成功率远远低于50%。相比之上,服务上的其它路由则运转良好。这样细化的结论,显然要比只知道“webapp”服务的总体成功率为80%好得多!
每路由指标建立在Linkerd 2.1的另一大重要补充之上,即服务配置文件。
Linkerd 2.1引入了服务配置文件这一概念,这是一种向Linkerd提供服务信息的简便快捷方法。其中的信息包括服务路由(即预期响应的API调用)以及Linkerd应如何处理这些路由。(顺带一提,服务配置文件是以Kubernetes CRD的形式实现的,其会将Linkerd所创建的Kubernetes CRD总数增加1。)
服务配置文件是一项非常令人兴奋的补充,因为其为各项目提供了新的基础构建块:能够立足于每项服务对Linkerd的行为进行配置。在即将发布的新版本当中,我们添加了一系列基于服务配置文件的功能,包括重试、断路、速率限制以及超时等等。
服务配置文件也是Linkerd 2.x背后设计理念的一大显示体现。通过在服务层级——而非全局层级——附加配置,我们得以确保Linkerd能够继续实现增量式采用——即一次一项服务。当然,即使没有指定服务配置文件,您仍然可以对Linkerd进行开箱即用。
在Linkerd 2.1当中,我们通过多种方式改进了Web仪表板,包括将其转换为Material UI。对于熟悉Kubernetes仪表板的朋友来说,这一全新外观应该会给您带来宾至如归的感觉:
Linkerd 2.1是全球各地贡献者数月以来辛勤努力的成果,我们很高兴它的这次正式亮相。我们对Linkerd 2.1的服务配置文件机制感到非常兴奋,它也使我们长期以来一直渴望实现的一系列功能成为了现实。
在这个版本当中,我们只是略微探索了Linkerd能够实现的功能。在接下来的后续版本中,我们将在可靠性与安全性方面进一步完善Linkerd 2.x发展路线图。从中期角度来看,我们也将努力减少对Kubernetes项目的依赖。最后,Linkerd 1.x仍将得到积极开发,我们将继续致力于支持我们的1.x版本用户。
Linkerd是一个社区项目,由云原生计算基金会负责托管。如果您有功能要求、问题或者评论意见,我们热诚邀请您加入我们快速发展的社区中来!Linkerd项目托管在 GitHub 之上,我们也在 Slack 、 Twitter 以及 邮件列表 的支持下建立起蓬勃发展的技术社区。快来加入吧!
原文链接: Announcing Linkerd 2.1