Linkerd 2.18 现已发布。公告称,这次发布的主题是 Battlescars:增加了一些特性和更新了一些功能,以减少操作上的痛苦。还引入了适用于 Windows 环境的代理实验构建。
基础设施软件如果不可靠,就毫无意义。Linkerd 经过 9 年的持续改进与发展,我们的目标是构建一个用户可以依赖 100 年的服务网格。Linkerd 2.18 是自去年 10 月宣布 Linkerd 可持续性以来的第二个主要版本,继续专注于操作简单性——以可管理的方式提供复杂的服务网格功能集。
Battlescars
本次发布基于项目团队帮助用户在规模边界上运行 Linkerd 的经验,包含三个重要变化:协议声明、兼容 GitOps 的多集群以及对 Gateway API 支持的更改。
协议声明
Linkerd 2.18 现在可以选择从 Kubernetes Service 对象的 appProto 字段读取端口协议。当指定此字段时,Linkerd 将不进行协议检测,而是直接使用配置的协议。配置 appProtocol 字段非常简单:
apiVersion: v1
kind:Service
metadata:
name:myService
spec:
ports:
-name:myPort
port:8090
protocol:tcp
appProtocol:http
targetPort:8090
还增加了一系列度量指标,以捕获 Linkerd 的协议检测行为,便于未来问题的诊断。
兼容 GitOps 的多集群链接
2.14 版本首次实现了对新的多集群模式的支持,推出了适用于扁平网络的平台的 pod-to-pod 多集群。2.17 版本引入了跨多个集群的新服务模型。2.18 版本则进一步改进了多集群,通过声明式方式创建所有 Link 资源,使其完全兼容 GitOps。
Gateway API 解耦
自 2022 年 Linkerd 2.12 发布以来,Linkerd 一直在推动使用 Gateway API 作为核心配置机制。在 2.14 版本中,Linkerd 成为首个符合 Gateway API 网格配置文件的服务网格。
最初的做法是“内置电池”:由于大多数用户没有 Gateway API 类型,Linkerd 默认将其打包。但随着 Gateway API 的成熟以及在更多项目中的采用,这种做法开始产生摩擦,因为其他项目开始安装或要求特定版本的 Gateway API 类型。
Linkerd 2.18 将是最后一个默认安装 Gateway API 类型的版本。在此版本中更新了这些类型的安装版本,增加了对最新 Gateway API 1.2.1 版本的支持,并改进了文档,提供用户如何在 Linkerd 和其他项目中管理 Gateway API 的建议。
实验性 Windows 构建
2.18 版本附带了适用于 Windows 机器的代理实验构建。公告称,这是实现完整 Windows 支持的关键第一步。
其他有趣的内容
2.18 版本还修复了一些小问题。联邦服务现在可以根据底层服务的变化动态传播元数据。多集群服务标签和注释现在可以被过滤,以避免共享集群特定的元数据(例如来自 ArgoCD 的工具)。代理的 CPU 使用量现在可以根据机器上可用核心的数量进行配置,简化某些资源配置。