CN112948065A - 基于Kubernetes的调度自动化***管理装置 - Google Patents
基于Kubernetes的调度自动化***管理装置 Download PDFInfo
- Publication number
- CN112948065A CN112948065A CN201911171610.7A CN201911171610A CN112948065A CN 112948065 A CN112948065 A CN 112948065A CN 201911171610 A CN201911171610 A CN 201911171610A CN 112948065 A CN112948065 A CN 112948065A
- Authority
- CN
- China
- Prior art keywords
- pod
- application
- instance
- duty
- pod instance
- 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.)
- Granted
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Kubernetes的调度自动化***管理装置,包括***配置管理模块、Pod外的运行管理模块和Pod内的运行管理模块,其中,***配置管理用于对应用、应用包含的实时数据库和应用进程、应用分片进行管理,生成Pod定义文件以及数据库etcd中的信息;Pod外的运行管理模块用于管理整个***,应用或应用分片,和应用或应用分片对应的某个Pod实例的启动和停止,以及值班备用状态的监视及切换;Pod内的运行管理模块用于管理Pod对应的应用或应用分片所包含的实时数据库服务进程及应用进程的启停和监视。本发明为基于Kubernetes的调度自动化***的稳定可靠运行提供有力保障,具有广泛的推广价值。
Description
技术领域
本发明涉及电力调度自动化***管理技术领域,具体为一种基于Kubernetes的调度自动化***管理装置。
背景技术
随着云计算的蓬勃发展,Docker容器化技术当前已经被很多企业所采用。Kubernetes作为当前被业界广泛认可的Docker分布式***解决方案,具有可扩展的资源自动调度机制及弹性扩展等诸多优点。目前,Kubernetes已开始作为电力调度自动化***的平台,因此如何对基于Kubernetes的调度自动化***进行管理,成为目前亟需解决的问题。
发明内容
本发明的目的在于提供一种基于Kubernetes的调度自动化***管理装置,结合Kubernetes的特性和调度自动化***的特点,给出了基于Kubernetes的调度自动化***的***管理解决方案,为基于Kubernetes的调度自动化***的稳定可靠运行提供有力保障。
为达到上述目的,本发明采用的技术方案如下:
本发明实施例提供一种基于Kubernetes的调度自动化***管理装置,包括***配置管理模块、Pod外的运行管理模块和Pod内的运行管理模块;
所述***配置管理用于对应用、应用包含的实时数据库和应用进程、应用分片进行管理,生成应用对应的Pod定义文件以及存放在键值对数据库etcd中的信息;
所述Pod外的运行管理模块用于管理整个***的启动和停止,应用或应用分片的启动和停止,应用或应用分片对应的某个Pod实例的停止,以及应用或应用分片的值班备用状态的监视及切换;
所述Pod内的运行管理模块用于管理Pod对应的应用或应用分片所包含的实时数据库服务进程及应用进程的启停,以及监视实时数据库服务进程及应用进程。
进一步的,所述Pod外的运行管理模块具体用于,
调用容器服务API,启动应用或应用分片对应的Pod;
调用容器服务API,获取应用或应用分片对应的Pod的各个实例信息;
根据应用或应用分片的态设定Pod实例的运行状态;
把各Pod实例的运行状态写入etcd数据库中。
进一步的,所述根据应用或应用分片的态设定Pod实例的运行状态,具体为,
对于运行态或仿真态的应用或应用分片,把其中的一个Pod实例的运行状态设定为值班,其余Pod实例的运行状态设定为备用;对于研究态的应用,把各Pod实例的运行状态都设定为研究。
进一步的,所述Pod外的运行管理模块具体还用于,
调用容器服务API,获取应用或应用分片对应的各Pod实例信息;
从etcd数据库中读取该应用或应用分片的各Pod实例信息;
将从容器服务API和etcd数据库中获取到的Pod实例信息进行比对,判断原值班Pod实例是否在运行;
根据从容器服务API和etcd数据库中获取到的Pod实例信息比对结果及原值班Pod实例的运行状态更新etcd数据库。
进一步的,所述根据从容器服务API和etcd数据库中获取到的Pod实例信息比对结果及原值班Pod实例的运行状态更新etcd数据库,具体为,
若原值班Pod实例不在运行,则从当前运行的Pod实例中选出一个做值班;
更新etcd数据库中的应用或应用分片的Pod实例信息,并把不在运行的Pod实例从etcd数据库中删除以及将新的Pod实例信息增加进etcd数据库中;
若原值班Pod实例在运行,则原值班Pod实例仍然值班,把不在运行的Pod实例从etcd数据库中删除以及将新的Pod实例信息增加进etcd数据库中。
进一步的,所述从当前运行的Pod实例中选出一个做值班,具体为:
从容器服务API获取到的Pod实例中选出与从etcd数据库中获取到的同名的运行状态是备用的Pod实例,从中选出和原值班Pod实例不在同一个节点的Pod实例,若运行状态是备用并且和原值班Pod实例不在同一个节点的Pod实例有多个,则从中任选一个做值班;若运行状态是备用的Pod实例中不存在和原值班Pod实例不在同一个节点的Pod实例,则任选一个运行状态是备用的Pod实例做值班;如果通过上述过程没有选出值班节点,则从容器服务API获取到的Pod实例中任选一个不在etcd数据库中的Pod实例做值班。
进一步的,所述Pod外的运行管理模块部署在3个或5个节点上,其中一个节点是Pod外的运行管理模块的主节点,其余节点是备用节点,当主节点故障时,其中一个备用节点升为主节点。
进一步的,所述Pod内的运行管理模块具体用于,
监视应用进程是否在运行,若不在运行,对于非关键进程,则启动该非关键进程;对于关键进程,则发送告警信息;
根据关键进程的运行状态进行Pod实例的运行状态的切换及Pod实例的中止。
进一步的,所述根据关键进程的运行状态进行Pod实例的运行状态的切换及Pod实例的中止,具体为,
如果不在运行的关键进程的故障次数超过配置值,则中止该Pod实例;
当不在运行的关键进程的故障次数没有超过配置值时,如果该Pod实例的运行状态是值班,则将该Pod实例的运行状态切换为备用,并从运行状态是备用的Pod实例中选出一个Pod实例做值班,然后启动该应用进程,如果该Pod实例的运行状态不是值班,则启动该应用进程。
进一步的,所述从运行状态是备用的Pod实例中选出一个Pod实例做值班,具体为,
任选一个和本Pod实例不在同一个节点的状态是备用的Pod实例做值班,若状态是备用的Pod实例都和本Pod实例在同一个节点,则任选一个状态是备用的Pod实例做值班。
本发明的有益效果是:本发明结合Kubernetes的特性和调度自动化***的特点,给出了基于Kubernetes的调度自动化***的***管理解决方案,为基于Kubernetes的调度自动化***的稳定可靠运行提供有力保障,具有广泛的推广、应用价值。
附图说明
图1为本发明的基于Kubernetes的调度自动化***管理装置的结构框图;
图2为本发明Pod外的运行管理模块对应用或应用分片的启动流程图;
图3为本发明Pod外的运行管理模块对应用或应用分片的值班备用状态的监视流程图;
图4为本发明Pod内的运行管理模块对于应用进程的监视流程图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
参照图1,本发明提供一种基于Kubernetes的调度自动化***管理装置,包括:***配置管理模块、Pod外的运行管理模块和Pod内的运行管理模块。
***配置管理的对象包括应用、应用包含的实时数据库和应用进程、应用分片,同一个应用可划分为若干个应用分片,每个应用分片处理该应用的一部分数据;***配置管理的结果包括生成应用对应的Pod定义文件以及存放在键值对数据库etcd中的信息。
Pod外的运行管理模块负责整个***的启动和停止、应用或应用分片的启动和停止、应用或应用分片对应的某个Pod实例的停止,应用或应用分片的值班备用状态的监视及切换等。
Pod外的运行管理模块部署在3个或5个节点上,其中一个节点是Pod外的运行管理模块的主节点,进行启停及监视操作;其它节点是备用节点,当主节点故障时,其中一个备用节点升为主节点。
Pod内的运行管理模块负责该Pod对应的应用或应用分片所包含的实时数据库服务进程及应用进程的启停,并且负责监视这些实时数据库服务进程及应用进程。
参照图2,应用或应用分片的启动包括以下步骤:
A、调用容器服务API,启动该应用或应用分片对应的Pod;
B、调用容器服务API,获取该应用或应用分片对应的Pod的各个实例信息;
C、对于运行态或仿真态的应用或应用分片,把其中的一个Pod实例的运行状态确定为值班,其它Pod实例的运行状态确定为备用;对于研究态的应用,把各Pod实例的运行状态都设定为研究;然后把各Pod实例的运行状态写入etcd数据库中。
参照图3,应用或应用分片的值班备用状态的监视包括以下步骤:
D、调用容器服务API,获取该应用或应用分片对应的各Pod实例信息;
E、从etcd数据库中读取该应用或应用分片的各Pod实例信息;
F、将步骤D和E中获取到的信息相比对,判断原值班Pod实例是否在运行,若不在运行,则从当前运行的Pod实例中选出一个做值班,选值班的方法是:从步骤D获取到的Pod实例中选出在步骤E中的同名的运行状态是备用的Pod实例,从中选出和原值班Pod实例不在同一个节点的Pod实例,若运行状态是备用并且和原值班Pod实例不在同一个节点的Pod实例有多个,则从中任选一个做值班;若运行状态是备用的Pod实例中不存在和原值班Pod实例不在同一个节点的Pod实例,则任选一个运行状态是备用的Pod实例做值班;如果通过上述过程没有选出值班节点,则从步骤D获取到的Pod实例中任选一个不在步骤E中的Pod实例做值班。选取新的值班Pod实例后,更新etcd数据库中的应用或应用分片的Pod实例信息,并把不在运行的Pod实例从etcd数据库中删除以及将新的Pod实例信息增加进etcd数据库中。
若原值班Pod实例在运行,则原值班Pod实例仍然值班,把不在运行的Pod实例从etcd数据库中删除以及将新的Pod实例信息增加进etcd数据库中。
参照图4,Pod内的运行管理模块对于应用进程的监视包括以下步骤:
G、监视应用进程是否在运行,若不在运行,对于非关键进程,则启动该非关键进程,对于关键进程,则包含以下步骤:
H、发送告警信息;
I、判断该进程的故障次数是否超过配置值,若是,则中止该Pod实例;
J、若该进程的故障次数没有超过配置值,则判断该Pod实例的运行状态是否是值班,若是,则将该Pod实例的运行状态切换为备用,并从其它运行状态是备用的Pod实例中选出一个Pod实例做值班,优先选和本Pod实例不在同一个节点的状态是备用的Pod实例做值班,然后启动该进程;若不是,则启动该进程。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.基于Kubernetes的调度自动化***管理装置,其特征在于,包括***配置管理模块、Pod外的运行管理模块和Pod内的运行管理模块;
所述***配置管理用于对应用、应用包含的实时数据库和应用进程、应用分片进行管理,生成应用对应的Pod定义文件以及存放在键值对数据库etcd中的信息;
所述Pod外的运行管理模块用于管理整个***的启动和停止,应用或应用分片的启动和停止,应用或应用分片对应的某个Pod实例的停止,以及应用或应用分片的值班备用状态的监视及切换;
所述Pod内的运行管理模块用于管理Pod对应的应用或应用分片所包含的实时数据库服务进程及应用进程的启停,以及监视实时数据库服务进程及应用进程。
2.根据权利要求1所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述Pod外的运行管理模块具体用于,
调用容器服务API,启动应用或应用分片对应的Pod;
调用容器服务API,获取应用或应用分片对应的Pod的各个实例信息;
根据应用或应用分片的态设定Pod实例的运行状态;
把各Pod实例的运行状态写入etcd数据库中。
3.根据权利要求2所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述根据应用或应用分片的态设定Pod实例的运行状态,具体为,
对于运行态或仿真态的应用或应用分片,把其中的一个Pod实例的运行状态设定为值班,其余Pod实例的运行状态设定为备用;对于研究态的应用,把各Pod实例的运行状态都设定为研究。
4.根据权利要求1所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述Pod外的运行管理模块具体还用于,
调用容器服务API,获取应用或应用分片对应的各Pod实例信息;
从etcd数据库中读取该应用或应用分片的各Pod实例信息;
将从容器服务API和etcd数据库中获取到的Pod实例信息进行比对,判断原值班Pod实例是否在运行;
根据从容器服务API和etcd数据库中获取到的Pod实例信息比对结果及原值班Pod实例的运行状态更新etcd数据库。
5.根据权利要求4所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述根据从容器服务API和etcd数据库中获取到的Pod实例信息比对结果及原值班Pod实例的运行状态更新etcd数据库,具体为,
若原值班Pod实例不在运行,则从当前运行的Pod实例中选出一个做值班;
更新etcd数据库中的应用或应用分片的Pod实例信息,并把不在运行的Pod实例从etcd数据库中删除以及将新的Pod实例信息增加进etcd数据库中;
若原值班Pod实例在运行,则原值班Pod实例仍然值班,把不在运行的Pod实例从etcd数据库中删除以及将新的Pod实例信息增加进etcd数据库中。
6.根据权利要求5所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述从当前运行的Pod实例中选出一个做值班,具体为:
从容器服务API获取到的Pod实例中选出与从etcd数据库中获取到的同名的运行状态是备用的Pod实例,从中选出和原值班Pod实例不在同一个节点的Pod实例,若运行状态是备用并且和原值班Pod实例不在同一个节点的Pod实例有多个,则从中任选一个做值班;若运行状态是备用的Pod实例中不存在和原值班Pod实例不在同一个节点的Pod实例,则任选一个运行状态是备用的Pod实例做值班;如果通过上述过程没有选出值班节点,则从容器服务API获取到的Pod实例中任选一个不在etcd数据库中的Pod实例做值班。
7.根据权利要求1所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述Pod外的运行管理模块部署在3个或5个节点上,其中一个节点是Pod外的运行管理模块的主节点,其余节点是备用节点,当主节点故障时,其中一个备用节点升为主节点。
8.根据权利要求1所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述Pod内的运行管理模块具体用于,
监视应用进程是否在运行,若不在运行,对于非关键进程,则启动该非关键进程;对于关键进程,则发送告警信息;
根据关键进程的运行状态进行Pod实例的运行状态的切换及Pod实例的中止。
9.根据权利要求8所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述根据关键进程的运行状态进行Pod实例的运行状态的切换及Pod实例的中止,具体为,
如果不在运行的关键进程的故障次数超过配置值,则中止该Pod实例;
当不在运行的关键进程的故障次数没有超过配置值时,如果该Pod实例的运行状态是值班,则将该Pod实例的运行状态切换为备用,并从运行状态是备用的Pod实例中选出一个Pod实例做值班,然后启动该应用进程,如果该Pod实例的运行状态不是值班,则启动该应用进程。
10.根据权利要求9所述的基于Kubernetes的调度自动化***管理装置,其特征在于,所述从运行状态是备用的Pod实例中选出一个Pod实例做值班,具体为,
任选一个和本Pod实例不在同一个节点的状态是备用的Pod实例做值班,若状态是备用的Pod实例都和本Pod实例在同一个节点,则任选一个状态是备用的Pod实例做值班。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171610.7A CN112948065B (zh) | 2019-11-26 | 2019-11-26 | 基于Kubernetes的调度自动化***管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911171610.7A CN112948065B (zh) | 2019-11-26 | 2019-11-26 | 基于Kubernetes的调度自动化***管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948065A true CN112948065A (zh) | 2021-06-11 |
CN112948065B CN112948065B (zh) | 2022-07-22 |
Family
ID=76224811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911171610.7A Active CN112948065B (zh) | 2019-11-26 | 2019-11-26 | 基于Kubernetes的调度自动化***管理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948065B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568707A (zh) * | 2021-07-29 | 2021-10-29 | 中国船舶重工集团公司第七一九研究所 | 基于容器技术的海洋平台的计算机控制方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557307A (zh) * | 2009-05-07 | 2009-10-14 | 国电南瑞科技股份有限公司 | 调度自动化***应用状态管理方法 |
CN109558260A (zh) * | 2018-11-20 | 2019-04-02 | 北京京东尚科信息技术有限公司 | Kubernetes故障排除***、方法、设备及介质 |
-
2019
- 2019-11-26 CN CN201911171610.7A patent/CN112948065B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557307A (zh) * | 2009-05-07 | 2009-10-14 | 国电南瑞科技股份有限公司 | 调度自动化***应用状态管理方法 |
CN109558260A (zh) * | 2018-11-20 | 2019-04-02 | 北京京东尚科信息技术有限公司 | Kubernetes故障排除***、方法、设备及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568707A (zh) * | 2021-07-29 | 2021-10-29 | 中国船舶重工集团公司第七一九研究所 | 基于容器技术的海洋平台的计算机控制方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN112948065B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108600029B (zh) | 一种配置文件更新方法、装置、终端设备及存储介质 | |
CN109144829B (zh) | 故障处理方法、装置、计算机设备和存储介质 | |
CN111459770A (zh) | 服务器运行状态的告警方法、装置、服务器及存储介质 | |
CN112527484A (zh) | 工作流断点续跑方法、装置、计算机设备及可读存储介质 | |
US11301792B2 (en) | Cross domain integration in product lifecycle management | |
CN116627721A (zh) | 基于混合云的云原生数据库恢复方法、设备及存储介质 | |
CN112948065B (zh) | 基于Kubernetes的调度自动化***管理装置 | |
CN106708547A (zh) | 一种服务插件管理方法和*** | |
CN110716763B (zh) | web容器自动优化方法、装置、存储介质及电子设备 | |
CN117041120A (zh) | 一种分布式全链路服务监控*** | |
CN111767126A (zh) | 分布式批量处理的***和方法 | |
CN116319758A (zh) | 数据迁移方法、装置、电子设备及可读存储介质 | |
CN114567536B (zh) | 异常数据处理方法、装置、电子设备和存储介质 | |
CN110855003A (zh) | 一种主站自适应配置召唤与比对的方法及装置 | |
CN113419921B (zh) | 一种任务监控方法、装置、设备以及存储介质 | |
CN114816866A (zh) | 故障处理方法、装置、电子设备和存储介质 | |
CN115509714A (zh) | 一种任务处理方法、装置、电子设备及存储介质 | |
CN115795359A (zh) | 信号类型判别方法、装置和计算机设备 | |
CN111488117A (zh) | 用于管理元数据的方法、电子设备和计算机可读介质 | |
CN115309558A (zh) | 一种资源调度管理***、方法、计算机设备及存储介质 | |
CN111193903B (zh) | 一种监控资源更新的方法、装置、电子设备及介质 | |
CN115705259A (zh) | 故障处理方法、相关设备及存储介质 | |
CN113504969A (zh) | 容器事件告警的方法、装置及电子设备 | |
CN111176959A (zh) | 跨域的应用服务器的预警方法、***及存储介质 | |
CN116842000B (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 |