CN117193929A - 一种轻量级容器编排方法、系统及介质 - Google Patents

一种轻量级容器编排方法、系统及介质 Download PDF

Info

Publication number
CN117193929A
CN117193929A CN202310924963.XA CN202310924963A CN117193929A CN 117193929 A CN117193929 A CN 117193929A CN 202310924963 A CN202310924963 A CN 202310924963A CN 117193929 A CN117193929 A CN 117193929A
Authority
CN
China
Prior art keywords
node
server
script
service
orchestration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310924963.XA
Other languages
English (en)
Inventor
李一鸣
夏群峰
钱勇
王伟
李剑磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Supcon Technology Co Ltd
Original Assignee
Zhejiang Supcon Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Supcon Technology Co Ltd filed Critical Zhejiang Supcon Technology Co Ltd
Priority to CN202310924963.XA priority Critical patent/CN117193929A/zh
Publication of CN117193929A publication Critical patent/CN117193929A/zh
Pending legal-status Critical Current

Links

Abstract

本发明公开了一种轻量级容器编排方法、系统及介质,包括如下步骤:获取编排脚本;执行发布命令;代理执行命令并注册服务节点;轮询服务节点是否有变更,若有则更新负载均衡配置;支持基本的容器编排操作,降低技能掌握复杂度,减轻开发运维工作量;功能组件简单,运维难度低;轻量级原则,易于升级和扩展,可以灵活扩展;对比k8s,架构复杂度低,方便运维人员掌握,对个人技能要求低,不存在复杂的网络管理方案,运维人员无需排查复杂的网络问题。

Description

一种轻量级容器编排方法、系统及介质
技术领域
本发明涉及计算机软件架构领域,尤其涉及一种轻量级容器编排方法、系统及介质。
背景技术
随着微服务技术的快速发展,国内有很多企业的IT系统都做了微服务化改造,并结合CloudFoundry、OpenStack等云计算管理平台技术将微应用部署到容器中;随着开源容器管理技术Kubernetes的不断成熟和普及,以及国产软件化的不断推进,多数企业在尝试引入Kubernetes容器管理技术,并逐步将微应用迁移到Kubernetes管理的容器运行。K8s功能丰富强大,但需要运维人员有丰富的场景经验处理组件的各种障碍。所以由于目前k8s体系过重,对运维人员技能要求很高。
例如,一种在中国专利文献上公开的“容器编排引擎资源管理方法及装置、可读介质及电子设备”,其公告号:CN112417051A,公开了包括调用容器编排引擎环境中的对应接口获取各容器编排引擎资源对应的资源信息;依据预设的逻辑映射关系,将各所述资源信息同步至配置管理数据库中,以实现所述配置管理数据库对于各所述容器编排引擎资源的管理;建立业务树,将同步至所述配置管理数据库中全部或部分所述容器编排引擎资源关联至所述业务树的对应节点,并生成资源展示及操作界面,但是该方案完全自主设计,不是开源组件组成,存在技术复杂度高、运维难度大的问题。
发明内容
为了解决k8s体系过重、技术复杂度高、运维难度大的问题,本发明提供一种轻量级容器编排方法、装置及介质,基于分布式架构,在目前复杂的微服务编排场景下提供一种轻量级容器编排解决方案。
为了实现上述目的,本发明提供如下技术方案:
一种轻量级容器编排方法,包括如下步骤:
获取编排脚本;
执行发布命令;
代理执行命令并注册服务节点;
轮询服务节点是否有变更,若有则更新负载均衡配置。获取编排脚本后即确定需要的服务器节点,同时表明需要开始编排;然后执行发布命令,即通过发布命令进行编排,此时向服务器节点的代理发送命令,让成功收到命令的代理获取编排脚本,并根据编排脚本对服务器节点进行操作;在服务器节点根据编排脚本调整后,将服务器节点状态进行注册,也就是说将实现服务器节点的监控;不间断的轮询服务器节点的注册信息,并根据注册信息的变化更新均衡负载配置,实现自动调整路由算法和负载均衡。能够支持基本的容器编排操作,降低技能掌握复杂度,减轻开发运维工作量;功能组件简单,运维难度低;轻量级原则,易于升级和扩展,可以灵活扩展。
作为优选的,执行发布命令包括,将编排脚本中配置持久化到配置库中,筛选并调用可分配节点,传输编排脚本及事件指令到代理。能够实现从配置库中获取编排脚本的配置,并且根据编排脚本中需要的服务器节点进行选取,作出对应指令发送到代理进行下一步配置。
作为优选的,执行发布命令还包括,根据编排脚本中服务名和服务器节点的数据特征筛选服务器节点,数据特征包括代理采集的数据和节点的服务状态。能够根据编排脚本的“任务”和各个服务器节点的实际状态综合选取能够实现本次编排脚本的服务器节点。
作为优选的,代理执行命令并注册服务节点包括,代理执行事件指令同时将编排脚本发送到服务器节点,若服务器节点成功获取编排脚本并执行则将服务器节点注册。能够在该步骤将筛选后的服务器节点执行编排脚本,即根据编排脚本实现服务器节点的编排;并在服务器节点被编排后进行注册,即记录服务器节点的工作变化。
作为优选的,轮询服务节点是否有变更包括,使用第二系统固定时间间隔轮询节点注册所在的第一系统,若第一系统中服务节点是有变更则第二系统动态更新负载服务。通过第二系统不间断的轮询,实现定期获取服务器节点的启动或使用情况;通过第一系统存储服务器节点的变化状态信息,使得不需要每次对所有服务器节点进行询问,实现快速获取服务器节点的变化状态信息。
一种轻量级容器编排系统,包括,节点管理服务器,节点管理服务器连接有多个监听采集器,监听采集器为服务器节点的代理;监听采集器连接有注册中心,注册中心连接有动态负载均衡模块。通过节点管理服务器获取编排脚本,通过监听采集器在节点管理服务器和服务器节点之间传输命令和信息;通过注册中心存储启动的服务器节点的信息;通过动态负载均衡模块根据注册中心的内容进行自动均衡负载。
作为优选的,所述的节点管理服务器包括控制平面,控制平面连接有调度器,调度器连接有API服务器;控制平面包括存储模块,存储模块连接有API接口,存储模块连接有调度模块,存储模块连接有监控模块。能够通过节点管理服务器实现对编排脚本的下达。
作为优选的,所述的监听采集器为服务器节点上的代理程序,所述的监听采集器与API接口通信,所述的监听采集器采集服务器节点的数据特征到控制平面。通过API接口通信,实现控制平面与各个服务器节点的通信。
一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种轻量级容器编排方法。
本发明具有如下优点:
(1)一种轻量级的容易编排方案,支持基本的容器编排操作,降低技能掌握复杂度,减轻开发运维工作量;(2)功能组件简单,运维难度低;轻量级原则,易于升级和扩展,可以灵活扩展;(3)对比k8s,架构复杂度低,方便运维人员掌握,对个人技能要求低,不存在复杂的网络管理方案,运维人员无需排查复杂的网络问题。
附图说明
下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1是本发明中轻量级容器编排方法的架构图。
图2为实施例中为服务发布流程图。
图中:
1-master节点管理服务器;2-Agent监听采集器;3-注册中心;4-动态负载均衡。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图 1所示,在一个较佳的实施例中,本发明公开了一种轻量级容器编排方法,包括如下步骤:
获取编排脚本;
执行发布命令;
代理执行命令并注册服务节点;
轮询服务节点是否有变更,若有则更新均衡负载配置。获取编排脚本后即确定需要的服务器节点,同时表明需要开始编排;然后执行发布命令,即通过发布命令进行编排,此时向服务器节点的代理发送命令,让成功收到命令的代理获取编排脚本,并根据编排脚本对服务器节点进行操作;在服务器节点根据编排脚本调整后,将服务器节点状态进行注册,也就是说将实现服务器节点的监控;不间断的轮询服务器节点的注册信息,并根据注册信息的变化更新均衡负载配置,实现自动调整路由算法和负载均衡。能够支持基本的容器编排操作,降低技能掌握复杂度,减轻开发运维工作量;功能组件简单,运维难度低;轻量级原则,易于升级和扩展,可以灵活扩展。
在使用时,设置节点管理服务器,节点管理服务器实现获取编排脚本和执行发布命令;节点管理服务器连接有Agent监听采集器,Agent监听采集器执行发布的命令,然后通过docker-compose的配置管理来完成服务编排、由于docker-compose是单机编排工具,所以我们需要在其编排能力之上做一些增强,通过scheduler的调度能力,将编排脚本分发到各个服服务节点,使其可以在多个服务节点上执行,再结合注册中心(consul)、nginx动态负载均衡模块、容器化管理工具(Portainer)组合成一种多机集群化的编排方案。
执行发布命令包括,将编排脚本中配置持久化到配置库中,筛选并调用可分配节点,传输编排脚本及事件指令到代理。能够实现从配置库中获取编排脚本的配置,并且根据编排脚本中需要的服务器节点进行选取,作出对应指令发送到代理进行下一步配置。筛选可分配节点包括,根据编排脚本中服务名和服务器节点的数据特征筛选服务器节点,数据特征包括代理采集的数据和节点的服务状态。能够根据编排脚本的“任务”和各个服务器节点的实际状态综合选取能够实现本次编排脚本的服务器节点。
在使用时,根据任务需求和当前集群状态进行匹配和调度,将任务分配到最合适的节点上执行,并使用优先级队列算法,来保证高优先级的任务先被调度。
代理执行命令并注册服务节点包括,代理执行事件指令同时将编排脚本发送到服务器节点,若服务器节点成功获取编排脚本并执行则将服务器节点注册。能够在该步骤将筛选后的服务器节点执行编排脚本,即根据编排脚本实现服务器节点的编排;并在服务器节点被编排后进行注册,即记录服务器节点的工作变化。轮询服务节点是否有变更包括,使用第二系统固定时间间隔轮询节点注册所在的第一系统,若第一系统中服务节点是有变更则第二系统动态更新负载服务。通过第二系统不间断的轮询,实现定期获取服务器节点的启动或使用情况;通过第一系统存储服务器节点的变化状态信息,使得不需要每次对所有服务器节点进行询问,实现快速获取服务器节点的变化状态信息。
在使用时,代理根据编排脚本启动对应的服务器节点后,服务器节点在注册中心注册,并在负载均衡系统的下一次定期轮询后,参与到自动均衡负载中。
一种轻量级容器编排系统,包括,节点管理服务器,节点管理服务器连接有多个监听采集器,监听采集器为服务器节点的代理;监听采集器连接有注册中心,注册中心连接有动态负载均衡模块。所述的节点管理服务器包括控制平面,控制平面连接有调度器,调度器连接有API服务器;控制平面包括存储模块,存储模块连接有API接口,存储模块连接有调度模块,存储模块连接有监控模块。所述的监听采集器为服务器节点上的代理程序,所述的监听采集器与API接口通信,所述的监听采集器采集服务器节点的数据特征到控制平面。
一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种轻量级容器编排方法。
在第二个实施例中,包括使用节点管理服务器实现本方法。
节点管理服务器是整个集群的核心组件,它负责对集群进行管理、监控 和控制。通常包括控制平面、调度器和API服务器等多个子模块。
控制平面(Control Plane)用于协调整个集群状态。它主要包含以下几个组件:
Etcd:一个高可用性的分布式键值存储,用于保存所有集群数据,服务器资源信息等。Etcd提供了事务支持,使得多个操作可以原子化执行。
API Server:提供了RESTful API接口,允许用户和其他组件通过API访问集群。API Server采用HTTP+TLS的方式进行通信,并支持Token认证机制以保证安全性。
Scheduler:根据任务需求和当前集群状态进行匹配和调度,将任务分配到最合适的节点上执行。Scheduler使用的是优先级队列算法,以确保高优先级的任务先被调度。
Controller Manager:负责监控集群状态,并处理与该状态相关的事件。Controller Manager可以自动扩展或缩小副本数量,以满足不同的工作负载需求。
Agent监听采集器:Agent是运行在每个节点上的代理程序,它与Master的api-server组件进行通信,采集服务器的硬件资源信息及容器运行状态信息给master。并负责在每个节点上启动、停止、重启、销毁容器等操作。代理使用Docker Compose定义和管理多个相关联的Docker容器。
Docker Compose是一种工具,它允许用户通过YAML文件描述容器化服务的组成部分,并指定它们之间的关系和依赖。Docker Compose使用单机模式来运行这些服务。
包括使用注册中心实现注册服务节点。
注册中心:作为服务发现和注册中心,Consul提供了查询接口,使消费者能够快速地发现并调用这些服务。Consul支持多种后端服务器发现机制,如Consul、Zookeeper、Etcd等,并提供了一些高级功能,如自定义健康检查、故障转移、权重控制等。consul在架构中的作用类似于k8s的service功能,服务启动注册到consul,停止从consul中移除。以便支持后续的动态负载均衡。
动态负载均衡:使用Nginx-upsync模块通过监控各个服务实现动态负载均衡,同时也可以调用部署在其他服务器上的第三方服务。它能够以高效可靠的方式管理大规模复杂的负载均衡集群,广泛用于分布式应用程序和云计算环境中。
nginx-upsync-module是Nginx的一个插件,它可以通过监控各个服务实现动态负载均衡,同时能够调用未在自己服务器上的第三方服务。该插件的使用是基于nginx-upstream和ngx_http_upstream_module的模型,将上游服务器列表作为配置文件中的一部分,并自动更新上游服务器的状态信息。此外,Nginx-upsync还支持多种数据源,如Consul、Etcd等,并提供了高级功能,如权重控制、故障转移、健康检查等。
容器化管理工具:Portainer是一款轻量级的Docker管理工具,提供了一个图形化的Web界面,可以帮助用户简化Docker容器的部署、监控和维护。它支持多种Docker主机、Swarm集群和Kubernetes集群,并提供了一些高级功能,如用户身份验证、团队协作、事件日志、通知等。
Portainer通过RESTful API接口与Docker Daemon通信,并提供了一个友好的WebGUI界面,让用户能够轻松地创建、启动、停止和删除Docker容器还有监控容器,也可以查看容器状态、日志和统计信息。它支持多种Docker主机、Swarm集群和Kubernetes集群,并提供了多种操作方式,如创建容器、映像、卷等。此外,Portainer还提供了一些高级功能,如用户身份验证、团队协作、事件日志、通知等,以满足不同用户的需求,还支持导入/导出容器和镜像、管理网络和数据卷、设置标签和注释等功能,以帮助用户更好地组织和管理Docker资源。
图1是整个编排的架构方案,图中这些组件相互配合,共同构建了一个完整的容器编排解决方案。包括master节点管理服务器(Master),master节点管理服务器连接有agent监听采集器,agent监听采集器连接有注册中心(consul)3及动态负载均衡(nginx)4。
其工作流程如下:
首先编写docker-compose编排脚本。
完成之后在master节点上执行发布命令,master首先会将配置持久化到配置库中,然后scheduler组件会根据发布的服务名、agent采集的数据、服务状态自动筛选符合算法的服务器节点,传送指令及docker-compose脚本给agent。
agent接收到事件后,接收docker-compose脚本,并执行事件指令,指令目前支持:启动,停止,重启,删除等。
服务启动完成之后会注册到consul上,代表服务可用状态。
nginx upsync会每间隔1秒轮询查询consul上的服务节点是否有变更,如果有,会自动更新负载均衡配置,而无需重启nginx。
服务之间通过nginx均衡均衡能力就能够实现类似k8s的service路由能力,还能动态调整路由算法。
Master通过API server组件与各个节点的agent进行通信,一方面要采集服务器的资源信息,一方面要检查服务节点上的服务运行状态。Agent负责接收编排脚本,在每个节点上启动、停止、重启、销毁容器等操作,并使用Docker Compose定义和管理多个相关联的Docker容器。Consul提供了查询接口,使消费者能够快速地发现并调用这些服务,并支持多种后端服务器发现机制,如Consul、Zookeeper、Etcd等,并提供了一些高级功能,如自定义健康检查、故障转移、权重控制等。Nginx-upsync模块通过扫描consul实现动态负载均衡。Portainer提供了一个方便实用的管理界面,可以帮助用户简化Docker容器的部署、监控和维护。所有这些组件协作,为用户提供了一个高效、可靠、易于使用的容器编排解决方案。
同时,以上所述的容器编排解决方案是被称为轻量级的,因为它们使用的组件都相对较小巧、功能相对单一,且部署和使用都比较简单。例如: Agent只需要在每个节点上运行一个程序即可,不需要安装任何其他的软件;Consul作为服务发现和注册中心,只需要在几台服务器上安装并运行即可,而且Consul本身具有很好的可扩展性; Nginx-upsync模块通过监控各个服务实现动态负载均衡,不需要额外的负载均衡器等设备;Portainer提供了一个轻量级的Docker管理工具,使用简单易懂。相比于更加庞大、复杂的容器编排工具,这种轻量级的容器编排解决方案具有更小的规模、更少的依赖关系和更高的灵活性,能够快速满足用户的需求,并可以随时根据业务需求进行升级和扩展。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (9)

1.一种轻量级容器编排方法,其特征在于,包括如下步骤:
获取编排脚本;
执行发布命令;
代理执行命令并注册服务节点;
轮询服务节点是否有变更,若有则更新均衡负载配置。
2.根据权利要求1所述的一种轻量级容器编排方法,其特征在于,执行发布命令包括,将编排脚本中配置持久化到配置库中,筛选并调用可分配节点,传输编排脚本及事件指令到代理。
3.根据权利要求2所述的一种轻量级容器编排方法,其特征在于,执行发布命令还包括,根据编排脚本中服务名和服务器节点的数据特征筛选服务器节点,数据特征包括代理采集的数据和节点的服务状态。
4.根据权利要求2或3所述的一种轻量级容器编排方法,其特征在于,代理执行命令并注册服务节点包括,代理执行事件指令同时将编排脚本发送到服务器节点,若服务器节点成功获取编排脚本并执行则将服务器节点注册。
5.根据权利要求2或3所述的一种轻量级容器编排方法,其特征在于,轮询服务节点是否有变更包括,使用第二系统固定时间间隔轮询节点注册所在的第一系统,若第一系统中服务节点是有变更则第二系统动态更新负载服务。
6.一种轻量级容器编排系统,适用于如权利要求1至5任一项所述的一种轻量级容器编排方法,其特征在于,包括,节点管理服务器,节点管理服务器连接有多个监听采集器,监听采集器为服务器节点的代理;监听采集器连接有注册中心,注册中心连接有动态负载均衡模块。
7.根据权利要求6所述的一种轻量级容器编排系统,其特征在于,所述的节点管理服务器包括控制平面,控制平面连接有调度器,调度器连接有API服务器;控制平面包括存储模块,存储模块连接有API接口,存储模块连接有调度模块,存储模块连接有监控模块。
8.根据权利要求7所述的一种轻量级容器编排系统,其特征在于,所述的监听采集器为服务器节点上的代理程序,所述的监听采集器与API接口通信,所述的监听采集器采集服务器节点的数据特征到控制平面。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的一种轻量级容器编排方法。
CN202310924963.XA 2023-07-26 2023-07-26 一种轻量级容器编排方法、系统及介质 Pending CN117193929A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310924963.XA CN117193929A (zh) 2023-07-26 2023-07-26 一种轻量级容器编排方法、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310924963.XA CN117193929A (zh) 2023-07-26 2023-07-26 一种轻量级容器编排方法、系统及介质

Publications (1)

Publication Number Publication Date
CN117193929A true CN117193929A (zh) 2023-12-08

Family

ID=88991377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310924963.XA Pending CN117193929A (zh) 2023-07-26 2023-07-26 一种轻量级容器编排方法、系统及介质

Country Status (1)

Country Link
CN (1) CN117193929A (zh)

Similar Documents

Publication Publication Date Title
CN108924217B (zh) 一种分布式云系统自动化部署方法
CN111506412B (zh) 基于Airflow的分布式异步任务构建、调度系统及方法
CN107229520B (zh) 一种数据中心操作系统
WO2021017301A1 (zh) 基于Kubernetes集群的管理方法、装置及计算机可读存储介质
JP5988621B2 (ja) 高負荷のビジネスプロセスのスケーラビリティ
CN111274001B (zh) 微服务管理平台
CN102868736B (zh) 一种云计算监控框架设计及实现方法及云计算处理设备
WO2016045403A1 (zh) 运行环境的配置方法及装置、系统
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN113569987A (zh) 模型训练方法和装置
US10498817B1 (en) Performance tuning in distributed computing systems
CN111614729A (zh) 对kubernetes容器集群的控制方法、装置及电子设备
CN112288423A (zh) 一种分布式框架的聚合支付方法和系统
CN112437129B (zh) 集群的管理方法及集群的管理装置
CN113742031A (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN110502392A (zh) 云平台管理和监控系统
US11765120B2 (en) Message queue architecture and interface for a multi-application platform
CN113742033A (zh) 一种kubernetes集群联邦系统及其实现方法
CN112230987A (zh) 一种分布式模块化插件框架实现系统及方法
WO2018146671A1 (en) Dynamically adaptive cloud computing infrastructure
CN115237547B (zh) 一种非侵入式hpc计算集群的统一容器集群托管系统和方法
CN116155978A (zh) 多注册中心适配方法、装置、电子设备及存储介质
CN117193929A (zh) 一种轻量级容器编排方法、系统及介质
US11269618B1 (en) Client device support for incremental offline updates
CN108696550A (zh) 快速构建和复制云的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination