共计 1955 个字符,预计需要花费 5 分钟才能阅读完成。
今天我们高兴地宣布,Linkerd 2.8 已经正式发布!新的版本为 Linkerd 引入了多集群扩展机制,使其能够跨 Kubernetes 集群建立连接,保证各集群的安全性与透明性,并可以与任意网络拓扑一同使用。我们认为,这项多集群扩展机制正是目前实现 Kubernetes 多集群安全连接的最佳选项。另外,2.8 版本还为 Linkerd 引入 add-on 系统,帮助其进一步提升模块化水平;同时引入多项其他功能与稳定性改进。
1 用 Kubernetes 的方式实现多集群 Kubernetes
Linkerd 2.8 的全新多集群功能,意味着 Linkerd 现在能够以安全的、对应用程序完全透明且独立于网络拓扑之外的方式跨集群边界接入各项 Kubernetes 服务。这项多集群功能,旨在满足以下几项核心目标:
1. 提供统一的信任域。源工作负载与目标工作负载的身份必须在集群边界内与跨集群边界处的每个步骤进行验证。
2. 分离故障域。某一集群发生宕机,其他集群应该仍可正常运行。
3. 支持异构网络。由于集群可以跨越不同云环境、VPC、本地数据中心及其组合,因此除网关连接之外、Linkerd 不应引入任何 L3/L4 要求。
4. 提供具备集群内通信能力的统一模型。Linkerd 为集群内通信带来的可观察性、可靠性与安全性功能,也将扩展到新的跨集群通信体系当中。
与集群内连接一样,Linkerd 的跨集群连接同样对应用程序代码完全透明。例如,集群 west 上的服务 A 可以将集群 east 上的服务 C 直接寻址为 C.east 的形式以实现直接通信;或者自动将其寻址为 C.east,并由 Linkerd 自动将服务流量路由(甚至部分转移)至集群 C。无论这些通信是发生在同一集群之内、跨越同一数据中心或 VPC 内的多个集群,抑或是跨越公共互联网,Linkerd 都能在集群之间建立连接,并通过 mTLS 在两端完成加密与身份验证。
这项新的多集群功能可为 Linkerd 解锁大量用例,包括故障转移(在出现故障时跨越数据中心或云转移流量);“反向多租户”(每个租户都拥有自己的集群);混合云(工作负载可在本地环境与云环境之间往来移动,且不影响应用程序的其余部分)等等。
最后,与 Linkerd 的其他功能一样,多集群“服务镜像”方案能够充分利用现有 Kubernetes 功能,尽可能减少额外组件的介入。远程服务将被直接表示为 Kubernetes 服务,不引入任何新的 CRD,且配置复杂度也将继续保持在最低水平。
2Ambassador 支持多集群方案
这里我们还要向大家宣布,Ambassador 项目的开发团队已经创建出多集群集成,允许用户们使用 Ambassador 部署作为 Linkerd 的多集群网关!感兴趣的朋友可以访问 Ambassador 项目博客以了解更多详细信息[1]。
3 插件
2.8 版本引入一套简单的 add-on 插件系统,用于从 Linkerd 处添加(或移除)各类功能。Linkerd 2.8 自带两款插件:
◾Jaeger 插件,用于添加 Jaeger 与 oc-collector 组件,旨在收集并显示对集群的分布式跟踪结果。
◾Grafana 插件(默认启用),用于向 Linkerd 仪表板添加 Grafana 图。未来,我们将不断把更多功能以插件的形式推出。例如,您可以删除默认的 Prometheus 安装,转而使用您自己指定的其他工具。
4 还有更多
Linkerd 2.8 还带来诸多其他改进、性能增强与 bug 修复,具体包括:
◾通过新的 Prometheus 配置选项,Helm 图表的灵活性与模块化水平都将得到提升。
◾代理现在使用 pod 元数据对发出的分布式跟踪范围进行标记。
◾对代理做出多项性能改进,旨在减少争用、改善延迟并减少伪超时。
◾自动预防常见的流量循环场景。
关于更多详细信息,请参阅完整的发行版说明[2]。
5Linkerd 项目后续发展路线图
我们坚信,Linkerd 的核心价值正是其连通性——在云原生世界中,这种连通性不仅意味着“A 与 B 可以交换数据包”,而更多体现为“A 与 B 可以相互验证对方身份并交换数据包”。换句话说,其中包含着清晰的授权语义、可对第三方保密,且整个流程完全可测量、可检查。
展望未来,我们相信 Linkerd 能够成就这种连通性,并将其转化为适用于 Kubernetes 使用场景的安全平面。2.8 版本的推出,标志着 Linkerd 又朝着这个方向迈进了一大步。在接下来的几个版本中,我们将继续充实 Linkerd 功能集,包括将 mTLS 扩展至所有连接、引入新的策略等等。我们仍在努力,大家敬请期待!
6 立即使用!
准备好尝试 Linkerd 了吗?我们在每周实验版本 [3] 发布中已经向一部分用户朋友放出了最新版本。当然,大家也可以运行以下命令获取稳定的 2.8 版本:
1
curl https://run.linkerd.io/install | sh