1、专利创制背景
近年来,各大云厂商纷纷提供不同CPU架构作为计算节点,同时为了满足国家信创战略要求,Kubernetes集群从最初的x86架构逐渐朝着arm和rics-v等架构切换。并且随着多架构的支持和使用不断增加,集群管理员和用户在部署工作负载时也面临着新的挑战。
2、专利解决问题、成果转化和应用效果
在多架构云原生环境下部署工作负载面临的主要问题是Kubernetes调度器在调度时并不会考虑Pod的容器镜像架构和节点CPU架构是否兼容,这也导致了以下问题:
1.单架构迁移到多架构:从原有的x86集群将工作负载迁移到多架构集群环境,工作负载在被调度时有可能被调度至非x86节点,这将导致Pod无法运行。无论是给所有工作负载使用的容器镜像重新编译以支持新的架构,还是给所有的工作负载添加节点亲和性标签kubernetes.io/arch来支持调度到合适的节点,以上都存在运维工作量大,操作繁琐易错,业务容易被中断等问题。
2.单架构环境扩容其他CPU架构节点:集群管理员向x86集群扩容arm架构节点时,因为原有的工作负载使用的容器镜像还不支持arm架构,所以需要给新节点添加污点,确保正在部署中的工作负载能够正常继续部署而不被调度至arm新节点。这项操作不仅使运维难度大大增加,业务也有可能因为不当的操作而异常。
本发明从根本上解决了以上问题,提出一种在多架构云原生环境下工作负载智能调度方法,设计一个新的调度组件multiarch-schduler。通过multiarch-schduler给Pod添加与其容器镜像匹配的节点亲和性标签kubernetes.io/arch,Pod只会被调度至与其容器镜像架构兼容的节点,若不存在这种节点,Pod将处于Pending状态,向用户明确Pod不满足节点亲和性约束。
成果转化和应用效果:
1.利用Kubernetes关键特性,对Kubernetes原生组件无侵入,可自动独立运维。
2.可实现单架构到多架构的平滑迁移,而无需额外的运维成本。
3.降低多架构节点扩容难度,自动拦截Pod防止工作负载被调度到不支持的架构的节点上。
4.用户在多架构环境中部署工作负载,在考虑容器镜像升级时,无需维护工作负载和节点的兼容性。
5.降低开发人员开发Operator的难度,使其无需额外考虑多架构的支持。
3、主要发明人员介绍
何俊桦,中国电子云云产品线CCOS开发部平台开发工程师。CNCF多集群Karmada社区主要成员,专注于多集群以及边缘计算领域。
4、发明者说
在参与发明专利的过程中,我深刻体会到创新的重要性与团队协作的力量。从概念构想到实际落地,需要多次试验与验证,每一个细节都可能影响成果的可行性和实用性。同时,撰写专利文件要求条理清晰且严谨,这不仅提升了我的逻辑思维能力,也让我更懂得如何保护知识产权。整个过程虽然充满挑战,但也让我收获了专业技能与成就感,激励我在未来继续探索创新的可能性。
来 源|桑达股份
编 辑|于寅虎、邓晨啸
审 核|科技发展部