新晋 CNCF 沙箱项目 OpenClusterManagement 带来了它的最新特性

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: OpenClusterManagement(OCM)项目在 11 月 9 日的 CNCF 委员会会议中正式批准为 CNCF 的沙箱项目,并且也吸引了微软 AKS 研发同学的加盟。同时 OCM 社区也即将在 KubeCon 2021 中国的主题演讲里展开介绍 KubeVela 社区和 OCM 社区正在共建的集成特性。

作者 | 左修


OpenClusterManagement(OCM)项目在 11 月 9 日的 CNCF 委员会会议中正式批准为 CNCF 的沙箱项目,并且也吸引了微软 AKS 研发同学的加盟。同时 OCM 社区也即将在 KubeCon 2021 中国的主题演讲里展开介绍 KubeVela 社区和 OCM 社区正在共建的集成特性。


分布式云正在成为云计算行业的趋势。从用户的角度认识所谓分布式云就是可以根据基础实施拓扑形式和功能需求选择合适的社区项目方案和集群管理模式获取流畅的用户体验,同时从云厂商的角度就需要在技术服务上主动适配开放的技术标准并且在一致性通过的前提下兼容其他厂商的技术方案。所以评价分布式云混合云技术方案的开放性的重要指标之一就是项目的厂商中立性和开放性,然而实践上中立性的目标是比较理想化的因为每个厂商都需要跟随本身的商业利益,所以回到混合云技术方案上我们需要重点建设的指标是在开放性,反过来绑定终端用户恰好是与分布式云的初衷背道而驰的。


下面要展开介绍 OCM 项目是个开源开放的 Kubernetes 多集群管理平台项目,目前由阿里云,红帽以及微软等公司跨厂商联合推动。在宏观架构设计上 OpenClusterManagement 主要采用了自治管理架构,同时功能组件高度模块化可剪裁。这样而来终端用户可以根据实际的场景灵活安装拆卸自己所需要的部分模块,举个例子如果用户需要采用某个厂商的功能那么只需要在 OCM 上通过订阅插件快速安装厂商的服务,同时如果用户不再需要某模块了就可以干净地拆卸掉。换言之,一个最小的 OCM 安装模式下,OCM 只会提供精炼的集群元数据以证书管理等基础功能。


01 新的子项目 Cluster-Gateway


1、Endpoint-less 的多集群 API 网关框架 / Cluster-Gateway


Cluster-Gateway 由阿里云主要贡献的 OCM 新晋子项目,也即将引用在阿里云在云栖大会亮相的 ACK 敏捷版项目中。


OCM 在自管理模式下不会再要求被托管集群提供任何形式的 API 访问入口及证书,但是实践上我们往往仍然迫切需要一个从中枢集群动态正向访问各个集群的工作链路,同时这个链路需要考虑分布式云 VPC 网络隔离的问题,甚至被托管集群有的情况下不具备开放网络出口的条件。


在 OCM 里 Cluster-Proxy 这个神奇的特性可以帮助你在中枢集群和被托管集群之间没有任何正向网络连通性的情况下使得 API 请求能从中枢集群正确抵达被托管集群,甚至 Exec,Logs 等复杂请求也可以正常工作。这得益与 Kubernetes 社区在 Apiserver-Netwrok-Proxy(ANP)项目上积累的经验:https://github.com/kubernetes-sigs/apiserver-network-proxy


通过上述 OCM 的插件开发框架(Addon-Framework),Cluster-Proxy 可以帮你托管维护滚动 ANP 的 Server 端和 Agent 端的 TLS 证书并同步两者之间的配置。

在网络连通性稳定工作之后,再借助于下面 Kubernetes 社区的 Aggregated Apiserver 开发框架 Apiserver-Runtime,我们联合 KubeVela 社区为 OCM 开发了 Cluster-Gateway 项目以提供一个自定义资源及”/proxy”子资源,它就像 Kubernetes 原生的”pods/proxy”, ”services/proxy”一样工作:https://github.com/kubernetes-sigs/apiserver-runtime


这样一来 Cluster-Proxy 提供了四层的网络链路,Cluster-Gateway 提供了七层的网络多集群路由,于是整体的 API Push 链路就可以完整工作了。详细信息可以参考下图:

image.gif1.png

该特性本身借助于 OCM 的插件框架简化了 ANP 的部署及证书滚动等繁冗的事情,这些细碎平凡的工作恰恰是构建多集群平台最先需要解决的通用问题,也是多集群平台能简易敏捷工作的基础。一句话来说,我们可以把最枯燥的事情交给 OCM,然后再由你来定义 OCM 的功能上限。


>> 更多关于 OCM 最新插件 cluster-proxy 的文档可以参考:https://open-cluster-management.io/getting-started/integration/cluster-proxy/

02


2、更多新特性


OpenClusterManagement 社区还有许多正在积极建设的特性模块等待你去体验发现,篇幅原因这里不能详细展开,可以参考的包括:


  • ManifestWork 资源下发的“订阅式”回流特性


  • 多集群策略配置下发的 Kustomize 集成


  • 多集群 Workload 弹性能力


  • 参与社区了解更多



02 OCM 能力回顾


  • 首页仓库:

https://github.com/open-cluster-management-io/OCM

  • 主题站点:

https://open-cluster-management.io/

  • 中文主题站点:

https://open-cluster-management.io/zh/


OpenClusterManagement 项目由 2020 年末开始走向公众,至今半年多来经过在蚂蚁金服大规模运维实践的打磨下逐渐走向稳定成熟。后续在吸引了阿里云,微软等厂商的登陆合作之后正式号召社区用户的使用和合作,并于最近正式被 CNCF 采纳为沙箱开源项目。以下为 OpenClusterManagement 项目的主要架构组成:

01

1、集群生命周期核心控制器 / Registration

https://github.com/open-cluster-management-io/registration


这是 OCM 里的最核心组件,用于控制管理集群的注册流程和元数据及其生命周期。显而易见集群的元数据本身是更上层能力的必需基础,其提供的集群元数据模型也是之上工作的各个模块的公共“协议”。值得一提的是 OCM 的集群元数据是极其简练的,甚至不包含任何被托管集群的证书密钥,这是得益于 Pull 模式天然排除证书管理的安全性和复杂性。此外 OCM 里的集群注册托管流程是基于“双向握手”认证的,并且在注册完成后在中枢 Hub 集群内会自动生成管理一个与被托管集群同名的命名空间作为工作空间。

02

2、持续稳定的资源下发能力 / Work

https://github.com/open-cluster-management-io/work


在各个集群对应的命名空间中我们可以通过 ManifestWork API 将期望的资源打包下发给被托管集群,值得注意的是在被托管集群中会持久化一份备份的资源 AppliedManifestWork API 以保证在出现网络分区或者中枢离线的情况下被托管集群依然可以持续的维持期望的状态。通过 Kubernetes 社区多集群工作小组的决议 Work API 即将会被推为社区标准。

03

3、动态集群拓扑路由能力 / Placement

https://github.com/open-cluster-management-io/placement


完全解耦模块化的多集群路由策略模块。在使用时通过对集群分组或者进一步筛选指定集群的标签之后,Placement 控制器就会动态计算出路由策略的计算结果即一份被匹配的集群列表。这份列表会根据集群的可用性以及其他卫星属性动态变化。用户可以基于 Placement 控制器自由开发属于自己的多集群高级特性例如多集群 Workload 下发等等。此外在 OCM 里集群的标签也分为普通的静态标签/Label,以及由被托管集群采集上报的动态标签/ClusterClaim,这些都可以作为多集群路由策略的信息输入。

04

4、开放模块插件管理框架 / Addon-Framework

https://github.com/open-cluster-management-io/addon-framework


OCM 的插件框架提供了一系列好用的工具来辅助你开发属于自己的多集群功能特性,这样一以来你就不再需要重复处理繁杂的组件部署,中枢与被托管控制器的联动以及证书滚动等等劳动了,我们可以更专注在构建自己需要的定制功能特性本身。

05

5、更多可选模块功能


除了以上稳定工作的核心组件,OCM 还提供了多集群配置策略的下发,基于 Helm 的多集群的生命周期管理以及和 KubeVela 的集成等等进阶模块等你体验。


03 如何参与社区


随时欢迎参与我们的社区双周会,在这里关注会议及日程:https://github.com/open-cluster-management-io/community/projects


我们的会议时间会动态调整因为横跨涉及中国欧洲美国东西部的协调,或者可以直接在我们的 slack 频道寻找伙伴:https://kubernetes.slack.com/archives/C01GE7YSUUF


点击下方链接,快速浏览我们最新的 OpenClusterManagement 中文站点。

https://open-cluster-management.io/zh/

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
运维 JavaScript Java
快速部署阿里云WebIDE(DevStudio)并参与开源项目开发
3个步骤,在轻量应用服务器上完成部署DevStudio,帮你快速学习使用DevStudio进行代码的开发。
快速部署阿里云WebIDE(DevStudio)并参与开源项目开发
|
15天前
|
Kubernetes Cloud Native Ubuntu
庆祝 .NET 9 正式版发布与 Dapr 从 CNCF 毕业:构建高效云原生应用的最佳实践
2024年11月13日,.NET 9 正式版发布,Dapr 从 CNCF 毕业,标志着云原生技术的成熟。本文介绍如何使用 .NET 9 Aspire、Dapr 1.14.4、Kubernetes 1.31.0/Containerd 1.7.14、Ubuntu Server 24.04 LTS 和 Podman 5.3.0-rc3 构建高效、可靠的云原生应用。涵盖环境准备、应用开发、Dapr 集成、容器化和 Kubernetes 部署等内容。
41 5
|
运维 Kubernetes Cloud Native
开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾
KubeVela 本身也有别于“大厂开源”的惯性模式,它从第一天起就遵循“社区发起、开放治理、国际化运作”的原则,核心理念之一就是“始终以业界的最广泛和最真实场景作为项目演进的指南针”,所以发展路径中一直在倾听社区的声音,以最普遍、最共性的需求为最高优先级。
137 2
开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾
|
机器学习/深度学习 人工智能 资源调度
隐语1.0正式发布|MVP部署体验包、资源调度框架Kuscia全新亮相!
隐语1.0正式发布|MVP部署体验包、资源调度框架Kuscia全新亮相!
322 0
|
运维 资源调度 Kubernetes
「开源人说」第五期 | KubeVela:一场向应用交付标准的“冲锋”
「开源人说」第五期聚焦云原生领域开源至今仅两年多的项目——KubeVela,将镜头对准 KubeVela 项目背后的代码贡献者和落地实践者,讲述这个从第一天就诞生在社区的技术,如何走到对不同场景应用“海纳百川”,直至成为 CNCF 孵化项目,并逐渐向应用交付领域的事实标准演进的故事。 阅读下文,让我们跟随 KubeVela 创始团队,一起了解它的开源背后的故事。
199749 1
「开源人说」第五期 | KubeVela:一场向应用交付标准的“冲锋”
|
运维 Kubernetes Cloud Native
「开源人说」| 开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾
KubeVela 诞生于 OAM 社区,开源第一天起就遵循“社区发起、开放治理、国际化运作”的原则。 今 年 2 月,KubeVela 经过全体 ToC 投票成功进入 CNCF Incubation,是云原生领域首个晋级孵化的面向应用的交付和管理平台。本文将做一个完整的回顾,梳理项目演进过程中的那些“坑”,希望对整个开源生态的发展有所帮助。
48542 1
「开源人说」| 开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾
|
并行计算 Linux PyTorch
超炫酷项目来袭!DragGAN 正式开源了!
之前树先生给大家介绍过一个项目 DragGAN,现在正式开源了!
|
Cloud Native 开发者
KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目
在 InfoQ 最新公布的 2022 中国技术力量年度榜单中,KubeVela 获得了 “十大开源新锐项目” 和 “开发者最喜爱的十大开源项目” 两个大奖。
KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目
|
Cloud Native 开发者
云原生应用插件扩展训练营上线,帮你开始开源社区贡献者之旅!
阿里云开发者学堂联合云原生开发平台推出了云原生应用插件扩展训练营,帮你开始开源社区贡献者之旅!
云原生应用插件扩展训练营上线,帮你开始开源社区贡献者之旅!
|
消息中间件 Kubernetes Cloud Native
sealer 成为 CNCF Sandbox 项目,旨在构建分布式应用交付新标准
sealer 的核心理念是像 Docker 一样构建整个集群以及分布式应用,在整个集群纬度保障一致性,实现整个集群里所有分布式软件的 Build、 Share、 Run!
sealer 成为 CNCF Sandbox 项目,旨在构建分布式应用交付新标准
下一篇
无影云桌面