时隔一年,Linkerd 2.12正式发布


时隔将近一年Linkerd 2.12终于发布了。这个庞大的版本为Linkerd引入了基于路由的策略,允许用户以完全零信任的方式定义和执行基于HTTP路由的授权策略。这些策略建立在Linkerd强大的工作负载身份之上,由双向TLS保护,并使用来自Kubernetes新Gateway API的类型进行配置。

Linkerd 2.12是采用Gateway API作为核心配置机制的第一步。虽然这个API对于服务网格用例来说还不是很完美,但它为这个版本提供了一个强大的起点,我们乐观地认为它们会随着时间的推移而发展,以满足Linkerd的需求。重要的是,在Gateway API的基础上构建将使我们能够将特定于Linkerd的配置对象的数量保持在最低限度,即使我们引入了新功能——这可能是我们成为Kubernetes最简单和最轻的服务网格目标的重要组成部分。

新版本还引入了访问日志记录,这是一个令人期待已久的功能,允许Linkerd生成Apache样式的请求日志。它增加了对iptables-nft的支持,并引入了许多其他改进和性能提升。

Buoyant Cloud客户现在可以将他们的2.10+或更高版本的集群全自动升级到Linkerd 2.12,包括数据平面代理。(仅限商业和企业层。)

新版本的发布包含了50多名贡献者的大量辛勤工作,其中包括Timescale、Adidas、Sourcegraph、Intel、Shopify、Red Hat等的工程师。特别感谢Agrim Prasad、Ahmed Al-Hulaibi、Aleksandr Tarasov、Alexander Berger、Ao Chen、Badis Merabet、Crevil (Bjørn)、Brian Dunnigan、Christian Schlotter、Dani Baeyens、David Symons、Dmitrii Ermakov、Elvin Efendi、Eng Zer Jun、Gustavo Fernandes de Carvalho、Harry Walter、Israel Miller、Jack Gill、Jacob Henner、Jacob Lorenzen、Joakim Roubert、Josh Ault、João Soares、Kim Christensen、Krzysztof Dryś、Lior Yantovski、Martin Anker Have、Michael Lin、Michał Romanowski、Naveen Nalam、Nick Calibey、Nikola Brdaroski、Or Shachar、Pål-Magnus Slåtto、Raman Gupta、Ricardo Gândara Pinto、Roberth Strand、Sankalp Rangare、Sascha Grunert、Steve Gray、Steve Zhang、Takumi Sue、Tanmay Bhat、Táskai Dominik、Ujjwal Goyal、Weichung Shaw、Wim de Groot、Yannick Utard、Yurii Dzobak和罗泽轩,感谢你们的辛勤工作!

Per-route策略

Linkerd的新的per-route策略扩展了现有的基于端口的策略,对服务之间的通信方式进行了更细粒度的控制。这些策略是为采用零信任安全方法的组织设计的,这些方法不仅需要加密,还需要强大的工作负载身份和无处不在的明确授权Linkerd的授权策略:
  • 将网络视为对抗性的。它们不依赖IP地址,也不要求CNI层或底层网络的任何其他方面是安全的。
  • 使用安全的工作负载身份。Linkerd的工作负载身份自动从ServiceAccounts派生,并在连接时通过双向TLS进行加密验证。
  • 在Pod级别强制执行。每个连接和每个请求都经过验证。
  • 轻松允许默认拒绝模式。默认情况下,具有安全意识的采用者可以轻松地禁止访问敏感资源,除非明确允许(“最小特权原则”)。


由于运行状况和就绪探测需要在未经授权的情况下通过,因此在Kubernetes中完成默认拒绝设置可能会很棘手。在Linkerd 2.12中,健康和就绪探测现在默认授权,但也可以显式授权,同时仍锁定其他应用程序端点。(查看完整的策略文档 »

Gateway API

Linkerd 2.12为支持Kubernetes Gateway API 迈出了第一步。虽然Gateway API最初被设计为Kubernetes中长期存在的Ingress资源更丰富、更灵活的替代方案,但它为描述服务网格流量提供了良好的基础,并允许Linkerd将其添加的配置机制保持在最低限度。

在Linkerd 2.12中,第一步是谨慎的:Linkerd提供了部分Gateway API(例如 CRD,诸如HTTPRoute之类的)的部分实现,以配置Linkerd的基于路由的策略。这种方法允许我们开始使用Gateway API类型,而无需实现对Linkerd没有意义的规范部分。随着Gateway API的发展以更好地满足Linkerd的需求,我们的意图能以一种最小化用户摩擦的方式切换到源类型。

访问记录

Linkerd 2.12还引入了访问日志记录,它允许代理选择性地发出Apache样式的请求日志。出于性能和资源利用率的原因,此功能默认关闭(尤其是对于高流量工作负载),但可以在需要它的情况下轻松启用。(请参阅访问记录文档 »

使用Buoyant Cloud进行全自动升级和回滚

除了Linkerd 2.12版本之外,我们的托管Linkerd服务Buoyant Cloud现在支持(几乎)任何运行2.10.0及更高版本的集群自动升级到Linkerd 2.12。此升级过程涵盖控制平面和数据平面,你只需更改CRD即可跨任意数量的集群保持Linkerd部署的最新状态。

和以前一样,Buoyant Cloud与(几乎)在你的基础设施上运行的任何Linkerd集群一起运行。只需将Buoyant Cloud代理与你现有的开源Linkerd安装一起部署,并获得自动健康警报、升级和回滚、策略分析等等。

其他更新

Linkerd 2.12还有大量其他改进、性能提升和错误修复,包括:
  • 一个新的config.linkerd.io/shutdown-grace-period注释,用于配置代理的最大宽限期以进行正常关闭
  • Linkerd的init容器中用于iptables-nft支持的新iptables-nft模式
  • 修复了在信任根轮换后未根据需要重新启动的某些控制平面组件
  • 修复了在Linkerd命名空间中发现意外Pod时“linkerd check”命令崩溃的问题
  • 更改了proxy.await Helm值,以便用户现在可以在控制平面组件上禁用linkerd-await
  • 允许自动缩放器在必要时驱逐Linkerd扩展部署的注释
  • 在非链接(独立)模式下运行Linkerd CNI插件的能力
  • 多集群扩展中的ServiceAccount令牌Secret以支持Kubernetes版本 >= v1.24
  • 还有更多!


有关详细信息,请参阅完整的发行说明

Linkerd 的下一步是什么?

2022年对于Linkerd来说又是不可思议的一年。去年,Linkerd成为第一个也是唯一一个在CNCF中毕业的服务网格,加入了Kubernetes、Prometheus和Envoy等项目所在的基金会,成为高成熟度的热门项目。今年早些时候,我们宣布了Linkerd 跨集群故障转移的可用性;CNCF调查结果显示,Linkerd在美国和欧盟的采用率超过了Istio ,以及Linkerd 2022年安全审计的竞争。

在接下来的几个Linkerd版本中,我们将致力于开发足以令人兴奋的客户端策略功能,例如断路和基于标头的路由,以及长期功能,例如网格扩展,以允许数据平面在Kubernetes之外运行。当然,如果你有功能要求,我们很乐意听到

Linkerd 适合所有人

Linkerd是CNCF的毕业项目。Linkerd由Buoyant创建,100%开源。如果你有功能请求、问题或意见,我们很乐意你加入我们快速发展的社区!Linkerd托管在GitHub上,我们在SlackTwitter邮件列表上有一个蓬勃发展的社区。快来加入乐趣吧!

原文链接:Announcing Linkerd 2.12: Zero-trust route-based policy, Gateway API, access logging, and more!

0 个评论

要回复文章请先登录注册