一种容器云平台系统的搭建及运行方法

文档序号:9491692阅读:1528来源:国知局
一种容器云平台系统的搭建及运行方法
【技术领域】
[0001] 本发明属于云平台技术领域,尤其是一种容器云平台系统的搭建及运行方法。
【背景技术】
[0002] 云Pass平台是一个基于云计算技术建立的IT资源池和公有云服务运营支撑平 台。第三方软件开发商可在云Pass平台上快速开发部署应用产品并向最终用户提供服务, 最终客户可在此平台上按需得到丰富的、安全的、高可靠性的应用服务。
[0003] 传统的云Pass平台通常采用虚拟机实现不同软件开发商应用的隔离,并将虚拟 机作为调度的最小单元。采用虚拟机作为调度的最小单元存在很多问题,包括启动时间长、 占用系统资源多、镜像存储文件大、运行实例的迀移调整耗时。
[0004] 容器技术是通过虚拟化操作系统的方式来管理代码和应用程序,是在2013年才 开始出现并迅速兴起的一种虚拟化技术,容器技术主要是由一些技术型创新企业设计开发 的,比如:BlueData、CoreOS、Docker、Kismatic、PortWorx 等等,其中,Docker 是容器技术的 主要代表之一。容器技术使得可以将更多的计算工作负载塞入到一台服务器上,并且可以 在一瞬间为新的计算任务提高增加容量。从理论上来说,这意味着可以购买较少的硬件,自 建或租赁较少的数据中心场地,并且雇用较少的人手来管理这些设备。每个容器内都包含 一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境。为 了能达到这种效果,容器技术使用了一系列的系统级别机制,诸如利用Linux namespaces 来进行空间隔离,通过文件系统的挂载点来决定容器可以访问哪些文件,通过cgroups来 确定每个容器可以利用多少资源。此外容器之间共享同一个系统内核,这样当同一个库被 多个容器使用时,内存的使用效率会得到提升。
[0005] Linux容器技术的发展为解决传统的云Pass平台的痛点提供了可能。本专利申 请就是利用容器技术实现的一种容器云平台装置及方法,该装置及方法以解决传统云Pass 平台的痛点。

【发明内容】

[0006] 本发明的目的在于克服现有技术的不足,提供一种容器云平台系统的搭建及运行 方法。
[0007] 本发明解决其技术问题是采取以下技术方案实现的:
[0008] -种容器云平台系统的搭建及运行方法,包括步骤如下:
[0009] (1)系统的搭建,该系统包括负载均衡器,负载均衡器与容器集群调度模块及总控 制器模块连接,负载均衡器是容器云平台的对外访问入口,负责控制指令和业务指令的访 问分流及访问请求的权限验证,容器集群调度模块与主机容器化引擎模块连接,总控制器 模块与消息总线连接,消息总线与应用健康管理模块连接;
[0010] 其中,总控制器模块进一步包括权限控制模块和管理控制模块;
[0011] 其中主机容器化引擎模块进一步包括服务器端、代理端及镜像仓库;
[0012] (2)控制指令和业务指令的访问分流,具体步骤如下:
[0013] ①对访问URL进行解析,获取到访问的签名信息;
[0014] ②将签名信息传递给总控制器模块,由总控制器模块的权限控制模块进行签名信 息的验证,验证结果返回给负载均衡器;
[0015] ③如果验证结果是失败,则负载均衡器给调用者返回失败信息,调用结束;如果验 证结果是成功,则负载均衡器分析访问指令的类型,分析出是控制指令还是业务指令;
[0016] ④如果是控制指令则将URL请求转发给总控制器,由总控制器进行控制指令的处 理;
[0017] ⑤如果是业务指令则将URL请求转发给容器集群调度模块,由容器集群调度模块 进行业务指令的处理;
[0018] (3)容器集群调度模块负责访问的反向代理,将访问请求转发至具体的容器,由具 体的容器进行业务处理后返回给容器集群调度模块,由容器集群调度模块返回处理结果给 调用者;
[0019] 具体步骤如下:
[0020] ①建立容器集群调度模块在内存中的动态维护路由表,结构如下:
[0022] 处理步骤为:
[0023] A,容器集群调度模块启动成功后,向消息总线发布容器集群调度模块启动成功消 息;
[0024] B,主机容器化引擎模块中的代理端订阅容器集群调度模块启动成功消息,接收到 消息后,主机容器化引擎模块中的代理端定时发送心跳信息到消息总线,消息总线包含本 机运行的应用实例的具体信息;
[0025] C,容器集群调度模块服务端订阅该心跳消息,接收到主机容器化引擎模块中代理 端的心跳消息后,解析出应用名称、应用实例IP地址、应用实例端口;
[0026] D,如果该应用实例IP地址、应用实例端口在容器集群调度模块内存中维护的路 由表中已经存在,则更新应用实例的最近心跳时间;
[0027] 如果该应用实例IP地址、应用实例端口在容器集群调度模块在内存中维护的路 由表中不存在,则在容器集群调度在内存中维护的路由表新增一条路由记录;
[0028] ②根据URL请求,容器集群调度模块解析出访问的应用名称;
[0029] ③根据访问的应用名称,设置的调度策略,从容器集群调度模块中选择出合适的 应用实例进行处理;
[0030] ④将访问请求转给选择的应用实例;
[0031] ⑤应用实例处理URL请求,完成具体的调用,将调用处理结果返回给容器集群调 度模块;
[0032] ⑥由容器集群调度模块将调用结果返回给前端调用者;
[0033] (4)主机容器化引擎模块负责将主机进行容器化,并对所有的容器进行统筹编排 利用,负责记录和维护当前平台中运行的应用和应用运行实例清单,支撑总控制器模块中 管理控制模块处理控制指令,负责接收总控制器模块转发的指令信息并维护应用和应用运 行实例清单、监控和反馈应用运行实例的状态;
[0034] 其中,主机容器化引擎模块中的服务器端负责接收总控制器转发的指令信息并转 发给响应的代理端进行处理,服务端接受的控制指令包括获取应用清单、创建应用、删除应 用、更新应用实例数量、构建应用镜像、删除应用镜像、获取应用镜像列表;
[0035] 其中,主机容器化引擎模块中的镜像仓库负责镜像的存储和下载服务,为服务器 端处理构建应用镜像、删除应用镜像、获取应用镜像列表指令提供支撑;
[0036] 其中,主机容器化引擎模块中的代理端运行部署在各种云主机、VMffare虚拟机、或 者其它形式的主机上,利用容器技术,在其运行主机上根据服务端转发的消息内容创建运 行实例、删除运行实例、监控运行实例的运行状态,同时,代理端负责反馈运行实例的心跳、 反馈所在运行主机的资源状态,代理端创建运行实例时,需要从镜像仓库获取镜像文件以 创建镜像,代理端为服务器端处理获取应用清单、创建应用、删除应用、更新应用的实例数 量;
[0037] (5)总控制器模块负载容器云平台的控制指令的处理,包括权限控制和管理控制, 权限控制负责控制访问URL的签名信息验证,管理控制负责向外提供REST风格的API,提供 的API包括获取应用清单、创建应用、删除应用、更新应用实例数量、构建应用镜像、删除应 用镜像及获取应用镜像列表,具体步骤内容如下:
[0038] ①建立总控制器模块维护应用签名信息表,结构如下:
[0040] ②进行权限控制:
[0041] A,接收签名信息;签名信息包括下列特征:128位长度,具备唯一性,对应到唯一 的应用,具备时间特性,能够失效,对签名信息具备校验功能;
[0042] B,在应用签名信息表中寻找是否有对应的应用签名信息;
[0043] C,如果找到应用的签名信息,返回成功;如果没有找到应用的签名信息,返回失 败;
[0044] ③进行管理控制:
[0045] A,解析URL请求参数,分析操作的接口;
[0046] B,如果操作类型获取应用清单、创建应用、删除应用、更新应用实例数量、构建应 用镜像、删除应用镜像、获取应用镜像列表,则将URL请求转发至主机容器化引擎;
[0047] C,主机容器引擎进行具体的操作,并将处理结果反馈给主控制器的管理控制模 块;
[0048] D,由主控制器将调用结果返回给调用者。
[0049] (6)应用健康管理服务对应用情况进行监控,如果发现应用的运行状态和预期状 态不一致,则由应用健康管理通知容器化引擎模块进行处理,从而完成应用运行状态的调 整,步骤内容如下:
[0050] ①应用健康管理模块启动后,启动两个线程,线程1订阅容器化引擎中代理端发 布的心跳消息主题,并负责将心跳消息存储在键值对系统,线程2负责将应用的预期状态 和运行状态进行比对,并告知容器化引擎处理状态差异;
[0051] ②应用健康管理线程1始终监听消息总线,接收到心跳消息后,分析出应用名称、 应用运行实例访问地址、应用运行实例的状态,以键值对的形式存放在键值对系统中;
[0052] ③应用健康管理线程2定时从容器化引擎获取当前应用的预期状态和预期的运 行实例,并同时从键值对系统中获取当前应用的实际运行状态进行比对,判断出和预期状 态的差异,并告知容器化引擎进行处理;
[0053] (7)消息总线负责云平台装置的消息通信,各个云平台内部模块通过消息总线进 行连接通信,消息总线提供消
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1