磐舟磐基平台:基于KubeEdge的落地实践
摘要:实现统一管理、简化多集群的运维系统、减少运营成本;同时也成功将前面提到的500台鲲鹏服务器以及它上面的BC Linux for Euler集群纳入磐基PaaS平台的大家庭之中,运维效率大幅增加。
本文分享自华为云社区《中国移动:磐舟磐基平台 基于KubeEdge的落地实践》,作者:中国移动磐舟磐基团队 & 华为iSula团队 & CNCF KubeEdge团队。
磐舟一体化云交付平台是中国移动自主研发的面向开发人员的代码开发,自动部署的平台。磐舟一体化交付平台自研实现了一套GitOps驱动引擎,支持从需求设计、开发构建、测试部署的全部开发与运维功能需求,实现应用一键上磐基容器云平台。
磐基容器云平台是中国移动信息公司基于Kubernetes构建的企业级PaaS解决方案,实现Kubernetes能力的标准化封装及调用,包括提供开发和运行环境、资源弹性伸缩、精细化微服务管理、便捷一站式服务、跨地域多集群调度和智能监控维护等六大能力。


磐舟和磐基是相互配合的,开发人员在磐舟集群上开发,部署到磐基PaaS集群上运行应用,也支持在磐舟上归档磐基集群ops配置,通过GitOps来管理、部署磐基集群。
随着国产化进程推进,中国移动建设了大量的国产化服务器集群,磐基磐舟如何实现国产化的容器云开发交付一体化体系?在某资源池我们需要统一管理近500台鲲鹏服务器,源码可以通过磐舟统一编译为X86/ARM双架构的镜像,但是集群的管理也需要实现ARM自动化支持,开发交付环节频繁使用Kubernetes集群,最近2个月已有800多次的集群创建回收动作,人工支撑显然已经跟不上云原生的发展速度了。
另一个场景是,移动的开发人员在集团磐舟Kubernetes集群上进行开发,制作好镜像后,不能直接推送到省测公司的Kubernetes集群,需要运维人员在磐基中心集群上通过多级ssh跳板机,手工登录到省公司磐基K8s集群进行部署。这一步没有实现自动化,操作流程十分繁琐。

想解决这些问题,我们进行了一些尝试:
首先是考虑是否可以将集群统一?答案显然是不行。因为集团k8s集群,由于业务不同,不能和省公司的k8s集群合为一体。
那么是否可以做k8s的集群联邦?目前集团集群与省公司集群之间可能是比较远的(跨省),集群联邦的整体消耗会大一些,并且目前跳板机的场景,跳到省公司集群一台机器上就够了,不需要看到省公司的所有机器。
维持ssh现状,维护shell脚本?shell脚本需要人力维护,在省公司的节点逻辑很可能需要使用service来完整,继续维护shell,第一不是那么CloudNative,第二也背离了磐基磐舟轻松上云的初衷。
本着达到灵活、易用,提升集群部署时效,解决端到端开发运维效率,成就内部客户的目的,我们针对整体场景做了进一步抽象,抽象成“1+31+N”的典型网络模型。
1个中心+“31+N”个边缘集群的场景,中心与集群、集群与集群,集群与N之间,存在着网络隔离与网络不可预知的情况;在这些集群之间,保持网络隔离的情况下,在中心节点做到云原生体验的自动化运维,做到GitOps自动化。
带着抽象之后的这个模型,我们在平台管理上进行了深入调研,最终选用了CNCF的云原生边缘计算项目KubeEdge来解决完成以上所有集群的统一管理。
KubeEdge是什么?解决什么问题?
KubeEdge的特点是在云边通信的资源消耗小,使用方式基于Kubernetes,上手方便,比较适合我们当前的场景。KubeEdge项目是华为云开源的一个基于Kubernetes的开放平台,并为网络应用提供基础架构支持,提供云和边缘之间的部署和元数据同步。KubeEdge具有以下几点关键优势:
容器化应用封装
» Build once, run anywhere
» 轻量化基础镜像,降低资源占用
通用的应用抽象、定义
» 业界事实标准
» 云上、边缘统一管理
松耦合的架构
» 易扩展的API框架
» 易于定制平台组件

磐舟磐基平台的KubeEdge实践
通过对KubeEdge的应用场景分析,以及对移动内部1+31+N模型结合,我们可以将集团的“1”想象为KubeEdge的CloudCore节点、将各省公司的node节点想象为EdgeCore节点,从而就实现了1+31+N下的云边协同模型。映射到我们的具体场景是这样:
» 集群业务部署场景:把集团的K8s master节点作为KubeEdge的CloudCore节点,省公司的node节点作为KubeEdge的EdgeCore节点,CloudCore节点与EdgeCore节点连接上后,在EdgeCore上启动磐舟GitOps业务中ArgoCD pod,统一下发CD一体化的元数据,从而将省公司资源池做到方便的集群创建、集群纳管,最终方便的达成自动化GitOps交付。
» 集群自动化创建场景:基于省公司的资源池来创建磐基PaaS集群,运维人员在master节点使用磐舟GitOps,通过CloudCore与EdgeCore的通信,部署来自openEuler社区的集群自动化部署工具-eggo的实例。之后在边缘侧,就可以通过eggo来自动化完成省公司磐基PaaS集群的创建。
综上,通过将KubeEdge集成至磐基PaaS平台,成功打通移动集团与各省公司的网络,实现“1+31+N”的K8S集群全部连通、

实现统一管理、简化多集群的运维系统、减少运营成本;同时也成功将前面提到的500台鲲鹏服务器以及它上面的BCLinux for Euler集群纳入磐基PaaS平台的大家庭之中,运维效率大幅增加。
磐舟磐基平台在多集群管理的下一步计划
在完成KubeEdge集成到磐舟磐基平台这项专项工作之后,考虑到后续不仅是由master节点纳管单个edge节点,还会考虑在将南向集群的单个节点组成一个集群,实现控制面的自动化集群部署,支撑省公司集群的控制面自动化。磐舟磐基平台计划进一步集成CNCF社区最新的集群联邦方案Karmada来完成“1+31+N”的PaaS多集群统一管理工作。
号外

7月7日,华为开发者大会2023 ( Cloud )将拉开帷幕,并将在国内30多个城市、海外10多个国家开设分会场,诚邀您参加这场不容错过的年度开发者盛会,让我们一起开启探索之旅!
我们将携手开发者、客户、合作伙伴,为您呈现华为云系列产品服务与丰富的创新实践,并与您探讨AI、大数据、数据库、PaaS、aPaaS、媒体服务、云原生、安全、物联网、区块链、开源等技术话题,展开全面深入的交流。
大会将汇聚全球科学家、行业领袖、技术专家、社区大咖,开设200多场开发者专题活动,为全球开发者提供面对面交流与合作的机会,共同探讨技术创新和业务发展。
大会官网:https://developer.huaweicloud.com/HDC.Cloud2023.html
参会购票:https://www.vmall.com/product/10086352254099.html?cid= 211761
点击参与开发者社区活动,观赏技术大咖秀、玩转技术梦工厂,有机会赢取4000元开发者礼包!
欢迎关注“华为云开发者联盟”公众号,获取大会议程、精彩活动和前沿干货。
磐舟磐基平台:基于KubeEdge的落地实践的更多相关文章
- AI场景存储优化:云知声超算平台基于 JuiceFS 的存储实践
云知声是一家专注于语音及语言处理的技术公司.Atlas 超级计算平台是云知声的计算底层基础架构,为云知声在 AI 各个领域(如语音.自然语言处理.视觉等)的模型迭代提供训练加速等基础计算能力.Atla ...
- .net平台 基于 XMPP协议的即时消息服务端简单实现
.net平台 基于 XMPP协议的即时消息服务端简单实现 昨天抽空学习了一下XMPP,在网上找了好久,中文的资料太少了所以做这个简单的例子,今天才完成.公司也正在准备开发基于XMPP协议的即时通讯工具 ...
- 10月12号 晚八点 Speed-BI 云平台-基于Excel数据源的管理驾驶舱构建全过程,腾讯课堂开课啦
认真地做了一大摞一大摞的报表,老板没时间看?努力把能反馈的内容都融汇进图表里,老板嫌复杂?做了几个简单的报表,老板一眼就觉得信息不全面?每个报表都用了各种各样的图表,老板却毫无兴趣?明明很努力了,为什 ...
- KoaHub平台基于Node.js开发的Koa 连接支付宝插件代码信息详情
KoaHub平台基于Node.js开发的Koa 链接支付宝插件代码信息详情 easy-alipay alipay payment & notification APIs easy-alipay ...
- centos平台基于snort、barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总
centos平台基于snort.barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总 原创 2016年12月19日 01:20:03 标签: centos / snort ...
- 洪强宁:宜信PaaS平台基于Calico的容器网络实践
洪强宁:宜信PaaS平台基于Calico的容器网络实践 本文内容来自由七牛云主办的ECUG Con,独家授权InfoQ整理完成 容器云面临的网络挑战 在传统的IDC的架构里面网络是很重要的事情,在 ...
- 涂鸦基于OAuth2在开发者平台上的探索与实践
前言 开发授权(OAuth2)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资料(如照片.视频.联系人列表),而无需将用户名和密码提供给第三方应用. OAuth2允许用户提供一 ...
- 云知声 Atlas 超算平台: 基于 Fluid + Alluxio 的计算加速实践
Fluid 是云原生基金会 CNCF 下的云原生数据编排和加速项目,由南京大学.阿里云及 Alluxio 社区联合发起并开源.本文主要介绍云知声 Atlas 超算平台基于 Fluid + Alluxi ...
- 干货 | 博云基于OVS自研容器网络插件在金融企业的落地实践
本文根据博云在dockerone社区微信群分享内容整理 过去几年博云在企业中落地容器云平台遇到了很多痛点,其中一个比较典型的痛点来自网络方面,今天很高兴跟大家聊聊这个话题并介绍下我们基于OVS自研的C ...
- 基于 GraphQL 的 BFF 实践
随着软件工程的发展,系统架构越来越复杂,分层越来越多,分工也越来越细化.我们知道,互联网是离用户最近的行业,前端页面可以说无时无刻不在变化.前端本质上还是用户交互和数据展示,页面的高频变化意味着对数据 ...
随机推荐
- Django之form表单相关操作
目录 摘要 form表单 form表单的action参数 form表单的method参数 request.method方法 简介 get请求传递数据 post请求传递数据 GET/POST实际应用,简 ...
- PVE Cloud-INIT 模板配置
PVE Cloud-INIT 模板配置 Cloud-init是什么 Cloud-init是开源的云初始化程序,能够对新创建弹性云服务器中指定的自定义信息(主机名.密钥和用户数据等)进行初始化配置.通过 ...
- C++/Qt网络通讯模块设计与实现(总结)
至此,C++/Qt网络通讯模块设计与实现已分析完毕,代码已应用于实际产品中. C++/Qt网络通讯模块设计与实现(一) 该章节从模块的功能需求以及非功能需求进行分析,即网络通讯模块负责网络数据包的发送 ...
- [Linux]CentOS7:创建OS用户+授予sudo权限
1 创建OS用户+授予sudo权限 Step1 下载安装Xshell.Xftp工具 Step2 通过Xshell,远程登陆服务器root用户 Step3 使用检查用户的命令查询当前linux环境是否存 ...
- Go语言实现网盘系统(未完)
该项目将基于go-zero和xorm go-zero中文文档: https://legacy.go-zero.dev/cn/ Xorm中文文档: http://xorm.topgoer.com/ 功能 ...
- jdk1.8 LocalTime、LocalDate、LocalDateTime 使用大全
目录 LocalTime.LocalDate.LocalDateTime 区别 LocalTime.LocalDate.LocalDateTime 使用 now 获取当前 时刻.日期.时间 of 获取 ...
- Windows安装系统
0x01下载PE 微PE 0x02安装PE 0x021方式一:安装到系统 此方法开机有选择系统的选项,强迫症使用方法二 0x022方式二:安装到U盘 此方法需要一个U盘 确认无误后点击 立即安装到U盘 ...
- ThreadLocal实现原理和使用场景
ThreadLocal是线程本地变量,每个线程中都存在副本. 实现原理: 每个线程中都有一个ThreadLocalMap,而ThreadLocalMap中的key即是ThreadLocal. 内存泄 ...
- 使用select需要注意的细节
使用select需要注意的细节 在学校的时候就使用过select,但是在项目中使用的时候却犯了个错误. select如何使用就不进行总结了,网上教程太多,以下是项目中我写的一小段代码,便于总结. in ...
- windows11 下使用 阿里云 modelscope docker 环境 运行参考
昨天看视频 我们做了个能对话的AI派蒙,免费给大家玩! 发现阿里有一个语音转文字的模型(paraformer),之前处理这种需求一直都是直接调用服务商提交好的API接口 突然想尝试一下本地搭建,虽然和 ...