首页> 中国专利> 一种基于Kubernetes的容器云架构及其各模块之间的交互方法

一种基于Kubernetes的容器云架构及其各模块之间的交互方法

摘要

本发明公开了一种基于Kubernetes的容器云架构,包括处理器,还包括分别与处理器连接的镜像构建模块、数据仓库模块、负载均衡模块、服务发现模块和容器监控模块,其中镜像构建模块,用于提供镜像文件制作、存储和分发服务;数据仓库模块,用于存储和处理集群中数据库的数据信息;负载均衡模块,用于对Kubernetes集群中的各个计算节点进行负载均衡;服务发现模块,用于获取Kuberntes集群中各计算节点动态变化的信息;容器监控模块,用于采集和显示Kubernetes集群各计算节点运行状态的信息。本发明可以方便的应用于需要高可用性及扩展性的容器系统。

著录项

  • 公开/公告号CN106888254A

    专利类型发明专利

  • 公开/公告日2017-06-23

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN201710051697.9

  • 发明设计人 陆璐;涂逸欣;

    申请日2017-01-20

  • 分类号H04L29/08(20060101);H04L12/24(20060101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人陈宏升

  • 地址 510640 广东省广州市天河区五山路381号

  • 入库时间 2023-06-19 02:38:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-23

    专利权的转移 IPC(主分类):H04L29/08 专利号:ZL2017100516979 登记生效日:20220909 变更事项:专利权人 变更前权利人:华南理工大学 变更后权利人:广州陆盛智能科技有限公司 变更事项:地址 变更前权利人:510640 广东省广州市天河区五山路381号 变更后权利人:510705 广东省广州市黄埔区科丰路266号1001房

    专利申请权、专利权的转移

  • 2020-08-18

    授权

    授权

  • 2020-06-02

    著录事项变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20170120

    著录事项变更

  • 2017-07-18

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20170120

    实质审查的生效

  • 2017-06-23

    公开

    公开

说明书

技术领域

本发明涉及云计算技术和容器领域,尤其涉及一种基于Kubernetes的容器云架构及其各模块之间的交互方法。

背景技术

随着移动互联网的迅猛发展,网民人数和上网时长急剧增长,网站的后台架构也在不断的变化以应对日益庞大的访问需求。服务器架构的设计,从最初将Web服务和数据库服务等所有服务署到一台物理服务器上,到后来的数据库服务与Web服务分离,从而提高服务器的性能与安全性,进而到使用负载均衡技术将负载分摊到多台服务器上以减少单台服务器的压力,到最近的自动伸缩方式,通过对现有服务器集群的CPU和内存等指标进行监控,根据访问需求以及制定的伸缩策略,自动增加和移除服务器节点。与传统的手工增删节点相比,这种方式响应快,运维成本小,稳定性高。

然而,使用传统服务器和云计算技术实现自动伸缩架构有很多问题,导致自动伸缩方式一直没有广泛应用。首先,将业务模块部署到服务器所需时间较长,而移动互联网应用要求业务模块必须快速迭代上线,业务模块的频繁部署和更新会浪费大量的人力物力。与此同时,对于海量访问请求,传统服务器或云计算架构无法快速启动新的服务节点,导致访问延迟甚至系统崩溃。因为传统云计算技术的架构基本都采用虚拟机方式,在一些细分领域,其固有缺陷导致应用效果不尽如人意。近年来,随着云计算技术的流行和相关技术的快速发展,云计算技术基础架构的实现不仅仅局限于虚拟机一种选择。

发明内容

本发明的目的在于克服现有技术的缺点与不足,提供一种基于Kubernetes的容器云架构,可以方便的应用于需要高可用性及扩展性的容器系统。

本发明的另一目的在于提供一种基于Kubernetes的容器云架构的各模块之间的交互方法。

本发明的目的通过以下的技术方案实现:

一种基于Kubernetes的容器云架构,包括镜像构建模块、数据仓库模块、负载均衡模块、服务发现模块和容器监控模块,还包括分别与镜像构建模块、数据仓库模块、负载均衡模块、服务发现模块、容器监控模块连接的服务器模块,其中

镜像构建模块,用于提供镜像文件制作、存储和分发服务;

数据仓库模块,用于存储和处理集群中数据库的数据信息;

负载均衡模块,用于对Kubernetes集群中的各个计算节点进行负载均衡;

服务发现模块,用于获取Kuberntes集群中各计算节点动态变化的信息;

容器监控模块,用于采集和显示Kubernetes集群各计算节点运行状态的信息。

所述镜像构建模块为Docker私有库模块,并使用Dockerfile打包技术和Kubernetes文件编排模板。

所述数据仓库模块采用hadoop节点处理Mysql和MongoDB数据。

所述负载均衡模块采用Nginx-Plus代理工具。

所述服务发现模块采用Etcd存储系统。

所述服务器模块采用CentOS操作系统。

本发明的另一目的通过以下的技术方案实现:

一种基于Kubernetes的容器云架构的各模块之间的交互方法,包含以下步骤:

(1)代码更新:开发人员将新的代码镜像上传到镜像构建模块中,运维人员从镜像构建模块中下载新的镜像并加载运行;

(2)负载均衡:请求端发出请求,负载均衡模块将接收到的请求根据负载平衡策略分摊至任一计算节点;计算节点处理请求,并将结果返回至负载均衡模块,负载均衡模块将响应结果返回至请求端;

(3)服务发现:当添加新的计算节点时,会向服务发现模块注册新增计算节点信息;移除计算节点时,首先通知负载均衡模块移除该计算节点,然后从服务发现模块中移除该计算节点的相关信息;

(4)容器监控:将各服务器模块中运行的监控模块作为从节点,容器监控模块作为主节点,从节点周期性的向主节点发送所在服务器模块的指标数据,主节点接收各从节点的指标数据并绘制成图形,显示在系统监控模块所在的主机浏览器上;

(5)数据处理:将hadoop运行在Kubernetes集群中,处理容器应用中获取的海量MongoDB和Mysql数据,以便达到容器系统的数据有效性和可分析性。

本发明与现有技术相比,具有如下优点和有益效果:

1、LXC容器技术因其启动速度快、性能佳等特点,逐渐在云计算领域中占有一席之地。在这之中,Docker是一个开源的应用容器引擎,让开发者可以打包应用以及依赖包到一个可移植的容器中,然后发布到Linux机器上。容器使用沙箱机制,相互之间不会有任何接口,可以很容易地在主机和数据中心中运行。本发明所采用的Kubernetes作为一种管理轻量级容器Docker的引擎,可以方便快速的创建容器并进行容器的全生命周期管理,使得容器技术的普及更进一步。Kubernetes容器集群管理系统的主要功能包括:使用Docker对应用程序进行打包、实例化及运行;以集群的方式运行及管理跨主机的容器;解决位于不同主机之间所运行的容器之间的通信问题等等。再进一步,Kubernetes作为最早的基于Docker的容器调度方案之一,通过成熟的系统架构和强大的横向扩容能力,有望成为最成功的容器调度方案,并服务于未来云计算领域。

2、本发明可以方便的应用于需要高可用性及扩展性的容器系统,同时实现如下功能:(1)监控CentOS服务器及其运行Docker容器的运行状况;(2)根据监控数据利用Kubernetes技术动态伸缩集群;(3)通过构建Docker私有Registry仓库和制定作业管理策略,实现Docker镜像的持续集成,不需重启容器便可更新业务。

附图说明

图1为本发明所述一种基于Kubernetes的容器云架构的结构示意图。

图2为图1所述容器云架构的镜像构建模块的运行过程架构图。

图3为图1所述容器云架构的负载均衡模块的运行过程架构图。

图4为图1所述容器云架构的服务发现模块的运行过程架构图。

图5为图1所述容器云架构的容器监控模块的运行过程架构图。

附图中各部件的标记如下:1-镜像构建模块,2-负载均衡模块,3-服务发现模块,4-容器监控模块。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

如图1至图5,具体如下:

(一)镜像自动部署实现方法

所述镜像构建模块1用于提供一种从开发到部署以及关于作业定义的镜像构建策略,主要支持镜像与源代码自动化结合方法,比较适合于业务更新时对容器镜像的及时更新。镜像构建的流程步骤如图2所示,详细步骤如下:

(1)代码提交

开发人员将各种语言编程的代码提交到版本管理仓库,在本发明中,以SVN为版本管理工具,该工具适用于团队合作的项目开发流程中保证代码的一致性。

(2)定义作业

与此同时,运维人员编写适合项目的Docker镜像打包文件Dockerfile和基于Kubernetes的yaml文件,严格按照Dockerfile编写规则和yaml文件编排规则,创建对应的容器运行规则。

(3)构建镜像文件

根据CI/CD自动化部署流程,以(1)中源代码和(2)中Dockerfile文件为基础,创建容器的image镜像文件,并推送到私有Docker镜像仓库。

(4)运行镜像文件

根据(3)中的镜像文件和(2)中的yaml文件,在Kubernetes中以合理编排的方式运行镜像文件。

上述步骤提供了镜像的存储和运行服务,镜像仓库使用Docker推荐的私有库安装方式,解决了作业定义与源代码相结合的问题。

(二)容器系统扩展方法

所述负载均衡模块2用于对动态变化的集群中各个Kubernetes节点进行负载均衡;其采用Nginx-Plus工具实现,Nginx-Plus是Nginx公司发布的可结合在Kubernetes集群中一种可靠的负载均衡工具,特别适合一些负载较大的Web系统使用。配合Kubernetes,可加强Kubernetes的负载均衡能力,使本容器系统的扩展性得以提高。负载均衡模块如图3所示。

所述服务发现模块3用于实时存储动态变化的Kubernetes集群各节点的信息;其采用Etcd存储系统存储各计算节点信息。Etcd是一个高可用的Key/Value存储系统,主要用于分享配置和服务发现。通过Etcd能够快速有效地增加和移除当前各个Kubernetes节点的信息。服务发现模块如图4所示。

(三)容器监控方法

所述容器监控模块4用于采集、存储和显示Kubernetes集群各节点的容器运行状态信息;CentOS是企业最常用的服务器操作系统,基于该系统,本发明实现了基于Zabbix和cAdvisor结合的容器监控模块。Zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级解决方案;而cAdvisor是一个用于收集、聚合处理和输出容器运行指标的守护进程,通过cAdvisor能获取Kubernetes集群中Docker各种性能数据。在Zabbix中支持Docker,使用Zabbix Docker Monitoring实现容器监控。容器监控系统如图5所示,监控步骤如下:

(1)在Kubernetes主节点部署Zabbix Server,监控主节点,并导入Web管理界面,分发到子节点。

(2)在子节点部署Zabbix Agent,实现各个子节点的主机监控。

(3)在各个Kubernetes节点启动cAdvisor容器,实现主机容器性能的监控。

(4)web可视化界面展示:将得到的监控数据通过HTTP和JSON接口展现在前端。

(四)各模块交互方法

一种基于Kubernetes的Web服务器架构各模块之间的交互方法,包括以下过程:

(1)代码更新:一台主机作为Docker私有库服务器,当业务代码更新时,开发人员将新的代码镜像通过自动化方式上传到运行私有库模块的主机中,每次新增Kubernetes节点时,系统从私有库模块中拉取新的业务镜像并加载运行。如图2所示。

(2)负载均衡:请求端发出http请求,负载均衡模块将接收到的请求根据负载平衡策略分摊至任一Kubernetes节点;接着节点处理请求,并将结果返回至负载均衡模块,负载均衡模块将响应结果返回至请求端。

所述负载均衡模块定期查询所述服务发现模块(Etcd),并根据查询结果更新并重新加载负载均衡模块的配置文件。具体为:负载均衡模块周期性的从服务发现模块拉取最新的Kubernetes节点信息,如图3所示。

(3)服务发现:采用Etcd开源工具实现。当添加新的计算节点时,会向服务发现模块(Etcd)注册新增计算节点信息;移除计算节点时,首先通知负载均衡模块移除该计算节点,然后从服务发现模块中移除该计算节点的相关信息,如图4所示。

(4)容器监控:采用从节点向主节点汇报的“主动”模式。将各服务器模块中运行的监控模块作为从节点,1台主机运行系统监控模块作为主节点,从节点周期性的向主节点发送所在服务器模块的指标数据,如CPU占比和剩余内存等,主节点接收各从节点的指标数据并绘制成图形,显示在系统监控模块所在的主机浏览器上,如图5所示。

(5)数据处理:将hadoop运行在Kubernetes集群中,处理容器应用中获取的大量MongoDB和Mysql数据,以便达到容器系统的数据有效性和可分析性。

(五)本发明方法部署要求

本发明至少需要四台主机:一台主机作为服务发现模块的主机,一台主机作为负载均衡模块的主机,一台主机运行容器监控模块,一台主机作为运行镜像构建模块的服务器,其他主机作为运行服务器模块的节点。各主机运行各自的业务逻辑,一个基于Kubernetes的高可用服务器集群便部署完成。

本发明揭示了一种基于Kubernetes的容器云架构及各模块之间的交互方法,可以方便的应用于需要高可用性及扩展性的容器系统,同时实现如下功能:(1)监控CentOS服务器及其运行Docker容器的运行状况;(2)根据监控数据利用Kubernetes技术动态伸缩集群;(3)通过构建Docker私有Registry仓库和制定作业管理策略,实现Docker镜像的持续集成,并以不需重启容器的方式来更新业务。通过上述功能实现容器系统的高并发性和稳定性。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号