CN109684036A - 一种容器集群管理方法、存储介质、电子设备及系统 - Google Patents

一种容器集群管理方法、存储介质、电子设备及系统 Download PDF

Info

Publication number
CN109684036A
CN109684036A CN201811544951.XA CN201811544951A CN109684036A CN 109684036 A CN109684036 A CN 109684036A CN 201811544951 A CN201811544951 A CN 201811544951A CN 109684036 A CN109684036 A CN 109684036A
Authority
CN
China
Prior art keywords
state machine
containerization
container
finite state
dilatation
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
Application number
CN201811544951.XA
Other languages
English (en)
Other versions
CN109684036B (zh
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.)
WUHAN FIBERHOME INTERGRATION TECHNOLOGIES Co Ltd
Original Assignee
WUHAN FIBERHOME INTERGRATION TECHNOLOGIES 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 WUHAN FIBERHOME INTERGRATION TECHNOLOGIES Co Ltd filed Critical WUHAN FIBERHOME INTERGRATION TECHNOLOGIES Co Ltd
Priority to CN201811544951.XA priority Critical patent/CN109684036B/zh
Publication of CN109684036A publication Critical patent/CN109684036A/zh
Application granted granted Critical
Publication of CN109684036B publication Critical patent/CN109684036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种容器集群管理方法、存储介质、电子设备及系统,涉及容器化集群管理领域,该方法包括监控容器调度系统中状态的变更,并在变更后发出变更通知。对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件切换至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用。接收并解析所述变更通知得到对应的触发事件,并发送至对应容器化实例的所述有限状态机。本发明能够实时监控容器化集群调度系统中容器化实例的状态,并实时显示容器化实例的状态。

Description

一种容器集群管理方法、存储介质、电子设备及系统
技术领域
本发明涉及容器化集群管理领域,具体涉及一种容器集群管理方法、存储介质、电子设备及系统。
背景技术
当前容器化集群管理系统在云计算、大数据以及企业级系统中被广泛使用。举例来说,Kubernetes是Google提供的一种开源的容器化集群调度系统,其被业界大量使用。而Kubernetes官方提供了一套用于供用户调度以及管理Kubernetes对象的APII(Application Programming Interface,应用程序编程接口),通过这套API可以用户能够在Kubernetes容器集群管理系统中,新增、修改、删除Kubernetes对象、获取Kubernetes对象的详细信息。
虽然通过官方提供的API可以获取到Kubernetes对象的详细信息,但是该信息是一个关于Kubernetes对象的瞬时状态的描述信息,即,用户无法实时的监控Kubernetes对象的状态及其变更。
虽然用户可以通过轮询的方式获取对象状态的变更,但是这种方法仍然是基于一次次的询问,效率十分低下存在监控不够精确的问题,且多次询问并返回对象的信息将会浪费系统大量资源。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种容器集群管理方法、存储介质、电子设备及系统,能够实时监控容器化集群调度系统中容器化实例的状态,并实时显示容器化实例的状态。
为达到以上目的,第一方面,本发明实施例提供一种容器集群管理方法,其包括:
监控容器调度系统中状态的变更,并在变更后发出变更通知;
对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件切换至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用;
接收并解析所述变更通知得到对应的触发事件,并发送至对应容器化实例的所述有限状态机。
作为一个优选的实施方案:
所述容器状态包括:起始状态、更新状态、运行状态、失败状态。
作为一个优选的实施方案:
所述变更通知包括创建/删除/扩容/缩容操作通知、创建/删除/扩容/缩容操作成功通知、创建/删除/扩容/缩容操作失败通知。
作为一个优选的实施方案:
容器调度系统初始化未运行或者收到删除操作成功通知后,切换为初始状态;
容器调度系统收到创建操作通知但未收到创建操作成功通知时、收到删除操作通知但未收到删除操作成功通知时、收到扩容操作通知但未收到扩容操作成功通知时或收到缩容操作通知但未收到缩容操作成功通知后,切换为更新状态:
容器调度系统收到创建操作成功通知之后、收到扩容操作成功通知之后、收到缩容操作成功通知之后,切换为运行状态:
容器调度系统收到创建操作失败通知后、收到删除操作失败通知后、收到扩容操作失败通知后、收到缩容操作失败通知之后,切换为失败状态
作为一个优选的实施方案:
所述容器调度系统为Kubernetes,其容器化实例为Deployment。
作为一个优选的实施方案:
所述监控端通过Kubernetes Deployment的Watch API和Kubernetes API Server建立WebSocket通信连接。
作为一个优选的实施方案:
所述Kubernetes API Server通过Kubernetes集群保证通信连接。
第二方面,本发明实施例提供一种容器集群管理系统,其包括:
API监控模块,用于监控获取容器调度系统中状态的变更,并在变更后发出变更通知;
状态机模块,用于对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件转移至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用;
触发模块,用于接收并解析所述变更通知得到对应的触发事件,并发送至对应容器化实例的所述有限状态机。
第三方面,本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例中的方法。
第四方面,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例中的方法。
与现有技术相比,本发明的优点在于:
本发明一种容器集群管理方法、存储介质、电子设备及系统通过创建和容器调度系统中容器化实例对应的一个有限状态机,并为有限状态机设置有限个容器状态,其能够根据不同事件切换状态,而这些不同的事件则通过监控容器调度系统中的状态变更即可得到。这样容器调度系统中的容器化实例发生变化后,有限状态机能够根据变化这一事件,调整其所处的容器状态,而用户则通过查看当前有限状态机所处的容器状态,即可知道当前容器调度系统中容器化实例的状态,这种状态的监控不像轮询一般,不精准,且浪费大量系统资源,本发明的监控只需要监控容器调度系统中状态的变更,即可实现实时监控,且随着实例化容器的状态,同时进行变更,更加精确。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面对实施例对应的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种容器集群管理方法的步骤流程图
图2为本发明实施例一种容器集群管理方法中有限状态机的状态转换图;
图3为本发明实施例一种容器集群管理系统结构示意图。
图中:1-API解控模块,2-状态机模块,3-触发模块。
具体实施方式
术语说明:
有限状态机:是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。FSM在任意时刻都处于有限状态集合中的某一“状态”(state)。当其获得一个外部输入时,将从当前状态转换到另一个状态,或者仍然保持在当前状态。
Kubernetes:是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。它提供了跨主机集群的自动部署、扩展以及运行应用程序容器的平台,支持一系列容器工具,例如:Docker、Rkt等。Kubernetes的对象主要有:Deployment、Pod、ReplicaSet。
Kubernetes的Watch API,即Kubernetes自带的监控接口,用于对外提供关于容器化实例的监控信息。
WebSocket:WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
以下结合附图对本发明的实施例作进一步详细说明。
本发明实施例提供一种容器集群管理方法、存储介质、电子设备及系统,其通过对应容器化实例设置有限状态机,并监控容器调度系统中状态的变更,能够根据容器调度系统中状态的变更,来改变有限状态机的变化,实时显示了容器化实例的状态。
为达到上述技术效果,本申请的总体思路如下:
监控容器调度系统中状态的变更,并在变更后发出变更通知;
对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件切换至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用;
接收并解析所述变更通知得到对应的触发事件,并发送至对应容器化实例的所述有限状态机。
综上所述,本发明直接监控容器调度系统中的变更,并建立对应容器化实例的有多个容器状态的有限状态机,以容器调度系统的变更为事件,有限状态机在受到改事件后触发,并切换状态。这样容器调度系统内部的容器化实例一变化,有限状态机能够跟随变更这一事件同时变化。用户不在需要通过API接口、内存等等方式,询问、解析容器调度系统中某一容器化实例的状态,可以直接通过查看容器化实例对应的有限状态机所处的状态了解当前状态。
需要说明的是,上述容器调度系统能够创建容器化的集群,并为用户提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。创建集群的好处就是,统一对外提供接口,无须进行各种复杂的调用;提供更好的可靠性,服务器宕机频繁,物理磁盘容易损坏,而对于容器化集群来说,无须担心上述问题,集群能够统一进行调配,提供更好的性能,组合集群中各个机器的计算存储网络资源,提供更好的TPS和PS;提供横向扩容的能力,在进行横向扩容的时候,性能基本上能呈线性增长。容器调度系统包括有kubernetes、ECS。
为了更好的理解上述技术方案,下面结合具体实施方式进行详细的说明。
实施例一
如图1所示,本发明实施例提供一种容器集群管理方法,其包括:
S1:监控容器调度系统中状态的变更,并在变更后发出变更通知。
通过监控容器调度系统中的状态变更,发出相应的变更通知。以Kubernetes为例,设置一监控程序,该程序可以是单一的程序、一系列程序、脚本、进程、服务,以及多个以上类型组合。该监控程序与Kubernetes Deployment中的Watch API接口相接,并与Kubernetes API Server建立连接。其中Kubernetes Deployment的Watch API发送给监控端的消息是有序的,数量根据不同操做会有不同,同时还能保证Kubernetes Deployment状态变更时,Watch API才会发送消息给监控端,无变更时不会发送。即,KubernetesDeployment的任何状态变更将通过该连接传递给监控程序。其中Kubernetes Deployment的状态变更包括新增、删除、扩容、缩容等操作。
优选的,建立的连接为WebSocket通信连接。WebSocket是一种在单个TCP连接上进行全双工通讯的协议,能够主动根据容器调度系统中的事件主动发出通知,不再需要外部被动的实时询问。
进一步的,与Kubernetes API Server建立的连接可以是单节点或者通过集群保证高可用性。监控程序本身也可以是单节点或者通过集群保证高可用性。监控程序如果是集群则需要通过Raft协议或者HA保证只有唯一的监控端处于监控状态。即,监控程序既可以单节点/单进程/单线程监控整个Kubernetes集群的所有Deployment,也可以多节点/多进程/多线程分别监控Kubernetes集群的不同Namespace中的Deployment。其中,namespace即“命名空间”,也称“名称空间”、”名字空间”。VS.NET中的各种语言使用的一种代码组织的形式通过名称空间来分类,区别不同的代码功能同时也是VS.NET中所有类的完全名称的一部分。
S2:对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件切换至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用。
有限状态机通过事件进行状态切换,其能够通过key,Value的形式保存于内存中,同时其状态数据也保存在内存数据库中以便于重启后恢复。在有限状态机收到触发事件后,切换当前状态,保持了与容器调度系统中对应的容器化实例的状态对应关系,用户能够通过查看当前有限状态机的容器状态,获取容器调度系统中的对应容器化实例的状态,不再需要实时轮询,更加轻松便捷,同时,耗费资源少且精确。
需要说明的是,有限状态机的状态,可以根据用户的需求,以及监控容器调度系统中的详尽程度进行细分,在状态进行细分后,根据细分后的状态进一步设置状态切换对应的触发事件即可。
还是以Kubernetes为例,其Deployment操作有四种:创建操作(CreateDeployment)、删除操作(Delete Deployment)、扩容操作(Scale Up Deployment)、缩容操作(Scale Down Deployment),进一步的,设置有限状态机的容器状态包括四种状态:起始状态、更新状态、运行状态、失败状态。
如图2所示,对应上述操作,设置对应切换状态:
容器调度系统初始化未运行或者发出删除操作成功通知后,有限状态机切换为初始状态;
容器调度系统发出创建操作通知但未发出创建操作成功通知时、发出删除操作通知但未发出删除操作成功通知时、发出扩容操作通知但未发出扩容操作成功通知时或发出缩容操作通知但未发出缩容操作成功通知后,有限状态机切换为更新状态:
容器调度系统发出创建操作成功通知之后、发出扩容操作成功通知之后、发出缩容操作成功通知之后,有限状态机切换为运行状态:
容器调度系统发出创建操作失败通知后、发出删除操作失败通知后、发出扩容操作失败通知后、发出缩容操作失败通知之后,有限状态机切换为失败状态。
S3:接收并解析所述变更通知得到对应触发事件,并发送至对应容器化实例的所述有限状态机。
容器调度系统发出变更通知,有限状态机可能并不能够直接解析该变更通知,因此需要设置对变更通知的解析,并生成对应容器化实例的触发事件,进一步发送给有限状态机,这样有限状态机就能够通过触发事件切换为不同的容器状态了。
需要说明的是,容器调度系统发出变更通知可能直接通知某个容器化实例的变更,也可能在通知中携带有关键字,只要容器调度系统中状态的变更中含有对应的关系,本领域技术人员可以通过检索关键字等等技术方案对编个
按照步骤S2中的举例,进一步举例:
根据上述的变更信息,进行分类得到:
变更通知包括创建/删除/扩容/缩容操作通知、创建/删除/扩容/缩容操作成功通知、创建/删除/扩容/缩容操作失败通知。
对应的触发事件则包括建/删除/扩容/缩容操作事件、创建/删除/扩容/缩容操作成功事件、创建/删除/扩容/缩容操作失败事件。
再进一步,有限状态机根据触发事件,进行状态的切换:
容器调度系统初始化未运行或者有限状态机收到删除操作成功事件后,有限状态机切换为初始状态;
有限状态机收到创建操作事件但未收到创建操作成功事件时、收到删除操作事件但未收到删除操作成功事件时、收到扩容操作事件但未收到扩容操作成功事件时或收到缩容操作事件但未收到缩容操作成功事件后,有限状态机切换为更新状态;
有限状态机收到创建操作成功事件之后、收到扩容操作成功事件之后、收到缩容操作成功事件之后,有限状态机切换为运行状态;
有限状态机收到创建操作失败事件后、收到删除操作失败事件后、收到扩容操作失败事件后、收到缩容操作失败事件之后,有限状态机切换为失败状态。
基于同一发明构思,本申请提供实施例二,其具体实施方式如下。
实施例二
如图3所示,本发明实施例提供一种容器集群管理系统,其包括:
API监控模块1,用于监控获取容器调度系统中状态的变更,并在变更后发出变更通知;
状态机模块2,用于对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件转移至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用;
触发模块3,用于接收并解析所述变更通知得到对应容器化实例的触发事件,并发送至对应的所述有限状态机。
前述方法实施例中的各种变化方式和具体实例同样适用于本实施例的系统,通过前述方法的详细描述,本领域技术人员可以清楚的知道本实施例中系统的实施方法以及好处,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本申请提供实施例三。
实施例三
本发明第三实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的一种容器集群管理方法,该方法包括:
监控容器调度系统中状态的变更,并在变更后发出变更通知;
对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件切换至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用;
接收并解析所述变更通知得到对应的触发事件,并发送至对应容器化实例的所述有限状态机。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
基于同一发明构思,本申请提供实施例四。
实施例四
本发明第四实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一实施例中的所有方法步骤或部分方法步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
总体来说,本发明实施例提供的一种容器集群管理方法、存储介质、电子设备及系统,其通过对应容器化实例设置有限状态机,并监控容器调度系统中状态的变更,能够根据容器调度系统中状态的变更,来改变有限状态机的变化,实时显示了容器化实例的状态。。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种容器集群管理方法,其特征在于,其包括:
监控容器调度系统中状态的变更,并在变更后发出变更通知;
对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件切换至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用;
接收并解析所述变更通知得到对应的触发事件,并发送至对应容器化实例的所述有限状态机。
2.如权利要求1所述的方法,其特征在于:
所述容器状态包括:起始状态、更新状态、运行状态、失败状态。
3.如权利要求2所述的方法,其特征在于:
所述变更通知包括创建/删除/扩容/缩容操作通知、创建/删除/扩容/缩容操作成功通知、创建/删除/扩容/缩容操作失败通知;
所述触发事件包括建/删除/扩容/缩容操作事件、创建/删除/扩容/缩容操作成功事件、创建/删除/扩容/缩容操作失败事件。
4.如权利要求3所述的方法,其特征在于:
容器调度系统初始化未运行或者有限状态机收到删除操作成功事件后,有限状态机切换为初始状态;
有限状态机收到创建操作事件但未收到创建操作成功事件时、收到删除操作事件但未收到删除操作成功事件时、收到扩容操作事件但未收到扩容操作成功事件时或收到缩容操作事件但未收到缩容操作成功事件后,有限状态机切换为更新状态;
有限状态机收到创建操作成功事件之后、收到扩容操作成功事件之后、收到缩容操作成功事件之后,有限状态机切换为运行状态;
有限状态机收到创建操作失败事件后、收到删除操作失败事件后、收到扩容操作失败事件后、收到缩容操作失败事件之后,有限状态机切换为失败状态。
5.如权利要求1所述的方法,其特征在于:
所述容器调度系统为Kubernetes,其容器化实例为Deployment。
6.如权利要求5所述的方法,其特征在于:
所述监控端通过Kubernetes Deployment的Watch API和Kubernetes API Server建立WebSocket通信连接。
7.如权利要求6所述的方法,其特征在于:
所述Kubernetes API Server通过Kubernetes集群保证通信连接。
8.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
9.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。
10.一种容器集群管理系统,其特征在于,其包括:
API监控模块,用于监控获取容器调度系统中状态的变更,并在变更后发出变更通知;
状态机模块,用于对应每一个容器化实例创建一个有限状态机FSM,并为每一个有限状态机的设置多个容器状态,所述有限状态机根据不同的触发事件转移至对应的容器状态,所述容器化实例为容器调度系统所部署的一个容器化应用;
触发模块,用于接收并解析所述变更通知得到对应容器化实例的触发事件,并发送至对应的所述有限状态机。
CN201811544951.XA 2018-12-17 2018-12-17 一种容器集群管理方法、存储介质、电子设备及系统 Active CN109684036B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811544951.XA CN109684036B (zh) 2018-12-17 2018-12-17 一种容器集群管理方法、存储介质、电子设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811544951.XA CN109684036B (zh) 2018-12-17 2018-12-17 一种容器集群管理方法、存储介质、电子设备及系统

Publications (2)

Publication Number Publication Date
CN109684036A true CN109684036A (zh) 2019-04-26
CN109684036B CN109684036B (zh) 2021-08-10

Family

ID=66186268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811544951.XA Active CN109684036B (zh) 2018-12-17 2018-12-17 一种容器集群管理方法、存储介质、电子设备及系统

Country Status (1)

Country Link
CN (1) CN109684036B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262941A (zh) * 2019-05-28 2019-09-20 深圳市汇川技术股份有限公司 应用程序容器集群报警实现方法、系统、设备及存储介质
CN110647440A (zh) * 2019-08-23 2020-01-03 北京浪潮数据技术有限公司 一种基于状态机的大数据任务处理方法及系统
CN112003728A (zh) * 2020-07-24 2020-11-27 苏州浪潮智能科技有限公司 一种基于Kubernetes集群的应用主备实现方法及装置
CN112114563A (zh) * 2019-06-19 2020-12-22 霍尼韦尔国际公司 基于容器的控制执行的高可用性
CN112367328A (zh) * 2020-11-13 2021-02-12 四川长虹电器股份有限公司 基于websocket进入Kubernetes集群容器的方法
CN112783622A (zh) * 2021-01-13 2021-05-11 上海百胜软件股份有限公司 一种基于jira系统的任务管理方法、系统、设备和存储介质
CN112994909A (zh) * 2019-12-12 2021-06-18 北京金山云网络技术有限公司 管理Kubernetes集群的方法、装置、设备及存储介质
CN113326083A (zh) * 2021-05-28 2021-08-31 阿波罗智联(北京)科技有限公司 状态机处理、状态处理方法、装置、电子设备及存储介质
CN113422692A (zh) * 2021-05-28 2021-09-21 作业帮教育科技(北京)有限公司 一种K8s集群内节点故障检测及处理方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436806A (zh) * 2016-05-27 2017-12-05 苏宁云商集团股份有限公司 一种资源调度方法及系统
US20180150230A1 (en) * 2016-11-29 2018-05-31 Sap Se State machine abstraction for log-based consensus protocols

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436806A (zh) * 2016-05-27 2017-12-05 苏宁云商集团股份有限公司 一种资源调度方法及系统
US20180150230A1 (en) * 2016-11-29 2018-05-31 Sap Se State machine abstraction for log-based consensus protocols

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
MARK STEMM: "Falco 0.13.0 Released: Kubernetes Audit Events Support", 《HTTPS://SYSDIG.COM/BLOG/FALCO-0-13-RELEASED-KUBERNETES-AUDIT-SUPPORT/》 *
华为杭州研究院PAAS开发者 难易: "Kubernetes(k8s)代码解读-apiserver之list-watch篇", 《HTTPS://WWW.KUBERNETES.ORG.CN/174.HTML》 *
小狼星I: "Yarn NodeManager解析", 《HTTPS://WWW.JIANSHU.COM/P/8E4F1F45B93E》 *
菲宇: "Kubernetes-控制器之Deployment", 《HTTPS://BLOG.CSDN.NET/BBWANGJ/ARTICLE/DETAILS/82011573》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262941A (zh) * 2019-05-28 2019-09-20 深圳市汇川技术股份有限公司 应用程序容器集群报警实现方法、系统、设备及存储介质
CN110262941B (zh) * 2019-05-28 2023-06-16 深圳市汇川技术股份有限公司 应用程序容器集群报警实现方法、系统、设备及存储介质
CN112114563A (zh) * 2019-06-19 2020-12-22 霍尼韦尔国际公司 基于容器的控制执行的高可用性
CN110647440A (zh) * 2019-08-23 2020-01-03 北京浪潮数据技术有限公司 一种基于状态机的大数据任务处理方法及系统
CN112994909A (zh) * 2019-12-12 2021-06-18 北京金山云网络技术有限公司 管理Kubernetes集群的方法、装置、设备及存储介质
CN112003728A (zh) * 2020-07-24 2020-11-27 苏州浪潮智能科技有限公司 一种基于Kubernetes集群的应用主备实现方法及装置
CN112003728B (zh) * 2020-07-24 2022-07-19 苏州浪潮智能科技有限公司 一种基于Kubernetes集群的应用主备实现方法及装置
CN112367328A (zh) * 2020-11-13 2021-02-12 四川长虹电器股份有限公司 基于websocket进入Kubernetes集群容器的方法
CN112783622A (zh) * 2021-01-13 2021-05-11 上海百胜软件股份有限公司 一种基于jira系统的任务管理方法、系统、设备和存储介质
CN113326083A (zh) * 2021-05-28 2021-08-31 阿波罗智联(北京)科技有限公司 状态机处理、状态处理方法、装置、电子设备及存储介质
CN113422692A (zh) * 2021-05-28 2021-09-21 作业帮教育科技(北京)有限公司 一种K8s集群内节点故障检测及处理方法、装置及存储介质

Also Published As

Publication number Publication date
CN109684036B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN109684036A (zh) 一种容器集群管理方法、存储介质、电子设备及系统
CN111787066B (zh) 一种基于大数据与ai的物联网数据平台
US8266577B2 (en) RFID enhanced operating system (EOS) framework
CN110262902B (zh) 信息处理方法及系统、介质和计算设备
EP1526457B1 (en) Context-aware automatic service discovery and execution engine in mobile ad-hoc networks
CN106302618A (zh) 远程控制方法、远程服务器、管理设备和终端
CN110908879A (zh) 埋点数据的上报方法、装置、终端和存储介质
CN112527528A (zh) 基于消息队列的数据传输方法、装置及存储介质
CN111813570A (zh) 一种电力物联网的事件驱动型消息交互方法
US20130311419A1 (en) Incremental Reasoning Under Data Source Availability Constraints
CN110351366A (zh) 一种互联网应用的服务调度方法、系统及计算机可读存储介质
CN102868736A (zh) 一种云计算监控框架设计及实现方法及云计算处理设备
CN112235130A (zh) 一种实现基于sdn网络的运维自动化的方法和装置
CN104159294A (zh) 一种基于蓝牙4.0技术的云定位平台
CN113377626B (zh) 基于服务树的可视化统一报警方法、装置、设备和介质
CN110309108A (zh) 数据采集及储存方法、装置、电子设备、存储介质
CN106296135A (zh) 事件提醒方法、装置及终端
CN113110939A (zh) 运行数据的处理方法、装置、计算机设备及存储介质
CN113656195A (zh) 服务消息通道管理方法、装置和电子设备
CN110083627A (zh) 数据处理方法、系统、计算机设备和存储介质
CN109783573A (zh) 多路推送的数据同步方法及终端
CN103677983A (zh) 应用的调度方法及装置
CN102375894A (zh) 一种管理不同类型文件系统的方法
CN110427426A (zh) 一种数据同步处理方法及装置
CN111240998B (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