CN107402800B - 一种更新容器守护进程的方法和设备 - Google Patents

一种更新容器守护进程的方法和设备 Download PDF

Info

Publication number
CN107402800B
CN107402800B CN201710157252.9A CN201710157252A CN107402800B CN 107402800 B CN107402800 B CN 107402800B CN 201710157252 A CN201710157252 A CN 201710157252A CN 107402800 B CN107402800 B CN 107402800B
Authority
CN
China
Prior art keywords
task
container
upgrading
upgrade
daemon
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
Application number
CN201710157252.9A
Other languages
English (en)
Other versions
CN107402800A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN107402800A publication Critical patent/CN107402800A/zh
Application granted granted Critical
Publication of CN107402800B publication Critical patent/CN107402800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

本申请的目的是提供一种更新容器守护进程的方法和设备,通过从主节点设备获取升级容器守护进程的命令;获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,保证了升级所述容器守护进程的安全性,并避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置且不具有系统比较完整的权限问题,从而简化了所述容器守护进程的升级过程。

Description

一种更新容器守护进程的方法和设备
技术领域
本申请涉及计算机领域,尤其涉及一种更新容器守护进程的技术。
背景技术
Docker是一个开源的应用容器引擎,旨在提供一种应用程序的自动化部署解决方案,在操作系统(例如,Linux系统)上迅速创建一个容器(container,即轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装、部署和升级,非常方便。Docker虚拟出多个容器,每个容器之间相互隔离没有接口,可以将彼此的生产环境和开发环境分开,互不影响,每个容器拥有自己独立的各种命名空间(namespace),命名空间包括:进程标识符进程(Process Identification进程,即PID进程)、MNT文件系统、NET网络、IPC、UTS(UNIX Time-sharing System,UNIX时间共享系统)等。
现有技术中,对于容器集群来说,需要对Docker中的容器守护进程(Dockerdaemon)进行更新时,一般会在每个集群节点的用户设备上分别安装一个独立的第三方软件或脚本程序来对Docker daemon进行更新;由于在每个集群节点的用户设备上安装独立的第三方软件或脚本程序,造成安装布置繁琐且更新过程复杂;又由于在用户设备上安装的独立的第三方软件或脚本程序一般具有操作系统比较完整的权限,会偷偷地收集用户设备上的相关数据信息,造成用户设备上的相关数据信息存在安全性问题。
因此,现有技术中通过在用户设备上安装第三方软件或脚本程序来对容器守护进程进行更新,导致安装布置繁琐、更新过程复杂且存在安全性问题。
发明内容
本申请的目的是提供一种更新容器守护进程的方法和设备,以解决现有技术中通过在用户设备上安装第三方软件或脚本程序来对容器守护进程进行更新,导致安装布置繁琐、更新过程复杂且存在安全性问题的问题。
根据本申请的一个方面,提供了一种在容器代理设备端更新容器守护进程的方法,包括:
从主节点设备获取升级容器守护进程的命令;
获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;
将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
进一步地,将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程包括:
获取所述升级任务的优先级;
将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务。
根据本申请的另一方面,还提供了一种更新容器守护进程的容器代理设备,包括:
获取装置,用于从主节点设备获取升级容器守护进程的命令;
生成装置,用于获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;
提交装置,用于将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
进一步地,所述提交装置包括:
优先级单元,用于获取所述升级任务的优先级;
提交单元,用于将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务。
此外,本申请还提供了一种更新容器守护进程的容器代理设备,包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从主节点设备获取升级容器守护进程的命令;
获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;
将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
与现有技术相比,根据本申请的实施例所述的一种更新容器守护进程的方法和设备,通过从主节点设备获取升级容器守护进程的命令;获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于通过运行在容器中的容器代理设备从主节点设备获取升级容器守护进程的命令,并结合容器所在系统的环境信息生成容器守护进程的升级任务,保证了升级所述容器守护进程的安全性,最后将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于所述容器代理设备是运行于所述容器守护进程中的一个容器设备且具有资源隔离和权限限制,虽然所述容器代理设备本身的权利是受限的,但所述容器代理设备将所述升级任务提交至所在系统的系统定时任务,以待具有完整权限的系统基于所述升级任务升级所述容器守护进程,有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置且不具有系统比较完整的权限问题,从而简化了所述容器守护进程的升级过程。
进一步地,将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程包括:获取所述升级任务的优先级;将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务,由于通过获取所述升级任务的优先级,以确保所述升级任务是优先执行还是推后执行,并将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务,从而有效地达到通过容器中的所述容器代理设备对所述容器守护进程进行升级的目的,并保证了升级所述容器守护进程的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种更新容器守护进程的容器代理设备的结构示意图;
图2示出根据本申请一个方面的一种更新容器守护进程的整体系统设备的结构示意图;
图3示出根据本申请一个方面的一种在容器代理设备端的更新容器守护进程的方法流程示意图;
图4示出根据本申请一个方面的一种更新容器守护进程的方法整体流程示意图;
图5示出根据本申请一个方面的一个优选实施例的一种更新容器守护进程的系统流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
图1示出根据本申请一个方面的一种更新容器守护进程的容器代理设备的结构示意图。该容器代理设备1包括:获取装置11、生成装置12和提交装置13。
其中,所述获取装置11从主节点设备获取升级容器守护进程的命令;所述生成装置12获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述提交装置13将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
在此,所述容器代理设备1包括但不限于服务设备、服务设备与网络设备通过网络相集成所构成的设备。所述服务设备其包括但不限于任何一种所述移动电子产品,所述移动电子产品可以采用任意操作系统,如安卓(android)操作系统、苹果(iOS)操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,服务设备还可以是运行于所述用户设备与网络设备通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述服务设备仅为举例,其他现有的或今后可能出现的服务设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求。例如,所述获取装置11持续从主节点设备获取升级容器守护进程的命令;所述生成装置12持续获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述提交装置13持续将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
需要说明的是,在整个分布式集群系统中,所述容器代理设备(Docker Agent)的数量至少为一个。
在所述获取装置11中的主机节点设备包括服务发现装置和集群管理装置,其中,所述服务发现装置(Discovery service)是在分布式集群系统中,随着部署的集群节点的容器的增多,各个集群节点对应的容器服务会越来越复杂,故所述服务发现装置用于保存各个集群节点下的不同容器服务对应的容器的配置信息,集群的规模变化以及容器服务对应的容器的位置变化信息等,例如部署新的容器服务,已有的容器服务对应的容器宕机及已有的容器服务对应的容器被替换等。当然,其他现有的或今后可能出现的所述服务发现装置如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
其中,所述集群管理装置(Cluster Management)的主要目的是对分布式系统中的分布在不同区域的网络设备的集中管理,实现对分布式系统中的所有网络设备的管理和维护。其中,在分布式集群系统中,所述集群管理装置可以是包括但不限于是管理设备、成员设备及候选设备。当然,其他现有的或今后可能出现的所述集群管理装置如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述获取装置11包括:监听获取单元111(未示出),用于监听主节点设备的发现服务装置中任务队列,当监听到所述升级容器守护进程的命令,则获取所述命令。
在本申请的实施例中,所述获取装置11中的监听获取单元111(未示出)监听所述主节点设备的发现服务装置(Discovery service)中的任务队列,当监听到所述升级容器守护进程(Docker daemon)的命令时,则获取所述命令;在整个分布式容器集群(Docker集群)中,由于各集群节点上的所述容器代理设备(Docker Agent)中的所述获取装置11中的监听获取单元111(未示出)会自动监听所述发现服务装置(Discovery service)中的任务队列,并在监听到所述升级容器守护进程时获取所述命令,使得所有的各集群节点上的所述容器代理设备(Docker Agent)能够及时有效地获取升级容器守护进程的命令,以使所述生成装置12获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述提交装置13将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于所述容器代理设备是运行于所述容器守护进程中的一个容器设备且具有资源隔离和权限限制,虽然所述容器代理设备本身的权利是受限的,但所述容器代理设备将所述升级任务提交至所在系统的系统定时任务,以待具有完整权限的系统基于所述升级任务升级所述容器守护进程,有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置且不具有系统比较完整的权限问题,从而有效地达到通升级所述容器守护进程的目的,并保证了升级所述容器守护进程的安全性。
进一步地,所述获取装置11包括:接收单元112(未示出),用于接收主节点设备的集群管理装置发送的升级容器守护进程的命令。
在本申请的实施例中,当需要对分布式集群系统中的一个或多个特定的集群节点的容器的所述容器守护进程(Docker daemon)进行升级的时候,所述获取装置11中的接收单元112(未示出)接收主节点设备的集群管理装置发送的升级容器守护进程的命令,使得分布式集群系统中的一个或多个特定的需进行升级的容器守护进程对应的所述容器代理设备(Docker Agent)能够及时有效地获取升级容器守护进程的命令,以使所述生成装置12获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述提交装置13将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于所述容器代理设备是运行于所述容器守护进程中的一个容器设备且具有资源隔离和权限限制,虽然所述容器代理设备本身的权利是受限的,但所述容器代理设备将所述升级任务提交至所在系统的系统定时任务,以待具有完整权限的系统基于所述升级任务升级所述容器守护进程,有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置且不具有系统比较完整的权限问题,从而有效地达到升级所述容器守护进程的目的,并保证了升级所述容器守护进程的安全性。
进一步地,所述升级任务包括升级脚本或升级程序。
在本申请的实施例中,所述升级脚本包括执行所述升级脚本的操作系统及其操作系统的版本、执行所述升级任务的目录位置、执行所述升级任务的设备的命令提示符以及升级包等信息。当然,其他现有的或今后可能出现的所述升级脚本如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
需要说明的是,本申请实施例中的所述升级程序与上述升级脚本大致相同,均是对需要升级的容器守护进程的命令基于容器所在系统的系统环境信息生成的。
进一步地,所述系统环境信息包括以下至少任一项:操作系统类型、操作系统版本、容器版本、容器安装位置。
在本申请的实施例中,所述操作系统可以是包括但不限于包批处理操作系统(例如,MVX、DOS/VSE)、分时操作系统(例如,如Linux、UNIX、XENIX、Mac OS X)、实时操作系统(例如,iEMX、VRTX、RTOS,RT WINDOWS)。当然,其他现有的或今后可能出现的所述操作系统如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的实施例中,所述容器版本包括但不限于包括应用服务器中位于组件和平台之间的接口集合的服务应用容器(web容器)、存储double类型值的容器(db容器)及矢量容器(vector容器)等。当然,本领域技术人员应能理解其他现有的或今后可能出现的能够对所述容器版本如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述生成装置12包括:信息生成单元121(未示出),用于基于所述操作系统类型和所述操作系统版本,确定所述升级任务的系统识别信息;位置生成单元122(未示出),用于基于所述容器安装位置确定所述升级任务的执行位置信息;任务生成单元123(未示出),用于基于所述升级容器守护进程的命令、所述容器版本及所述升级任务的系统识别信息和执行位置信息确定所述升级任务。
在本申请的实施例中,在信息生成单元121(未示出)中,基于所述容器代理设备所在的操作系统类型和所述操作系统版本确定所述升级任务的系统识别信息。例如,根据操作系统类型为windows对应的操作系统版本为window10,基于所述操作系统类型和所述操作系统版本确定能够被所述操作系统类型及版本识别的升级任务对应的系统语言为C++,即所述升级任务的系统识别信息;接着在所述位置生成单元122(未示出)中基于所述容器(Docker)安装位置信息确定所述升级任务的执行位置信息;最后在所述任务生成单元123(未示出)中,基于所述升级容器守护进程的命令、所述容器版本及所述升级任务的系统识别信息和执行位置信息确定所述升级任务,其中,所述升级任务中包括系统识别信息、执行位置信息以及升级包等信息。
进一步地,所述提交装置13包括:优先级单元131(未示出),用于获取所述升级任务的优先级;提交单元132(未示出),用于将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务。
在本申请的实施例中,在所述优先级单元131(未示出)获取所述升级任务的优先级,其中,所述升级任务的优先级可以是包括但不限于包括是最高优先级或最低优先级。当然,其他现有的或今后可能出现的所述升级任务的优先级如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的实施例中,在所述提交单元132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列中。若所述升级任务的优先级为最高优先级,则将具有最高优先级的所述升级任务提交至所述系统定时任务队列中,以待所述系统中断优先级较低的所述系统定时任务并优先执行所述升级任务;若所述升级任务的优先级为最低优先级,则将具有最低优先级的所述升级任务提交至所述系统定时任务队列中,以待所述系统执行完所有的所述系统定时任务后再继续执行所述升级任务。
例如,在所述提交装置13中,若所述系统定时任务队列为{任务1;任务2;任务3;任务4;任务5;任务6}且6个所述系统定时任务的优先级从高到低依次降低分别为{priority6;priority5;priority4;priority3;priority2;priority1;},若所述升级任务(升级task)的优先级为最高,则所述系统定时任务队列的执行顺序为{升级task;任务1;任务2;任务3;任务4;任务5;任务6},即在所述提交单元132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列{任务1;任务2;任务3;任务4;任务5;任务6}中,以待所述系统基于时序顺序{升级task;任务1;任务2;任务3;任务4;任务5;任务6}执行所述升级任务;若所述系统定时任务队列为{任务1;任务2;任务3;任务4;任务5;任务6}且6个所述系统定时任务的优先级从高到低依次降低,若所述升级任务(升级task)的优先级为最低,则所述系统定时任务队列的执行顺序为{任务1;任务2;任务3;任务4;任务5;任务6;升级task},即在所述提交单元132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列{任务1;任务2;任务3;任务4;任务5;任务6}中,以待所述系统基于时序顺序{任务1;任务2;任务3;任务4;任务5;任务6;升级task}执行所述升级任务;若所述系统定时任务队列为{任务1;任务2;任务3;任务4;任务5;任务6}且6个所述系统定时任务的优先级从高到低依次降低,若所述升级任务(升级task)的优先级为{priority3},则所述系统定时任务队列的执行顺序为{任务1;任务2;任务3;任务4和升级task;任务5;任务6;升级task},即在所述提交单元132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列{任务1;任务2;任务3;任务4;任务5;任务6}中,以待所述系统基于时序顺序{任务1;任务2;任务3;任务4和升级task;任务5;任务6;升级task}执行所述升级任务。
在本申请的实施例中,在所述提交装置13中将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程后,需对所述升级任务的任务状态信息进行跟踪。
进一步地,所述容器代理设备1还包括:反馈装置14(未示出),用于将所述升级任务的任务状态信息反馈给所述主节点设备。
在本申请的实施例中,在所述提交装置13之后,需将所述升级任务的任务状态信息反馈给所述主节点设备。若在所述获取装置11中监听所述发现服务装置中任务队列,当监听到所述升级容器守护进程的命令则获取所述命令,则在所述反馈装置14(未示出)中将所述升级任务的状态信息反馈给所述发现服务装置;若在所述获取装置11中接收所述集群管理装置发送的升级容器守护进程的命令,则在所述反馈装置14(未示出)中所述升级任务的状态信息反馈给所述集群管理装置。
图2示出根据本申请一个方面的一种更新容器守护进程的整体系统设备的结构示意图。该系统设备包括容器代理设备1和主节点设备2,其中,所述容器代理设备1包括:获取装置11、生成装置12和提交装置13,所述主节点设备2包括:发现服务装置21和集群管理装置22。
本申请通过所述容器代理设备1中的获取装置11从主节点设备获取升级容器守护进程的命令,包括:监听所述发现服务装置21中任务队列,当监听到所述升级容器守护进程的命令则获取所述命令,或接收所述集群管理装置22发送的升级容器守护进程的命令;接着,所述生成装置12获取容器所在系统的环境信息,基于所述升级容器守护进程的命令和所述环境信息生成容器守护进程的升级任务;随后,所述提交装置13将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程;最后,反馈装置14将所述升级任务的任务状态信息反馈给所述主节点设备,包括:将所述升级任务的状态信息反馈给所述发现服务装置21,或将所述升级任务的状态信息反馈给所述集群管理装置22。
在本申请的实施例中的分布式集群系统中,整体系统设备中包括所述主节点设备和至少一个所述容器代理设备,使得通过所述容器代理设备获取来自所述主节点设备的升级所述容器守护进程的命令,并使得所述容器代理设备基于升级所述容器守护进程的命令和集群节点的容器所在的系统的系统环境信息生成容器守护进程的升级任务,并提交至所述系统的系统定时任务队列,以待所述系统基于所述升级任务升级所述容器守护进程,最后,将所述升级任务的任务状态信息反馈给所述主节点设备,从而有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置,并简化了所述容器守护进程的升级过程。
图3示出根据本申请一个方面的一种在容器代理设备端的更新容器守护进程的方法流程示意图。该方法包括:步骤S11、步骤S12和步骤S13。
其中,所述步骤S11从主节点设备获取升级容器守护进程的命令;所述步骤S12获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述步骤S13将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
需要说明的是,在整个分布式集群系统中,所述容器代理设备(Docker Agent)的数量至少为一个。
在所述步骤S11中的主机节点设备包括服务发现装置和集群管理装置,其中,所述服务发现装置(Discovery Service)是在分布式集群系统中,随着部署的集群节点的容器的增多,各个集群节点对应的容器服务会越来越复杂,故所述服务发现装置用于保存各个集群节点下的不同容器服务对应的容器的配置信息,集群的规模变化以及容器服务对应的容器的位置变化信息等,例如部署新的容器服务,已有的容器服务对应的容器宕机及已有的容器服务对应的容器被替换等。当然,其他现有的或今后可能出现的所述服务发现装置如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
其中,所述集群管理装置(Cluster Management)的主要目的是对分布式系统中的分布在不同区域的网络设备的集中管理,实现对分布式系统中的所有网络设备的管理和维护。其中,在分布式集群系统中,所述集群管理装置可以是包括但不限于是管理设备、成员设备及候选设备。当然,其他现有的或今后可能出现的所述集群管理装置如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述步骤S11包括:从主节点设备获取升级容器守护进程的命令;具体地,所述步骤S11包括步骤S111(未示出),其中,所述步骤S111(未示出)包括:监听主节点设备的发现服务装置中任务队列,当监听到所述升级容器守护进程的命令,则获取所述命令。
在本申请的实施例中,所述步骤S11中的步骤S111(未示出)监听所述主节点设备的发现服务装置(Discovery Service)中的任务队列,当监听到所述升级容器守护进程(Docker daemon)的命令时,则获取所述命令;在整个分布式容器集群(Docker集群)中,由于各集群节点上的所述容器代理设备(Docker Agent)中的所述步骤S11中的步骤S111(未示出)会自动监听所述发现服务装置(Discovery Service)中的任务队列,并在监听到所述升级容器守护进程时获取所述命令,使得所有的各集群节点上的所述容器代理设备(Docker Agent)能够及时有效地获取升级容器守护进程的命令,以使所述步骤S12获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述步骤S13将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于所述容器代理设备是运行于所述容器守护进程中的一个容器设备且具有资源隔离和权限限制,虽然所述容器代理设备本身的权利是受限的,但所述容器代理设备将所述升级任务提交至所在系统的系统定时任务,以待具有完整权限的系统基于所述升级任务升级所述容器守护进程,有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置且不具有系统比较完整的权限问题,从而有效地达到升级所述容器守护进程的目的,并保证了升级所述容器守护进程的安全性。
进一步地,所述步骤S11包括:从主节点设备获取升级容器守护进程的命令;具体地,所述步骤S11包括步骤S112(未示出),其中,所述步骤S112(未示出)包括:接收主节点设备的集群管理装置发送的升级容器守护进程的命令。
在本申请的实施例中,当需要对分布式集群系统中的一个或多个特定的集群节点的容器的所述容器守护进程(Docker daemon)进行升级的时候,所述步骤S11中的步骤S112(未示出)接收主节点设备的集群管理装置发送的升级容器守护进程的命令,使得分布式集群系统中的一个或多个特定的需进行升级的容器守护进程对应的所述容器代理设备(Docker Agent)能够及时有效地获取升级容器守护进程的命令,以使所述步骤S12获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述步骤S13将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于所述容器代理设备是运行于所述容器守护进程中的一个容器设备且具有资源隔离和权限限制,虽然所述容器代理设备本身的权利是受限的,但所述容器代理设备将所述升级任务提交至所在系统的系统定时任务,以待具有完整权限的系统基于所述升级任务升级所述容器守护进程,有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置且不具有系统比较完整的权限问题,从而有效地达到升级所述容器守护进程的目的,并保证了升级所述容器守护进程的安全性。
进一步地,所述升级任务包括升级脚本或升级程序。
在本申请的实施例中,所述升级脚本包括执行所述升级脚本的操作系统及其操作系统的版本、执行所述升级任务的目录位置、执行所述升级任务的设备的命令提示符以及升级包等信息。当然,其他现有的或今后可能出现的所述升级脚本如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
需要说明的是,本申请实施例中的所述升级程序与上述升级脚本大致相同,均是对需要升级的容器守护进程的命令基于容器所在系统的系统环境信息生成的。
进一步地,所述系统环境信息包括以下至少任一项:操作系统类型、操作系统版本、容器版本、容器安装位置。
在本申请的实施例中,所述操作系统可以是包括但不限于包批处理操作系统(例如,MVX、DOS/VSE)、分时操作系统(例如,如Linux、UNIX、XENIX、Mac OS X)、实时操作系统(例如,iEMX、VRTX、RTOS,RT WINDOWS)。当然,其他现有的或今后可能出现的所述操作系统如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的实施例中,所述容器版本包括但不限于包括应用服务器中位于组件和平台之间的接口集合的服务应用容器(web容器)、存储double类型值的容器(db容器)及矢量容器(vector容器)等。当然,本领域技术人员应能理解其他现有的或今后可能出现的能够对所述容器版本如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
进一步地,所述步骤S12包括:基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;具体地,所述步骤S12包括步骤S121(未示出)、步骤S122(未示出)和步骤S123(未示出),其中,所述步骤S121(未示出)包括:基于所述操作系统类型和所述操作系统版本,确定所述升级任务的系统识别信息;所述步骤S121(未示出)包括:基于所述容器安装位置确定所述升级任务的执行位置信息;所述步骤S121(未示出)包括:基于所述升级容器守护进程的命令、所述容器版本及所述升级任务的系统识别信息和执行位置信息确定所述升级任务。
在本申请的实施例中,在步骤S121(未示出)中,基于所述容器代理设备所在的操作系统类型和所述操作系统版本确定所述升级任务的系统识别信息。例如,根据操作系统类型为windows对应的操作系统版本为window10,基于所述操作系统类型和所述操作系统版本确定能够被所述操作系统类型及版本识别的升级任务对应的系统语言为C++,即所述升级任务的系统识别信息;接着在所述步骤S122(未示出)中基于所述容器(Docker)安装位置信息确定所述升级任务的执行位置信息;最后在所述步骤S123(未示出)中,基于所述升级容器守护进程的命令、所述容器版本及所述升级任务的系统识别信息和执行位置信息确定所述升级任务,其中,所述升级任务中包括系统识别信息、执行位置信息以及升级包等信息。
进一步地,所述步骤S13包括:将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程;具体地,所述步骤S13包括步骤S131(未示出)和步骤S132(未示出),其中,所述步骤S131(未示出)包括:获取所述升级任务的优先级;所述步骤S132(未示出)包括:将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务。
在本申请的实施例中,在所述步骤S131(未示出)获取所述升级任务的优先级,其中,所述升级任务的优先级可以是包括但不限于包括是最高优先级或最低优先级。当然,其他现有的或今后可能出现的所述升级任务的优先级如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的实施例中,在所述步骤S132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列中。若所述升级任务的优先级为最高优先级,则将具有最高优先级的所述升级任务提交至所述系统定时任务队列中,以待所述系统中断优先级较低的所述系统定时任务并优先执行所述升级任务;若所述升级任务的优先级为最低优先级,则将具有最低优先级的所述升级任务提交至所述系统定时任务队列中,以待所述系统执行完所有的所述系统定时任务后再继续执行所述升级任务。
例如,在所述步骤S13中,若所述系统定时任务队列为{任务1;任务2;任务3;任务4;任务5;任务6}且6个所述系统定时任务的优先级从高到低依次降低分别为{priority6;priority5;priority4;priority3;priority2;priority1;},若所述升级任务(升级task)的优先级为最高,则所述系统定时任务队列的执行顺序为{升级task;任务1;任务2;任务3;任务4;任务5;任务6},即在所述提交单元132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列{任务1;任务2;任务3;任务4;任务5;任务6}中,以待所述系统基于时序顺序{升级task;任务1;任务2;任务3;任务4;任务5;任务6}执行所述升级任务;若所述系统定时任务队列为{任务1;任务2;任务3;任务4;任务5;任务6}且6个所述系统定时任务的优先级从高到低依次降低,若所述升级任务(升级task)的优先级为最低,则所述系统定时任务队列的执行顺序为{任务1;任务2;任务3;任务4;任务5;任务6;升级task},即在所述步骤S132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列{任务1;任务2;任务3;任务4;任务5;任务6}中,以待所述系统基于时序顺序{任务1;任务2;任务3;任务4;任务5;任务6;升级task}执行所述升级任务;若所述系统定时任务队列为{任务1;任务2;任务3;任务4;任务5;任务6}且6个所述系统定时任务的优先级从高到低依次降低,若所述升级任务(升级task)的优先级为{priority3},则所述系统定时任务队列的执行顺序为{任务1;任务2;任务3;任务4和升级task;任务5;任务6;升级task},即在所述提交单元132(未示出)将所述升级任务及其优先级提交至所述系统定时任务队列{任务1;任务2;任务3;任务4;任务5;任务6}中,以待所述系统基于时序顺序{任务1;任务2;任务3;任务4和升级task;任务5;任务6;升级task}执行所述升级任务。
在本申请的实施例中,在所述提交装置13中将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程后,需对所述升级任务的任务状态信息进行跟踪。
进一步地,所述在容器代理设备端更新容器守护进程的方法还包括:步骤S14(未示出)将所述升级任务的任务状态信息反馈给所述主节点设备。
在本申请的实施例中,在所述步骤S13之后,需将所述升级任务的任务状态信息反馈给所述主节点设备。若在所述步骤S11中监听所述发现服务装置中任务队列,当监听到所述升级容器守护进程的命令则获取所述命令,则在所述步骤S14(未示出)中将所述升级任务的状态信息反馈给所述发现服务装置;若在所述步骤S11中接收所述集群管理装置发送的升级容器守护进程的命令,则在所述步骤S14(未示出)中所述升级任务的状态信息反馈给所述集群管理装置。
图4示出根据本申请一个方面的一种更新容器守护进程的方法整体流程示意图。该方法包括:步骤S401、步骤S402、步骤S403、步骤S404、步骤S405、步骤S406和步骤S407。
其中,所述步骤S401从主节点设备获取升级容器守护进程的命令;所述步骤S402获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;所述步骤S403将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程;所述步骤S404执行所述升级任务并返回任务状态信息;所述步骤S405将所述升级任务的任务状态信息反馈给所述主节点设备;所述步骤S406获取升级容器守护进程的命令并发送给所述容器代理设备1;所述步骤S407接收所述容器代理设备发送的所述升级任务的任务状态信息。
在本申请的实施例中,所述步骤S404通过所述容器所在的系统来执行所述升级任务并返回任务状态信息;在所述步骤S406中若所述容器代理设备1监听所述发现服务装置中任务队列,当监听到所述升级容器守护进程的命令则获取所述命令,则在所述步骤S405中将所述升级任务的状态信息反馈给所述主节点设备中的所述发现服务装置;在所述步骤S406中若所述容器代理设备1接收所述集群管理装置发送的升级容器守护进程的命令,则在所述步骤S405中将所述升级任务的状态信息反馈给所述主节点设备中的所述集群管理装置。
基于本申请的上述实施例,本申请还提供了一种更新容器守护进程的系统,所述系统包括主节点设备和至少一个容器代理设备。
在本申请的实施例中提供一种更新容器守护进程的系统,其中,所述系统包括主节点设备和至少一个容器代理设备:
所述主节点设备包括:发现服务装置和集群管理装置;
所述容器代理设备包括:
获取装置,用于从主节点设备获取升级容器守护进程的命令,包括:监听所述发现服务装置中任务队列,当监听到所述升级容器守护进程的命令则获取所述命令,或接收所述集群管理装置发送的升级容器守护进程的命令
生成装置,用于获取容器所在系统的环境信息,基于所述升级容器守护进程的命令和所述环境信息生成容器守护进程的升级任务;
提交装置,用于将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
进一步地,所述容器代理设备还包括:
反馈装置,用于将所述升级任务的任务状态信息反馈给所述主节点设备,包括:将所述升级任务的状态信息反馈给所述发现服务装置,或将所述升级任务的状态信息反馈给所述集群管理装置。
图5示出根据本申请一个方面的一个优选实施例的一种更新容器守护进程的系统流程示意图。
在本申请的优选实施例中,所述分布式集群系统中的所述集群节点(node)至少包括一个,即至少包括一个容器代理设备1。在每个集群节点上包括各种不同服务应用(App)的应用容器,为了便于在单个集群节点上统一管理各个服务应用,故在所述容器运行环境(Docker engine)中设置一个容器代理设备1(Docker Agent),其中,所述容器代理设备1(Agent)是运行于所述容器运行环境(Docker engine)中的一个子进程,具有资源隔离和访问权限上的限制,从而通过所述容器代理设备1(Docker Agent)来生成升级所述容器守护进程(Docker daemon)的升级任务,提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,从而有效地达到通过容器中的所述容器代理设备对所述容器守护进程进行升级的目的,并保证了升级所述容器守护进程的安全性。
在上述优选实施例中,所述容器代理设备1(Docker Agent)获取来自所述主节点设备2中的集群管理装置(Cluster Management)发送的升级所述容器守护进程(Dockerdaemon)的命令,并基于升级所述容器守护进程(Docker daemon)的命令和所述容器(Docker)所在的系统的系统环境信息生成升级任务,提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,从而有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置,并简化了所述容器守护进程的升级过程,同时保证了升级所述容器守护进程的安全性。
在上述优选实施例中,所述容器代理设备1(Docker Agent)亦可以获取所述主节点设备2中的发现服务装置(Discovery service)的升级所述容器守护进程(Dockerdaemon)的命令,其中,所述发现服务装置(Discovery service)中的升级所述容器守护进程(Docker daemon)的命令为所述集群管理装置(Cluster Management)发送的,在所述发现服务装置中包括对升级所述容器守护进程的命令对应的任务状态信息(例如,状态跟踪标志信息)以达到对所述升级任务进行任务状态跟踪;接着,所述容器代理设备1(DockerAgent)基于升级所述容器守护进程(Docker daemon)的命令和所述容器(Docker)所在的系统的系统环境信息生成升级任务,提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,并将所述升级任务的状态信息反馈给所述发现服务装置,从而有效地达到通过容器中的所述容器代理设备对所述容器守护进程进行升级的目的,并保证了升级所述容器守护进程的安全性。
此外,本申请还提供了一种更新容器守护进程的容器代理设备,包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从主节点设备获取升级容器守护进程的命令;
获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;
将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
与现有技术相比,根据本申请的实施例所述的一种更新容器守护进程的方法和设备,通过从主节点设备获取升级容器守护进程的命令;获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于通过运行在容器中的容器代理设备从主节点设备获取升级容器守护进程的命令,并结合容器所在系统的环境信息生成容器守护进程的升级任务,保证了升级所述容器守护进程的安全性,最后将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程,由于所述容器代理设备是运行于所述容器守护进程中的一个容器设备且具有资源隔离和权限限制,虽然所述容器代理设备本身的权利是受限的,但所述容器代理设备将所述升级任务提交至所在系统的系统定时任务,以待具有完整权限的系统基于所述升级任务升级所述容器守护进程,有效地避免了由于安装独立第三方升级软件或脚本程序的繁琐的安装布置且不具有系统比较完整的权限问题,从而简化了所述容器守护进程的升级过程。
进一步地,将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程包括:获取所述升级任务的优先级;将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务,由于通过获取所述升级任务的优先级,以确保所述升级任务是优先执行还是推后执行,并将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务,从而有效地达到通过容器中的所述容器代理设备对所述容器守护进程进行升级的目的,并保证了升级所述容器守护进程的安全性。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (19)

1.一种在容器代理设备端更新容器守护进程的方法,其中,所述方法包括:
从主节点设备获取升级容器守护进程的命令;
获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;
将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
2.根据权利要求1所述的方法,其中,所述从主节点设备获取升级容器守护进程的命令包括:
监听主节点设备的发现服务装置中任务队列,当监听到所述升级容器守护进程的命令,则获取所述命令。
3.根据权利要求1所述的方法,其中,所述从主节点设备获取升级容器守护进程的命令包括:
接收主节点设备的集群管理装置发送的升级容器守护进程的命令。
4.根据权利要求1所述的方法,其中,所述升级任务包括升级脚本或升级程序。
5.根据权利要求1所述的方法,其中,所述将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程包括:
获取所述升级任务的优先级;
将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务。
6.根据权利要求1所述的方法,其中,所述方法还包括:
将所述升级任务的任务状态信息反馈给所述主节点设备。
7.根据权利要求1所述的方法,其中,所述系统环境信息包括以下至少任一项:
操作系统类型、操作系统版本、容器版本、容器安装位置。
8.根据权利要求7所述的方法,其中,所述基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务包括:
基于所述操作系统类型和所述操作系统版本,确定所述升级任务的系统识别信息;
基于所述容器安装位置确定所述升级任务的执行位置信息;
基于所述升级容器守护进程的命令、所述容器版本及所述升级任务的系统识别信息和执行位置信息确定所述升级任务。
9.一种更新容器守护进程的容器代理设备,其中,所述容器代理设备包括:
获取装置,用于从主节点设备获取升级容器守护进程的命令;
生成装置,用于获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;
提交装置,用于将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
10.根据权利要求9所述的容器代理设备,其中,所述获取装置包括:
监听获取单元,用于监听主节点设备的发现服务装置中任务队列,当监听到所述升级容器守护进程的命令,则获取所述命令。
11.根据权利要求9所述的容器代理设备,其中,所述获取装置包括:
接收单元,用于接收主节点设备的集群管理装置发送的升级容器守护进程的命令。
12.根据权利要求9所述的容器代理设备,其中,所述升级任务包括升级脚本或升级程序。
13.根据权利要求9所述的容器代理设备,其中,所述提交装置包括:
优先级单元,用于获取所述升级任务的优先级;
提交单元,用于将所述升级任务及其优先级提交至所述系统定时任务队列中,以待所述系统基于时序顺序执行所述升级任务。
14.根据权利要求9所述的容器代理设备,其中,所述容器代理设备还包括:
反馈装置,用于将所述升级任务的任务状态信息反馈给所述主节点设备。
15.根据权利要求9所述的容器代理设备,其中,所述系统环境信息包括以下至少任一项:
操作系统类型、操作系统版本、容器版本、容器安装位置。
16.根据权利要求15所述的容器代理设备,其中,所述生成装置包括:
信息生成单元,用于基于所述操作系统类型和所述操作系统版本,确定所述升级任务的系统识别信息;
位置生成单元,用于基于所述容器安装位置确定所述升级任务的执行位置信息;
任务生成单元,用于基于所述升级容器守护进程的命令、所述容器版本及所述升级任务的系统识别信息和执行位置信息确定所述升级任务。
17.一种更新容器守护进程的系统,其中,所述系统包括主节点设备和至少一个容器代理设备:
所述主节点设备包括:发现服务装置和集群管理装置;
所述容器代理设备包括:
获取装置,用于从主节点设备获取升级容器守护进程的命令,包括:监听所述发现服务装置中任务队列,当监听到所述升级容器守护进程的命令则获取所述命令,或接收所述集群管理装置发送的升级容器守护进程的命令;
生成装置,用于获取容器所在系统的环境信息,基于所述升级容器守护进程的命令和所述环境信息生成容器守护进程的升级任务;
提交装置,用于将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
18.根据权利要求17所述的系统,其中,所述容器代理设备还包括:
反馈装置,用于将所述升级任务的任务状态信息反馈给所述主节点设备,包括:将所述升级任务的状态信息反馈给所述发现服务装置,或将所述升级任务的状态信息反馈给所述集群管理装置。
19.一种更新容器守护进程的容器代理设备,其中,包括:
处理器;
以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
从主节点设备获取升级容器守护进程的命令;
获取容器所在系统的系统环境信息,基于所述升级容器守护进程的命令和所述系统环境信息生成容器守护进程的升级任务;
将所述升级任务提交至所在系统的系统定时任务,以待所述系统基于所述升级任务升级所述容器守护进程。
CN201710157252.9A 2016-03-18 2017-03-16 一种更新容器守护进程的方法和设备 Active CN107402800B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2016101567333 2016-03-18
CN201610156733 2016-03-18

Publications (2)

Publication Number Publication Date
CN107402800A CN107402800A (zh) 2017-11-28
CN107402800B true CN107402800B (zh) 2020-11-13

Family

ID=60405041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710157252.9A Active CN107402800B (zh) 2016-03-18 2017-03-16 一种更新容器守护进程的方法和设备

Country Status (1)

Country Link
CN (1) CN107402800B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750277B (zh) * 2019-09-09 2022-11-15 无锡江南计算技术研究所 一种分布式维护系统的更新方法及系统
CN111580927B (zh) * 2020-04-02 2024-03-19 武汉旷视金智科技有限公司 通信的方法及容器通信系统
CN112328297B (zh) * 2020-11-30 2021-04-20 北京技德系统技术有限公司 一种在Linux上兼容运行的Android系统的升级方法与装置
CN112783525A (zh) * 2021-01-22 2021-05-11 新华三大数据技术有限公司 一种守护进程升级方法及装置
CN113448609B (zh) * 2021-08-30 2021-11-19 恒生电子股份有限公司 一种容器的升级方法、装置、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866918A (zh) * 2012-07-26 2013-01-09 中国科学院信息工程研究所 面向分布式编程框架的资源管理系统
CN103765406A (zh) * 2011-06-30 2014-04-30 亚马逊科技公司 用于远程更新执行进程的方法和设备
CN104536785A (zh) * 2014-12-23 2015-04-22 北京国双科技有限公司 实时系统更新方法及装置
US9106537B1 (en) * 2013-06-05 2015-08-11 Parallels IP Holdings GmbH Method for high availability of services in cloud computing systems
CN104899126A (zh) * 2015-06-12 2015-09-09 北京奇虎科技有限公司 对宿主机中容器进行本地实时监控的方法、装置及系统
CN105357296A (zh) * 2015-10-30 2016-02-24 河海大学 一种Docker云平台下弹性缓存系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069639B2 (en) * 2010-02-25 2015-06-30 Red Hat, Inc. Managing a user proxy configuration in a daemon that frequently loads and unloads

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103765406A (zh) * 2011-06-30 2014-04-30 亚马逊科技公司 用于远程更新执行进程的方法和设备
CN102866918A (zh) * 2012-07-26 2013-01-09 中国科学院信息工程研究所 面向分布式编程框架的资源管理系统
US9106537B1 (en) * 2013-06-05 2015-08-11 Parallels IP Holdings GmbH Method for high availability of services in cloud computing systems
CN104536785A (zh) * 2014-12-23 2015-04-22 北京国双科技有限公司 实时系统更新方法及装置
CN104899126A (zh) * 2015-06-12 2015-09-09 北京奇虎科技有限公司 对宿主机中容器进行本地实时监控的方法、装置及系统
CN105357296A (zh) * 2015-10-30 2016-02-24 河海大学 一种Docker云平台下弹性缓存系统

Also Published As

Publication number Publication date
CN107402800A (zh) 2017-11-28

Similar Documents

Publication Publication Date Title
CN107402800B (zh) 一种更新容器守护进程的方法和设备
US11461125B2 (en) Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure
US10127069B2 (en) Methods and apparatus to automatically configure monitoring of a virtual machine
EP3317762B1 (en) Methods and apparatus for software lifecycle management of a virtual computing environment
US9588794B2 (en) Method, system and device for managing software on virtual machine in cloud environment
US10146524B1 (en) Preemptive deployment in software deployment pipelines
US10873501B2 (en) Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
US20170255454A1 (en) Methods and apparatus to generate a customized application blueprint
WO2017161984A1 (zh) 数据集群的部署方法、装置、系统及计算机存储介质
US20220050711A1 (en) Systems and methods to orchestrate infrastructure installation of a hybrid system
US20220261302A1 (en) Systems and methods to facilitate infrastructure installation checks and corrections in a distributed environment
WO2015054582A1 (en) Methods and apparatus to manage virtual machines
US10402216B1 (en) Live support integration in a virtual machine based development environment
US20170206078A1 (en) Updating software components through online stores
US11175901B2 (en) Distribution and execution of instructions in a distributed computing environment
US11176244B2 (en) Cloud application detection method and cloud application detection apparatus
US20180157542A1 (en) Methods and apparatus for event-based extensibility of system logic
US10860364B2 (en) Containerized management services with high availability
EP3230865B1 (en) Recovery execution system using programatic generation of actionable workflows
US20220214928A1 (en) Workload Configuration Extractor
CN111464347A (zh) 一种大规模异构设备应用自动部署装置及方法
US20140372984A1 (en) Safe low cost web services software deployments
CN114189439A (zh) 一种自动扩容的方法及装置
US11425203B2 (en) Commissioning a virtualized network function
EP3362899B1 (en) Automatic system disaster recovery

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
TR01 Transfer of patent right

Effective date of registration: 20230606

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right