一种自动升级容器化云平台的方法与流程

文档序号:28381922发布日期:2022-01-07 23:12阅读:177来源:国知局
一种自动升级容器化云平台的方法与流程

1.本发明涉及容器化部署云平台部署和升级领域,具体提供一种自动升级容器化云平台的方法。


背景技术:

2.随着docker容器技术和kubenetes容器编排技术的广泛应用,越来越多的云厂商使用容器化技术部署云平台,对于使用openstack部署的云平台而言,由于openstack项目版本迭代速度快,bug修复和新功能上线只能通过平台升级实现。
3.openstack是一个由nasa(美国国家航空航天局)和rackspace合作研发并发起的,以apache许可证授权的开源云计算管理平台项目,openstack旨在为公共及私有云的建设与管理提供软件的开源项目,openstack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。openstack版本是每6个月发布一次,每次版本的顺序按照a-z进行排序,每次版本发布都会修复社区代码中严重的bug并上线新功能。
4.helm是deis开发的一个用于kubernetes的包管理器,通过helm可以实现kubernetes上的软件部署、删除、升级、回滚及打包、管理应用依赖关系、管理应用版本并发布应用到软件仓库等功能。charts是helm的打包格式,内部包含了一组应用相关的kubernetes资源,它描述了一组kubernetes资源的文件集合。helm把kubernetes资源(比如deployments、daemonsets、services、pod或ingress等)打包到一个chart中,而charts被保存到charts仓库,通过charts仓库存储和分享charts。helm使发布可配置,从而简化了kubernetes集群中应用部署、升级和维护。
5.openstack-helm是openstack的子项目,它提供了一组简单、灵活地在kubernetes集群上部署openstack相关服务的helm charts,利用helm的升级功能可以实现对openstack-helm部署的openstack集群的平滑升级,理想情况下可保证管理测业务不中断,并能做到失败情况下回滚到上个发布版本,从而保证集群升级可靠性。
6.对于云平台的升级问题,一般包括代码准备、镜像制作、环境配置、环境升级、升级验证等流程,通常每个流程均需要涉及大量代码开发和测试工作,同时升级流程中也会由于基础代码或镜像问题导致升级失败。
7.如何同步社区代码,修复重要bug,并上线新功能,同时反合自研代码并最终实现云平台快速、稳定升级变得愈发重要。


技术实现要素:

8.本发明是针对上述现有技术的不足,提供一种实用性强的自动升级容器化云平台的方法。
9.本发明解决其技术问题所采用的技术方案是:
10.一种自动升级容器化云平台的方法,通过镜像仓库、代码仓库、流水线和升级引擎
四个组件;
11.所述镜像仓库存放和管理云平台服务所需的容器镜像;
12.所述代码仓库存放和管理平台及流水线所需代码;
13.所述流水线利用部署在节点上的jenkins服务,以执行pipeline的形式,实现自动化升级前的准备工作;
14.所述升级引擎通过自定义一套web应用,将升级流程和配置展现给运维人员,运维人员最终可通过web页面相应功能实现环境配置、环境升级、升级验证的工作。
15.进一步的,在镜像仓库中通过脚本自动部署harbor服务,存放和管理云平台服务所需的docker容器镜像。
16.进一步的,在代码仓库中通过脚本自动化部署gitlab服务,存放和管理云平台服务、部署、升级和流水线所需代码。
17.进一步的,在流水线中通过部署jenkins流水线,并导入已定义好的pipline;
18.节点初始化pipeline,通过配置地节点名称、规格和网络信息,在物理机上通过kvm创建运行程序所需的虚拟机,并添加节点基础配置;
19.通过拉取组件代码进行节点部署gitlab服务pipeline,反合社区及自研代码将代码更新到要升级的版本;
20.执行组件代码的单元测试,集成测试以及部署完成后的功能机性能测试,确保代码及集群可用。
21.进一步的,在流水线中通过构建基础镜像及各服务组件镜像构建pipeline,通过底层调用helm相关api,自动化完成对云平台服务升级,部署升级引擎web服务,运维人员可直观添加集群特殊化配置,执行云平台升级。
22.进一步的,部署的jenkins流水线,自动化完成gitlab仓库、harbor镜像仓库部署;完成平台组件代码升级并完成代码单元测试和集成测试;完成基础容器镜像制作,并完成openstack相关组件容器包镜像制作。
23.进一步的,通过升级引擎web可视化页面根据环境实际情况,完成升级前特定参数配置,底层将上述配置下沉到服务配置文件中,通过执行helm api,完成云平台底层组件服务升级,并执行服务状态和服务版本检查脚本,将升级结果输出到升级引擎日志;
24.通过部署的jenkins流水线,完成集群功能测试和性能测试。
25.进一步的,在升级引擎中,通过部署一套web应用将云平台升级和验证过程以页面形式只管呈现给运维人员,最终运维人员可通过点击web页面相应功能实现待升级环境基本配置、云平台openstack升级、升级验证和集群功能测试。
26.本发明的一种自动升级容器化云平台的方法和现有技术相比,具有以下突出的有益效果:
27.本发明可以使运维人员不关注后台代码实现,通过执行一系列流水线,实现云平台升级所需准备工作,包括openstack组件代码升级、代码单元测试和集成测试;基础容器镜像制作、openstack相关组件及其他容器镜像制作,输出到镜像仓库等工作。通过升级引擎,运维人员可在web页面直观的填入待升级环境特有的环境变量,然后完成云平台的平滑升级。最后可在升级引擎检查升级后集群基础服务状态和服务版本,并运行tempest功能测试,输出openstack集群功能测试报告,验证升级结果和集群可用性。整个过程运维人员只
需通过执行流水线、页面传入必要参数、点击升级、验证、功能测试等步骤即可完成升级,降低了运维人员学习成本和工作效率,同时,任何过程的异常都可回滚到失败前的状态并输出错误报告,避免由于升级造成集群不可用状态。保证升级可靠性。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.附图1是一种自动升级容器化云平台的方法的流程示意图;
30.附图2是一种自动升级容器化云平台的方法中流水线基本功能示意图;
31.附图3是一种自动升级容器化云平台的方法中升级引擎的示意图。
具体实施方式
32.为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
33.下面给出一个最佳实施例:
34.如图1-3所示,本实施例中的一种自动升级容器化云平台的方法,通过镜像仓库、代码仓库、流水线和升级引擎四个组件。
35.镜像仓库存放和管理云平台服务所需的容器镜像。
36.代码仓库存放和管理平台及流水线所需代码。
37.流水线利用部署在节点上的jenkins服务,以执行pipeline的形式,实现自动化升级前的准备工作。
38.升级引擎通过自定义一套web应用,将升级流程和配置展现给运维人员,运维人员最终可通过web页面相应功能实现环境配置、环境升级、升级验证的工作。
39.其中,在镜像仓库中通过脚本自动部署harbor服务,存放和管理云平台服务所需的docker容器镜像。
40.在代码仓库中通过脚本自动化部署gitlab服务,存放和管理云平台服务、部署、升级和流水线所需代码。
41.在流水线中通过部署jenkins流水线,并导入已定义好的pipline,初始pipline主要包括以下:
42.1)节点初始化pipeline:主要通过配置地节点名称、规格、网络等信息,在物理机上通过kvm创建运行程序所需的虚拟机,并添加节点基础配置;
43.2)节点部署gitlab服务pipeline:拉取组件代码;
44.3)节点部署harbor服务pipeline:用来存放容器镜像;
45.4)组件代码升级pipeline:反合社区及自研代码,将代码更新到要升级到的版本;
46.5)代码测试pipeline:执行组件代码的单元测试、集成测试以及部署完成后的功
能及性能测试,保证代码及集群可用;
47.6)镜像构建pipeline:构建系统基础镜像及各服务组件镜像;
48.7)集群升级pipeline:通过底层调用helm相关api,自动化完成对云平台服务升级;
49.8)升级引擎web服务部署pipeline:部署升级引擎web服务,运维人员可直观添加集群特殊化配置,执行云平台升级。
50.通过部署的jenkins流水线,自动化完成gitlab仓库、harbor镜像仓库部署。
51.通过部署的jenkins流水线,完成平台组件代码升级(主要包括社区新版本代码反合和自研代码反合)并完成代码单元测试和集成测试,保证代码可用性;通过部署的jenkins流水线,完成基础容器镜像制作(操作系统配置、基础软件包安装),并完成openstack相关组件容器包镜像制作;
52.通过升级引擎web可视化页面根据环境实际情况,完成升级前特定参数配置(例如计算节点特殊配置、gpu节点、cinder-volume不同后端配置等),底层将上述配置下沉到服务配置文件中,通过执行helm api,完成云平台底层组件服务升级,并执行服务状态和服务版本检查脚本,将升级结果输出到升级引擎日志;
53.通过部署的jenkins流水线,完成集群功能测试和性能测试(若需要),保证升级后集群功能可用。
54.在升级引擎中,通过部署一套web应用将云平台升级和验证过程以页面形式只管呈现给运维人员,最终运维人员可通过点击web页面相应功能实现待升级环境基本配置、云平台openstack升级、升级验证和集群功能测试。
55.上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种自动升级容器化云平台的方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
56.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1