移动云如何基于Clusterpedia打造多Kubernetes集群管理平台
Challenge
移动云]隶属于中国移动通信集团有限公,是中国移动面向政企、事业单位、开发者等客户推出的基于云计算技术,采用互联网模式提供基础资源、平台能力、软件应用等服务的业务。目前,移动云的大部分核心系统均已容器化,并通过Kubernetes进行编排、管理。随着业务的激增,如何同时管理多个超大规模的Kubernetes集群,成为首要问题。
Solution
“我们尝试在CNCF社区中寻找解决方案。”云原生团队leader李莉说,“我们发现了一个新项目Clusterpedia,它很适合我们的需求,它能轻松的纳管多个K8s集群,并且可以对多个K8s集群上运行的资源进行高效的检索,还支持复杂的检索条件和自定义资源;同时,它还支持多集群资源Watch功能,Clusterpedia正是我们想要的。”
Impact
“跟之前相比,我们提升了60%多集群资源检索效率,实现了多集群工作负载状态统一获取,多集群资源管理成为了可能,”,李莉说,“同时,运维人员的也节省了50%的运维时间”。
一些数据
节省了50%
的运维时间
60%
提升了多集群资源查找效率
统一访问
对多集群资源状态的统一访问
移动云,发展最快的云
目前,移动云的公有云IaaS+PaaS市场份额国内排名第七,增速全球第一。私有云份额位列第5、政务云已进入行业前3。目前移动云已经为百万企业客户提供服务,并拥有1200多家生态合作伙伴。移动云秉承“5G时代,你身边的智慧云”理念,以云原生开源技术及标准为基础,充分发挥自身产品与技术创新优势,联合产业生态,为客户提供全栈云原生产品家族,帮助客户应用敏捷、业务智能,安全可信,面向未来持续演进。
2022年,移动云计划打造一款多集群管理平台,用于对底层的多个超大规模集群提供一个运维、管理的入口。具体来说,当时主要面临两个问题:
1. 多集群检索
2. 兼容不同版本的Kubernetes
在考虑了多种不同的解决方案之后,移动云选择了Clusterpedia。“首先,clusterpedia使用简单并且稳定。”李莉说,“因为Clusterpedia是一个比较新的项目,我们一开始是抱着尝试的态度。但通过实践证明,Clusterpedia完全能够承担起生产的重任,它至今稳定的工作着。”另外,该团队表示,Clusterpedia内部对版本兼容处理非常严谨,客户端完全不用改代码,甚至不用升级client-go,这个特点帮助他们减少了很升级多成本。
“Clusterpedia改善了我们在多集群中查询的体验”
— 李莉,云原生团队leader
在引入Clusterpedia之前,没有一个合适的多集群资源检索工具,随着业务的增长,数据中心的规模在不断的扩大,快速在多集群中检索到一个特定的资源是一个急需解决的问题。“我们需要在一个面板上能检索到所有K8s集群上的资源,”李莉说,“此前,我们要详细记录每个K8s集群上运行着哪些应用,然后再基于这个记录去对应的K8s集群上查找,而现在,我们可以基于Clusterpedia做到快速的多集群资源检索,极大地提升了多集群资源查找效率”。
“Clusterpedia同时也解放了我们的运维人员,它给我们的运维人员提供了一个统一的面板,让我们的运维人员在排查问题时不再为多集群之间的切换而烦恼。” 李莉说,“Clusterpedia节省了我们的运维人员至少50%的运维时间。”
“同时,Clusterpedia除了为多集群提供了一个强有力的资源检索工具,它还提供了多集群资源的Watch功能。基于此,我们实现了对多集群资源状态事件的统一汇聚,从而实现了对多集群资源状态监控和处理。”
“此外,我们基于Clusterpedia成功的对一些产品组件进行了多集群能力改造,我们使用client-go的informer监控Clusterpedia的APIServer从而感知任意集群工作负载的状态,并进行相应的事件处理”
“用户希望能够不改动任何代码,像是在单集群那样使用多集群,他们使用client-go、kubectl与Kubernetes交互。”李莉说,“Clusterpedia与原生Kubernetes api完全兼容,我们对Clusterpedia进行了一些小的改造,让它能够承担起多集群APIServer的角色。”
“Clusterpedia是一个优秀的开源项目,我们在享受它带来的便利的同时,也一直在思考能为社区做些什么。”
— 李莉,云原生团队leader
“Clusterpedia是我们在CNCF发现的宝藏,在对社区索取的同时,我们也积极的参与到了对社区的贡献当中,”李莉说,“上文中提到的多集群资源的Watch功能,就是基于我们的业务需求,设计、研发、并最终回馈给社区的。在今后的工作中,我们期待和Clusterpedia社区有更深入的合作。我们计划研究一套多集群解决方案,可以让应用像运行在单集群上一样运行在多集群上,除了对多集群资源的读操作外,还有对多集群资源的增删改,另外还会涉及到多集群资源调度,多集群网络,多集群监控等领域。我们期待和社区一起成长。”