CN111666128B - 一种容器集群组建系统及方法 - Google Patents
一种容器集群组建系统及方法 Download PDFInfo
- Publication number
- CN111666128B CN111666128B CN202010449401.0A CN202010449401A CN111666128B CN 111666128 B CN111666128 B CN 111666128B CN 202010449401 A CN202010449401 A CN 202010449401A CN 111666128 B CN111666128 B CN 111666128B
- Authority
- CN
- China
- Prior art keywords
- cluster
- container
- node
- information
- nodes
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种容器集群组建的方法,包括:获取集群分配的节点信息,为集群中的节点分配宿主机和端口;将集群的配置信息传入容器,所述集群的配置信息包括节点信息、宿主机分配信息和端口信息;根据所述集群的配置信息在所述容器内组建集群。容器集群组建简便易行,利于小规模容器集群的组建;对环境依赖小,便于快速搭建。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种容器集群组建系统及方法。
背景技术
容器是一种操作系统层面的虚拟化技术,用于隔离进程,使进程独立于宿主和其它的进程。Docker是一种开源的应用容器引擎,在容器的基础上,进行了进一步的封装,应用于文件系统、网络互联或进程隔离等方面,极大的简化了容器的创建和维护,与虚拟机技术相比,Docker更为轻便和快捷。因此企业系统中的计算机服务器资源越来越倾向于使用Docker来进行管理。
目前广泛使用的Docker集群资源管理系统较为庞大,在相对较小规模的集群资源管理的情况下,使计算机系统的运维复杂度大幅上升。
发明内容
为解决上述技术问题,提供一种简便易行的容器集群组建系统及方法。
一种容器集群组建方法,所述方法包括:获取集群分配的节点信息,为集群中的节点分配宿主机和端口;将集群的配置信息传入容器,所述集群的配置信息包括节点信息、宿主机分配信息和端口信息;根据所述集群的配置信息在所述容器内组建集群。
优选的,所述节点信息包括节点列表、节点名称和容器的镜像名称。
优选的,将集群的配置信息传入容器的方法包括:将集群的配置信息设置为启动命令的参数;通过启动命令启动容器,并将启动命令的参数传给所启动的容器。
优选的,为节点分配宿主机的方法包括:获取宿主机的资源使用情况并进行排序;按资源使用少到资源使用多的顺序为节点分配宿主机和端口;获取宿主机的IP地址,并保存在节点的节点变量中;获取每个节点的节点变量,并将所有节点的IP地址保存在每个节点的环境变量中。
优选的,本发明还包括获取端口值的方法:监听节点所分配的端口,并获取端口值;将端口值保存在节点的端口变量中;获取每个节点的端口变量,并将所有节点的端口值保存在每个节点的环境变量中。
优选的,获取宿主机的动态端口的方法包括:为容器绑定监听端口,通过监听端口监听所分配的端口和获取宿主机分配的端口值。
优选的,宿主机分配信息包括所有节点的IP地址,端口信息包括所有节点的端口值,将集群的配置信息传入容器的方法包括:通过entrypoint命令将节点信息和环境变量传递给docker run命令的参数;根据所述参数在节点所分配的宿主机上执行docker run命令,启动容器并将所述参数传递给容器;根据所述参数中的节点信息和环境变量在所述容器内组建集群。
优选的,所述节点信息包括容器的镜像名称,根据镜像名称通过docker run命令启动容器,并将所述参数传递给所启动的容器。
优选的,根据所述参数中节点信息和环境变量在所述容器内组建集群的方法包括:根据所述参数通过容器的主进程获取节点启动所需文件并启动节点程序;根据所述参数中的节点信息和环境变量通过节点程序组建集群。
本发明还提供一种容器集群组建系统,包括获取模块、分配模块、入口模块和集群模块,所述获取模块用于获取集群分配的节点信息;所述分配模块用于为集群中的节点分配宿主机和端口;所述入口模块用于将集群的配置信息传入容器内,所述集群的配置信息包括节点信息、宿主机分配信息和端口信息;所述集群模块,用于根据所述集群的配置信息在所述容器内组建集群。
与现有技术相比本发明的有益效果为:1.容器集群组建简便易行,利于小规模容器集群的组建;2.对环境依赖小,便于快速搭建容器集群。
附图说明
图1是容器集群组建方法的流程图;
图2是集群的配置信息传给容器的方法流程图;
图3是具体实施例的流程图;
图4是容器集群组建系统的逻辑框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
一种容器集群组建方法,如图1所示,所述方法包括:
步骤101:获取集群分配的节点信息,为集群中的节点分配宿主机和端口。所述节点信息可以包括节点列表、节点名称和容器的镜像名称。将节点分配到具体的宿主机上,节点或容器通过宿主机及端口进行通讯。容器的镜像名称可以为容器提供启动模板。
步骤102:将集群的配置信息传入容器,所述集群的配置信息包括节点信息、宿主机分配信息和端口信息。
步骤103:根据所述集群的配置信息在所述容器内组建集群。
本发明的容器集群组建的方法使容器集群组建简单易行,利于小规模容器集群的组建。与现有的容器集群组建相比,不需要搭建大量的环境或大量修改计算机环境,减小了对环境的依赖,便于快速搭建容器集群。
如图2所示,步骤102中将集群的配置信息传入容器的方法可以包括:
步骤201:将集群的配置信息设置为启动命令的参数。
步骤202:通过启动命令启动容器,并将启动命令的参数传给所启动的容器。在容器启动的过程中将集群的配置信息传递给容器。
在一个具体实施例中,如图3所示,步骤101所述的为节点分配宿主机的方法可以包括:
步骤301:获取宿主机的资源使用情况并进行排序。具体的资源使用情况排序方法可以是:设定CPU、内存和磁盘资源的权重系数,获取此三类资源的使用百分比后分别乘其权重系数后累加获得一个排序数字,以排序数字由小到大进行排序,排序数字小则宿主机的资源使用少。其中,磁盘资源可以包括指定目录下的资源。
步骤302:按资源使用少到资源使用多的顺序为节点分配宿主机。即优先将节点分配给资源使用少的宿主机。可以按节点列表的顺序为节点分配宿主机,如果宿主机数量小于节点数量,可以循环分配,即一个宿主机可以分配多个节点。
步骤303:获取宿主机的IP地址,并保存在节点的节点变量中。具体的,将宿主机的IP地址赋值给节点变量HOST_node1。
步骤304:获取每个节点的节点变量,并将所有节点的IP地址保存在每个节点的环境变量中。例如,集群中有两个节点,两个节点的变量分别为node1=1.1.1.2和node2=1.1.1.3,每个节点中都有环境变量HOST_node1=1.1.1.2和HOST_node2=1.1.1.3。可以通过获取节点变量的值获取节点的IP地址。
本发明还包括获取端口值的方法:
步骤305:监听节点所分配的端口,并获取端口值。具体的,可以为容器绑定监听端口,通过监听端口监听所分配的端口和获取宿主机分配的端口值。在一个具体实施例中,通过监听动态端口的程序,设定bind端口为0,交由宿主机的操作系统动态分配端口,宿主机分配端口后获取端口值,并关闭该程序,只保留该端口号。
步骤306:将端口值保存在节点的端口变量中。具体的,将端口值赋值给端口变量port_name。
步骤307:获取每个节点的端口变量,并将所有节点的端口值保存在每个节点的环境变量中。与宿主机的IP地址相似,每个节点的环境变量包括所有节点的端口值。可以通过获取端口变量的值获取节点端口值。
所述宿主机分配信息包括所有节点的IP地址,所述端口信息包括所有节点的端口值,即宿主机分配信息和端口信息保存在环境变量中。步骤102中,将集群的配置信息传入容器的方法包括:
步骤308:通过entrypoint命令将节点信息和环境变量传递给docker run命令的参数。
步骤309:根据所述参数在节点所分配的宿主机上执行docker run命令,启动容器并将所述参数传递给容器。
步骤310:根据所述参数中的节点信息和环境变量在所述容器内组建集群。所述节点信息包括容器的镜像名称,根据镜像名称通过docker run命令启动容器,并将所述参数传递给所启动的容器。容器的镜像名称可以为容器提供生成模板。
具体的,步骤310中,根据所述参数中的节点信息和环境变量在所述容器内组建集群的方法包括:根据所述参数通过容器的主进程获取节点启动所需文件并启动节点程序;根据所述参数中的节点信息和环境变量通过节点程序组建集群。所述主进程可以是model_main.py。节点程序用于获取所述参数中的集群配置信息,并根据集群配置信息组建集群。
本发明还提供一种容器集群组建系统,如图4所示,包括获取模块1、分配模块2、入口模块3和集群模块4,获取模块1用于获取集群分配的节点信息;分配模块2用于为集群中的节点分配宿主机和端口;入口模块3用于将集群的配置信息传入容器内,所述集群的配置信息包括节点信息、宿主机分配信息和端口信息;集群模块4,用于根据所述集群的配置信息在所述容器内组建集群。
本发明中的容器还可以包括Docker容器。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (9)
1.一种容器集群组建方法,其特征在于,所述方法包括:
获取集群分配的节点信息,为集群中的节点分配宿主机和端口;
将集群的配置信息传入容器,所述集群的配置信息包括节点信息、宿主机分配信息和端口信息;
根据所述集群的配置信息在所述容器内组建集群;
其中,为节点分配宿主机的方法包括:
获取宿主机的资源使用情况并进行排序;
按资源使用少到资源使用多的顺序为节点分配宿主机和端口;
获取宿主机的IP地址,并保存在节点的节点变量中;
获取每个节点的节点变量,并将所有节点的IP地址保存在每个节点的环境变量中。
2.根据权利要求1所述的容器集群组建方法,其特征在于,所述节点信息包括节点列表、节点名称和容器的镜像名称。
3.根据权利要求1所述的容器集群组建方法,其特征在于,将集群的配置信息传入容器的方法包括:
将集群的配置信息设置为启动命令的参数;
通过启动命令启动容器,并将启动命令的参数传给所启动的容器。
4.根据权利要求1所述的容器集群组建方法,其特征在于,还包括获取端口值的方法:
监听节点所分配的端口,并获取端口值;
将端口值保存在节点的端口变量中;
获取每个节点的端口变量,并将所有节点的端口值保存在每个节点的环境变量中。
5.根据权利要求4所述的容器集群组建方法,其特征在于,获取宿主机的动态端口的方法包括:
为容器绑定监听端口,通过监听端口监听所分配的端口和获取宿主机分配的端口值。
6.根据权利要求4所述的容器集群组建方法,其特征在于,所述宿主机分配信息包括所有节点的IP地址,所述端口信息包括所有节点的端口值,将集群的配置信息传入容器的方法包括:
通过entrypoint命令将节点信息和环境变量传递给docker run命令的参数;
根据所述参数在节点所分配的宿主机上执行docker run命令,启动容器并将所述参数传递给容器;
根据所述参数中的节点信息和环境变量在所述容器内组建集群。
7.根据权利要求6所述的容器集群组建方法,其特征在于,所述节点信息包括容器的镜像名称,根据镜像名称通过docker run命令启动容器,并将所述参数传递给所启动的容器。
8.根据权利要求6所述的容器集群组建方法,其特征在于,根据所述参数中的节点信息和环境变量在所述容器内组建集群的方法包括:
根据所述参数通过容器的主进程获取节点程序启动所需文件并启动节点程序;
根据所述参数中的节点信息和环境变量通过节点程序组建集群。
9.一种容器集群组建系统,其特征在于,所述容器集群组建系统用于实现如权利要求1-8任一项所述的容器集群组建方法,包括获取模块、分配模块、入口模块和集群模块,
所述获取模块用于获取集群分配的节点信息;
所述分配模块用于为集群中的节点分配宿主机和端口;所述分配模块用于获取宿主机的资源使用情况并进行排序;按资源使用少到资源使用多的顺序为节点分配宿主机和端口;获取宿主机的IP地址,并保存在节点的节点变量中;获取每个节点的节点变量,并将所有节点的IP地址保存在每个节点的环境变量中;
所述入口模块用于将集群的配置信息传入容器内,所述集群的配置信息包括节点信息、宿主机分配信息和端口信息;
所述集群模块,用于根据所述集群的配置信息在所述容器内组建集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010449401.0A CN111666128B (zh) | 2020-05-25 | 2020-05-25 | 一种容器集群组建系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010449401.0A CN111666128B (zh) | 2020-05-25 | 2020-05-25 | 一种容器集群组建系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666128A CN111666128A (zh) | 2020-09-15 |
CN111666128B true CN111666128B (zh) | 2023-07-04 |
Family
ID=72384583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010449401.0A Active CN111666128B (zh) | 2020-05-25 | 2020-05-25 | 一种容器集群组建系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666128B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729126A (zh) * | 2016-08-12 | 2018-02-23 | 中国移动通信集团浙江有限公司 | 一种容器云的任务调度方法和装置 |
CN108376100A (zh) * | 2017-01-31 | 2018-08-07 | 慧与发展有限责任合伙企业 | 基于安全的容器调度 |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
CN108762923A (zh) * | 2018-04-11 | 2018-11-06 | 哈尔滨工程大学 | 采用差分进化算法作为Docker Swarm调度策略的方法 |
CN109271233A (zh) * | 2018-07-25 | 2019-01-25 | 上海数耕智能科技有限公司 | 基于Kubernetes组建Hadoop集群的实现方法 |
CN109947451A (zh) * | 2019-03-25 | 2019-06-28 | 北京思特奇信息技术股份有限公司 | 一种集群应用文件更新方法、系统、介质及设备 |
CN110191007A (zh) * | 2019-06-27 | 2019-08-30 | 广州虎牙科技有限公司 | 节点管理方法、系统及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11329885B2 (en) * | 2018-06-21 | 2022-05-10 | International Business Machines Corporation | Cluster creation using self-aware, self-joining cluster nodes |
-
2020
- 2020-05-25 CN CN202010449401.0A patent/CN111666128B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729126A (zh) * | 2016-08-12 | 2018-02-23 | 中国移动通信集团浙江有限公司 | 一种容器云的任务调度方法和装置 |
CN108376100A (zh) * | 2017-01-31 | 2018-08-07 | 慧与发展有限责任合伙企业 | 基于安全的容器调度 |
CN108388472A (zh) * | 2018-03-01 | 2018-08-10 | 吉林大学 | 一种基于Docker集群的弹性任务调度系统及方法 |
CN108762923A (zh) * | 2018-04-11 | 2018-11-06 | 哈尔滨工程大学 | 采用差分进化算法作为Docker Swarm调度策略的方法 |
CN109271233A (zh) * | 2018-07-25 | 2019-01-25 | 上海数耕智能科技有限公司 | 基于Kubernetes组建Hadoop集群的实现方法 |
CN109947451A (zh) * | 2019-03-25 | 2019-06-28 | 北京思特奇信息技术股份有限公司 | 一种集群应用文件更新方法、系统、介质及设备 |
CN110191007A (zh) * | 2019-06-27 | 2019-08-30 | 广州虎牙科技有限公司 | 节点管理方法、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111666128A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200081731A1 (en) | Method, system and apparatus for creating virtual machine | |
CN108293041B (zh) | 分布式系统、资源容器的分配方法、资源管理器及应用控制器 | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
CN110098946B (zh) | 虚拟化网元设备的部署方法以及装置 | |
US7945913B2 (en) | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system | |
KR102193012B1 (ko) | 분산 처리 시스템 및 이의 동작 방법 | |
CN108924268B (zh) | 一种容器云服务系统及pod创建方法、装置 | |
US20110239216A1 (en) | Service providing system, a virtual machine server, a service providing method, and a program thereof | |
WO2012068867A1 (zh) | 虚拟机管理系统及其使用方法 | |
CN107483364A (zh) | 一种Hadoop Yarn网络带宽资源调度、隔离方法和装置 | |
CN112099913A (zh) | 一种基于OpenStack实现虚拟机安全隔离的方法 | |
CN111857951A (zh) | 容器化部署平台及部署方法 | |
CN114518955A (zh) | 一种基于kubernetes的Flink云原生部署架构方法及系统 | |
CN114979286A (zh) | 容器服务的访问控制方法、装置、设备及计算机存储介质 | |
CN106302075B (zh) | 一种创建逻辑卷的方法及装置 | |
Wu et al. | ABP scheduler: Speeding up service spread in docker swarm | |
CN107967165B (zh) | 基于lvm的虚拟机离线迁移方法 | |
CN111666128B (zh) | 一种容器集群组建系统及方法 | |
CN111294220B (zh) | 基于nginx的网络隔离配置方法和装置 | |
CN109298949B (zh) | 一种分布式文件系统的资源调度系统 | |
CN109005071B (zh) | 一种决策部署方法和调度设备 | |
CN116680078A (zh) | 云计算资源调度方法、装置、设备以及计算机存储介质 | |
CN112468458B (zh) | 一种基于neutron分层机制的调度方法 | |
CN110300192A (zh) | 一种根据ip分配表更新分布式训练任务连接参数的方法 | |
CN114647488A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |