
Crossplane 开源项目宣布发布 2.0 版本,这次升级将项目的管理范围从单纯的云基础设施扩展到更全面的应用与基础设施协同编排。同时,部分架构进行了调整,以简化平台工程工作流程,并拓展项目的原始目标。
Crossplane 于 2018 年首次发布,它通过引入 Kubernetes 风格的 API,将 Kubernetes 的管理理念应用于云资源管理,使工程师能够通过 Kubernetes 自定义资源定义(CRD)直接管理公共云基础设施。此次重大版本更新旨在解决平台团队反馈的限制:尽管 Crossplane 在基础设施自助服务方面表现出色,但基础设施与应用仍需要分开管理。Crossplane 2.0 新增了对应用的支持,平台团队现在可以通过单一 YAML 清单,同时部署应用及其所需的基础设施。官方公告中举例说明,通过一个 YAML 清单即可创建数据库、配置安全组、设置应用入口,并同步部署应用本身。

微服务示例 YAML
在 2.0 版本中除了新增应用支持之外,另一项重要改进是组合资源(Composition,模板用于将多个 Kubernetes 资源创建为单个组合资源)现在可以包含任意 Kubernetes 资源,而不仅仅是 Crossplane 管理的基础设施资源。这一增强功能在“v2 新特性”文档中有详细说明,它让平台团队可以在单个组合资源定义中统一管理数据库、网络、应用部署和监控。
Crossplane 2.0 还采用了命名空间优先的设计,摒弃了之前的集群作用域默认模型。组合资源和托管资源现在默认都是命名空间作用域,这与 Kubernetes 标准实践保持一致,同时增强了多租户支持。旧版本中,声明资源与组合资源之间存在重复问题,而新的命名空间模式通过在合适的命名空间中直接创建资源加以解决。命名空间设计提供了更细粒度的访问控制和资源隔离。不同维护者对命名空间资源的支持有所不同,亚马逊云科技资源在发布时即完全支持,Azure、GCP 及 Terraform 等其他云提供商和系统也在积极更新以适配新架构。
此次发布还引入了一种新的 Operation 类型,支持声明式运维工作流。此类操作可处理一次性任务、定期维护及事件驱动流程,例如升级和备份。Crossplane 2.0 还允许按需安装托管资源,避免提供者一次性创建过多 CRD 造成系统负荷。
Crossplane v1 架构虽然功能强大,但过于固化[...] 我们意识到,有必要退一步思考:如果今天重新设计 Crossplane,结合已有经验,它会呈现怎样的面貌?
— Nic Cope & Jared Watts
社区对早期版本的反馈出褒贬不一。用户 CoachBigSammich 分享了他通过 Crossplane 成功实现动态数据库配置的经验:“四年前在我上一份工作中,我们用它按需部署 GCP Cloud SQL 实例和数据库,非常方便。只需创建一个 XRD(本质上就是 Crossplane 的 CRD),流水线就能自动完成资源部署,GCP 提供者会处理所有配置。”
批评主要集中在复杂性和维护成本上,一些组织因此逐渐放弃使用该平台。一位用户表示:“我们今年早些时候放弃了 Crossplane(虽然实施不多),主要原因是它过于复杂且调试困难。”
而对于 2.0 版本,社区反馈普遍积极。用户 AnomalousVibe 对 v2 给出了详细反馈:“我一直在关注 v2 的发展,非常期待平台的未来。这次更新将极大改善开发者体验;对我们来说,意味着可以开始减少大量自定义代码,更期待使用新的 Operation 功能。”
用户 Curious_Ad_5014 特别询问 v2 提供者兼容性,用户 internegz 回答:“提供者的维护较为分散,因此情况会因提供者而异。”
Crossplane 2.0 的架构对大多数现有配置保持向后兼容。旧版 v1 风格的组合资源和托管资源仍然可以继续使用,但集群作用域资源已被标记为弃用。新项目可以直接采用 v2 模式,而现有工作负载则建议逐步迁移,无需承担迁移过程中的额外操作负担。
Crossplane 还规划了未来路线图,计划提升可观察性、提供更完善的组合调试工具,并实现与云原生组件的更紧密集成。路线图还提到组合测试框架和高级策略集成功能。Crossplane 2.0 已定位为一个同时支持基础设施与应用构建的综合平台,而不仅仅是云资源管理工具。Crossplane 2.0 现已正式发布,用户可以立即上手体验。
原文链接:
https://www.infoq.com/news/2025/08/crossplane-applications-v2/
评论