发明名称 一种容器云平台系统的搭建及运行方法
摘要 本发明涉及一种容器云平台系统的搭建及运行方法,步骤包括:(1)系统的搭建,(2)控制指令和业务指令的访问分流,(3)容器集群调度模块将访问请求转发至具体的容器,由具体的容器进行业务处理后返回给容器集群调度模块,然后返回处理结果给调用者,(4)主机容器化引擎模块将主机进行容器化,记录和维护当前平台中运行的应用和应用运行实例清单,支撑处理控制指令,转发指令信息,监控和反馈应用运行实例的状态,(5)总控制器模块实现容器云平台的控制指令的处理,(6)应用健康管理模块对应用情况进行监控,(7)消息总线进行云平台装置的消息通信。本发明将各个第三方应用以容器为单元进行依赖项的打包运行,相互之间隔离运行,不互相干扰,更加充分的利用主机的系统资源。
申请公布号 CN105245373A 申请公布日期 2016.01.13
申请号 CN201510656868.1 申请日期 2015.10.12
申请人 天津市普迅电力信息技术有限公司 发明人 高勇;张海涛;胡晓楠;纪姗姗
分类号 H04L12/24(2006.01)I;H04L12/26(2006.01)I;H04L29/08(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 天津盛理知识产权代理有限公司 12209 代理人 韩奎勇
主权项 一种容器云平台系统的搭建及运行方法,其特征在于:包括步骤如下:(1)系统的搭建,该系统包括负载均衡器,负载均衡器与容器集群调度模块及总控制器模块连接,负载均衡器是容器云平台的对外访问入口,负责控制指令和业务指令的访问分流及访问请求的权限验证,容器集群调度模块与主机容器化引擎模块连接,总控制器模块与消息总线连接,消息总线与应用健康管理模块连接;其中,总控制器模块进一步包括权限控制模块和管理控制模块;其中主机容器化引擎模块进一步包括服务器端、代理端及镜像仓库;(2)控制指令和业务指令的访问分流,具体步骤如下:①对访问URL进行解析,获取到访问的签名信息;②将签名信息传递给总控制器模块,由总控制器模块的权限控制模块进行签名信息的验证,验证结果返回给负载均衡器;③如果验证结果是失败,则负载均衡器给调用者返回失败信息,调用结束;如果验证结果是成功,则负载均衡器分析访问指令的类型,分析出是控制指令还是业务指令;④如果是控制指令则将URL请求转发给总控制器,由总控制器进行控制指令的处理;⑤如果是业务指令则将URL请求转发给容器集群调度模块,由容器集群调度模块进行业务指令的处理;(3)容器集群调度模块负责访问的反向代理,将访问请求转发至具体的容器,由具体的容器进行业务处理后返回给容器集群调度模块,由容器集群调度模块返回处理结果给调用者;具体步骤如下:①建立容器集群调度模块在内存中的动态维护路由表,结构如下:<img file="FDA0000819402880000011.GIF" wi="1725" he="215" />处理步骤为:A,容器集群调度模块启动成功后,向消息总线发布容器集群调度模块启动成功消息;B,主机容器化引擎模块中的代理端订阅容器集群调度模块启动成功消息,接收到消息后,主机容器化引擎模块中的代理端定时发送心跳信息到消息总线,消息总线包含本机运行的应用实例的具体信息;C,容器集群调度模块服务端订阅该心跳消息,接收到主机容器化引擎模块中代理端的心跳消息后,解析出应用名称、应用实例IP地址、应用实例端口;D,如果该应用实例IP地址、应用实例端口在容器集群调度模块内存中维护的路由表中已经存在,则更新应用实例的最近心跳时间;如果该应用实例IP地址、应用实例端口在容器集群调度模块在内存中维护的路由表中不存在,则在容器集群调度在内存中维护的路由表新增一条路由记录;②根据URL请求,容器集群调度模块解析出访问的应用名称;③根据访问的应用名称,设置的调度策略,从容器集群调度模块中选择出合适的应用实例进行处理;④将访问请求转给选择的应用实例;⑤应用实例处理URL请求,完成具体的调用,将调用处理结果返回给容器集群调度模块;⑥由容器集群调度模块将调用结果返回给前端调用者;(4)主机容器化引擎模块负责将主机进行容器化,并对所有的容器进行统筹编排利用,负责记录和维护当前平台中运行的应用和应用运行实例清单,支撑总控制器模块中管理控制模块处理控制指令,负责接收总控制器模块转发的指令信息并维护应用和应用运行实例清单、监控和反馈应用运行实例的状态;其中,主机容器化引擎模块中的服务器端负责接收总控制器转发的指令信息并转发给响应的代理端进行处理,服务端接受的控制指令包括获取应用清单、创建应用、删除应用、更新应用实例数量、构建应用镜像、删除应用镜像、获取应用镜像列表;其中,主机容器化引擎模块中的镜像仓库负责镜像的存储和下载服务,为服务器端处理构建应用镜像、删除应用镜像、获取应用镜像列表指令提供支撑;其中,主机容器化引擎模块中的代理端运行部署在各种云主机、VMWare虚拟机、或者其它形式的主机上,利用容器技术,在其运行主机上根据服务端转发的消息内容创建运行实例、删除运行实例、监控运行实例的运行状态,同时,代理端负责反馈运行实例的心跳、反馈所在运行主机的资源状态,代理端创建运行实例时,需要从镜像仓库获取镜像文件以创建镜像,代理端为服务器端处理获取应用清单、创建应用、删除应用、更新应用的实例数量;(5)总控制器模块负载容器云平台的控制指令的处理,包括权限控制和管理控制,权限控制负责控制访问URL的签名信息验证,管理控制负责向外提供REST风格的API,提供的API包括获取应用清单、创建应用、删除应用、更新应用实例数量、构建应用镜像、删除应用镜像及获取应用镜像列表,具体步骤内容如下:①建立总控制器模块维护应用签名信息表,结构如下:<tables num="0001" id="ctbl0001"><table><tgroup cols="2"><colspec colname="c001" colwidth="45%" /><colspec colname="c002" colwidth="55%" /><tbody><row><entry morerows="1">应用名称</entry><entry morerows="1">签名信息</entry></row></tbody></tgroup></table></tables>②进行权限控制:A,接收签名信息;签名信息包括下列特征:128位长度,具备唯一性,对应到唯一的应用,具备时间特性,能够失效,对签名信息具备校验功能;B,在应用签名信息表中寻找是否有对应的应用签名信息;C,如果找到应用的签名信息,返回成功;如果没有找到应用的签名信息,返回失败;③进行管理控制:A,解析URL请求参数,分析操作的接口;B,如果操作类型获取应用清单、创建应用、删除应用、更新应用实例数量、构建应用镜像、删除应用镜像、获取应用镜像列表,则将URL请求转发至主机容器化引擎;C,主机容器引擎进行具体的操作,并将处理结果反馈给主控制器的管理控制模块;D,由主控制器将调用结果返回给调用者。(6)应用健康管理服务对应用情况进行监控,如果发现应用的运行状态和预期状态不一致,则由应用健康管理通知容器化引擎模块进行处理,从而完成应用运行状态的调整,步骤内容如下:①应用健康管理模块启动后,启动两个线程,线程1订阅容器化引擎中代理端发布的心跳消息主题,并负责将心跳消息存储在键值对系统,线程2负责将应用的预期状态和运行状态进行比对,并告知容器化引擎处理状态差异;②应用健康管理线程1始终监听消息总线,接收到心跳消息后,分析出应用名称、应用运行实例访问地址、应用运行实例的状态,以键值对的形式存放在键值对系统中;③应用健康管理线程2定时从容器化引擎获取当前应用的预期状态和预期的运行实例,并同时从键值对系统中获取当前应用的实际运行状态进行比对,判断出和预期状态的差异,并告知容器化引擎进行处理;(7)消息总线负责云平台装置的消息通信,各个云平台内部模块通过消息总线进行连接通信,消息总线提供消息主题的注册和订阅,生产者可以将要发布的消息主题注册到消息总线上,消费者如果要使用某类消息,在消息总线上订阅该消息主题即可。
地址 300384 天津市西青区海泰绿色产业基地软件园J座6层