CN108616599B - 应用服务注册、更新的方法及装置 - Google Patents
应用服务注册、更新的方法及装置 Download PDFInfo
- Publication number
- CN108616599B CN108616599B CN201810449513.9A CN201810449513A CN108616599B CN 108616599 B CN108616599 B CN 108616599B CN 201810449513 A CN201810449513 A CN 201810449513A CN 108616599 B CN108616599 B CN 108616599B
- Authority
- CN
- China
- Prior art keywords
- container
- application service
- information
- image file
- updating
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012544 monitoring process Methods 0.000 claims description 33
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用服务注册的方法,包括:获得当前注册的应用服务的信息;根据所述当前注册的应用服务的信息,确定反向代理服务器的配置信息,所述配置信息用于所述反向代理服务器转发访问所述当前注册的应用服务的请求;根据所述反向代理服务器的配置信息,更新反向代理服务器的配置。解决了更新后的docker容器提供的应用服务可能无法及时更新到反向代理服务器的问题。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种应用服务注册的方法及装置。本申请还涉及一种应用服务更新的方法及装置。
背景技术
目前,互联网行业常常将应用部署在容器中,通过容器提供应用服务,常用的容器是docker容器。外部访问应用服务一般通过反向代理服务器将请求转发给提供所述应用服务的docker容器。为了使得docker容器外部能访问docker容器提供的应用服务,docker容器引擎会对docker容器提供应用服务的网络端口进行映射,一般映射为由宿主机IP和随机端口标识的端口,反向代理服务器的配置中包含端口映射信息,因而使得外部能访问应用服务。
实际运行中由于业务功能或流程的变化,往往需要对部署应用服务的docker容器进行更新,包括升级容器或回退容器。docker容器进行更新后,更新后的docker容器提供的应用服务可能无法及时更新到反向代理服务器,进而导致外部无法访问更新后的docker容器提供的应用服务。
发明内容
本申请提供一种应用服务注册的方法,以解决更新后的docker容器提供的应用服务可能无法及时更新到反向代理服务器,进而导致外部无法访问更新后的docker容器提供的应用服务的问题。
本申请提供一种应用服务注册的方法,包括:
获得当前注册的应用服务的信息;
根据所述当前注册的应用服务的信息,确定反向代理服务器的配置信息,所述配置信息用于所述反向代理服务器转发访问所述当前注册的应用服务的请求;
根据所述反向代理服务器的配置信息,更新反向代理服务器的配置。
可选的,所述获得当前注册的应用服务的信息,包括:
监听容器的启动事件和/或停止事件;
若监听到所述容器的启动事件,则注册所述容器提供的应用服务;若监听到所述容器的停止事件,则注销所述容器提供的应用服务;
获取更新后的应用服务的信息,将所述更新后的应用服务的信息作为当前注册的应用服务的信息。
可选的,所述注册所述容器提供的应用服务,包括:使用应用服务目录,记录所述容器提供的应用服务的信息;
相应的,所述注销所述容器提供的应用服务,包括:从所述应用服务目录中删除所述容器提供的应用服务的信息;
相应的,所述获得当前注册的应用服务的信息,包括:
获取所述服务目录当前记录的应用服务的信息。
可选的,所述根据所述当前注册的应用服务的信息,确定反向代理服务器的配置信息,包括:
确定当前注册的应用服务的信息是更新后的应用服务的信息;
根据定制规则,使用所述更新后的应用服务的信息生成反向代理服务器的新的配置信息。
可选的,所述应用服务注册的方法,还包括:
将所述反向代理服务器的配置信息,更新到指定的配置文件。
可选的,所述根据所述反向代理服务器的配置信息,更新反向代理服务器的配置,包括:
检测所述指定的配置文件是否可用;
若是,则使用所述指定的配置文件更新反向代理服务器的配置。
本申请还提供一种应用服务更新的方法,包括:
接收对提供应用服务的至少一个容器的编排指令;
根据所述编排指令编排所述至少一个容器,得到编排后的容器;
将编排后的容器提供的应用服务注册到监听应用服务的实体。
可选的,所述编排指令包括下述至少一种编排指令:
停止或删除所述至少一个容器中的第一容器的指令;
使用新镜像文件或历史镜像文件更新所述至少一个容器中的第一容器的指令;
增加或删除运行所述至少一个容器中的第一容器的节点的指令。
可选的,所述根据所述编排指令编排所述至少一个容器,得到编排后的容器,包括:
根据停止所述至少一个容器中的第一容器的指令,停止所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
可选的,所述根据所述编排指令编排所述至少一个容器,得到编排后的容器,包括:
根据删除所述至少一个容器中的第一容器的指令,删除所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
可选的,所述根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,包括:
从运行所述至少一个容器中的第一容器的节点获取所述新镜像文件或历史镜像文件;和/或,从镜像仓库拉取所述新镜像文件或历史镜像文件;
使用所述新镜像文件或历史镜像文件,更新所述至少一个容器中的第一容器。
可选的,所述应用服务更新的方法,还包括:
确定运行所述至少一个容器中的第一容器的节点是否存储有所述新镜像文件或历史镜像文件;
若否,则从镜像仓库拉取所述新镜像文件或历史镜像文件。
可选的,所述应用服务更新的方法,还包括:
若所述镜像仓库没有所述新镜像文件,则指示控制机创建所述新镜像文件,并将所述新镜像文件上传至所述镜像仓库。
可选的,所述容器,运行于至少两个节点上;相应的,所述将编排后的容器提供的应用服务注册到监听应用服务的实体,包括进行下述操作:
更新第一节点上的容器;
根据所述第一节点上更新后的容器的信息,将所述第一节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体;
在确定所述第一节点上的容器提供的应用服务可用后,更新第二节点上的容器;
根据所述第二节点上更新后的容器的信息,将所述第二节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体。
可选的,所述接收对提供应用服务的至少一个容器的编排指令,包括:
接收docker swarm API接口传递的所述编排指令。
可选的,所述容器,是基于docker启动的提供应用服务的docker容器。
本申请还提供一种应用服务注册的装置,包括:
服务信息获取单元,用于获得当前注册的应用服务的信息;
配置确定单元,用于根据所述当前注册的应用服务的信息,确定反向代理服务器的配置信息,所述配置信息用于所述反向代理服务器转发访问所述当前注册的应用服务的请求;
配置加载单元,用于根据所述反向代理服务器的配置信息,更新反向代理服务器的配置。
本申请还提供一种应用服务更新的装置,包括:
编排指令接收单元,用于接收对提供应用服务的至少一个容器的编排指令;
容器编排单元,用于根据所述编排指令编排所述至少一个容器,得到编排后的容器;
服务注册单元,用于将编排后的容器提供的应用服务注册到监听应用服务的实体。
与现有技术相比,本申请具有以下优点:
本申请提供的应用服务注册的方法及装置,通过使用当前注册的应用服务的信息确定反向代理服务器的配置信息,根据所述配置信息更新反向代理服务器的配置,从而解决了更新后的docker容器提供的应用服务可能无法及时更新到反向代理服务器,进而导致外部无法访问更新后的docker容器提供的应用服务的问题。
附图说明
图1是本申请第一实施例提供的应用服务注册的方法的处理流程图;
图2是本申请第二实施例提供的应用服务更新的方法的处理流程图;
图3是本申请第三实施例提供的应用服务注册的装置的示意图;
图4是本申请第四实施例提供的应用服务更新的装置的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种应用服务注册的方法及装置。本申请还涉及一种应用服务更新的方法及装。在下面的实施例中逐一进行详细说明。
本申请第一实施例提供一种应用服务注册的方法。
以下结合图1对本申请第一实施例提供一种应用服务注册的方法进行说明。
图1所示的应用服务注册的方法,包括:步骤S101至步骤S103。
步骤S101,获得当前注册的应用服务的信息。
本申请实施例中,提供应用服务的容器是docker容器。所述docker容器,是基于docker引擎启动运行的特定应用及特定应用的运行环境。所述docker引擎,是运行于操作系统内核上的应用容器引擎。通过容器提供应用服务的主机称为宿主机或docker主机。
宿主机上运行docker容器提供应用服务,反向代理服务器将来自docker容器外部的访问应用服务的请求转发给能响应所述请求的docker容器,从而使得docker容器外部能访问docker容器提供的应用服务。对应用服务进行调整时实际中的常见场景,例如,新增功能或删除功能或改变流程。本申请实施例提供的应用服务注册的方法,可以部署于宿主机,也可以部署于与宿主机通信的其他主机或服务器,将更新后的docker容器提供的应用服务的信息及时更新到反向代理服务器,例如,更新后的docker容器提供应用服务的网络端口与包括宿主机IP和随机端口的映射端口的映射信息,及时更新到反向代理服务器的配置中,从而使得docker容器外部能及时使用调整后的应用服务。
本步骤是获得当前注册的应用服务的信息。
本申请实施例中,通过监听docker容器的事件确定docker容器的运行状态,根据docker容器当前运行状态获得当前注册的应用服务的信息。具体的,包括下述处理:
监听容器的启动事件和/或停止事件;
若监听到所述容器的启动事件,则注册所述容器提供的应用服务;若监听到所述容器的停止事件,则注销所述容器提供的应用服务;
获取更新后的应用服务的信息,将所述更新后的应用服务的信息作为当前注册的应用服务的信息。
例如,部署所述应用服务注册的方法的实体,通过监听docker的socket端口直接监听docker容器的事件。
优选的,使用应用服务目录,记录所述容器提供的应用服务的信息。相应的,所述注销所述容器提供的应用服务,包括:从所述应用服务目录中删除所述容器提供的应用服务的信息。
相应的,所述获得当前注册的应用服务的信息,包括:获取所述服务目录当前记录的应用服务的信息。
另外,也可以使用键/值对存储应用服务对应的服务名与提供应用服务的地址例如IP和端口。
步骤S102,根据所述当前注册的应用服务的信息,确定反向代理服务器的配置信息,所所述配置信息用于所述反向代理服务器转发访问所述当前注册的应用服务的请求。
本步骤是,根据步骤S101获得的当前注册的应用服务的信息,实时确定反向代理服务器的最新配置信息。
本申请实施例中,具体采用下述处理确定反向代理服务器的最新配置信息:
确定当前注册的应用服务的信息是更新后的应用服务的信息;
根据定制规则,使用所述更新后的应用服务的信息生成反向代理服务器的新的配置信息。其中,所述定制规则,是预定的生成反向代理服务器配置的规则,例如,指定获取服务名称以及由所述服务名称标识的应用服务的地址,外部通过所述地址访问由所述服务名称标识的应用服务。
举例如下:可以通过与反向代理服务器当前生效的配置中的应用服务的信息对比,确定所述当前注册的应用服务的信息是更新后的应用服务的信息;再根据读取到的所述当前注册的应用服务的信息,确定反向代理服务器的上游服务器(upstream)的配置信息,反向代理服务器的上游服务器用于提供外部访问的应用服务的地址信息。
优选的,将所述反向代理服务器的配置信息,更新到指定的配置文件。以便后续加载所述指定的配置文件使新配置生效。
如果所述应用服务注册的方法和反向代理服务器未部署在同一个实体上,则将反向代理服务器的配置信息或更新的指定的配置文件,推送到反向代理服务器。
步骤S103,根据所述反向代理服务器的配置信息,更新反向代理服务器的配置。
本步骤是加载步骤S102得到的反向代理服务器的配置信息,使得与当前注册的应用服务对应的配置生效。
本申请实施例中,由于将所述反向代理服务器的配置信息,更新到指定的配置文件,因此指示反向代理服务器加载所述指定的配置文件,使得新配置生效。具体的,包括:
检测所述指定的配置文件是否可用;
若是,则使用所述指定的配置文件更新反向代理服务器的配置。
为了保证可靠性,实际环境中往往同时运行两个或以上docker容器来提供一个应用服务,并且提供应用服务的docker容器会分布在多个宿主机上,本申请实施例提供的应用服务注册的方法,是根据当前注册的应用服务的信息生成反向代理服务器的配置,因而不需要选举提供应用服务的服务器节点,避免了选举过程的非实时更新。
以本申请第一实施例提供的应用服务注册的方法为基础,本申请第二实施例提供一种应用服务更新的方法。
本申请第二实施例描述得比较简单,相关的部分请参见本申请第一实施例的对应说明即可。
图2所示的应用服务更新的方法,包括:步骤S201至步骤S203。
步骤S201,接收对提供应用服务的至少一个容器的编排指令。
本申请实施例中,应用服务是指通过容器提供的服务。所述容器,是基于docker启动的提供应用服务的docker容器。
所述docker容器,是基于docker引擎启动运行的特定应用及特定应用的运行环境。所述docker引擎,是运行于操作系统内核上的应用容器引擎。通过容器提供应用服务的主机称为宿主机或docker主机。宿主机根据所述镜像文件,通过docker从系统可用计算资源中创建或启动运行实例,从而达到运行所述特定应用以提供应用服务的目的。所述运行实例即为基于docker引擎启动运行的应用及应用的运行环境的容器,也称为docker容器。其中,所述镜像文件,是指将应用、应用的依赖库及运行时的配置参数打包成的镜像文件(image或images),所述配置参数是所述docker容器运行时的环境参数。
本申请实施例中,宿主机上运行docker容器提供应用服务,所述应用服务的信息通过注册到监听应用服务的实体,从而使得docker容器外部能访问docker容器提供的应用服务。
本申请实施例提供的应用服务更新的方法,可以部署于宿主机,也可以部署于与宿主机通信的其他主机或服务器。具体的,通过对提供应用服务的docker容器进行容器编排,从而更新应用服务,并将更新后的docker容器提供的应用服务的信息注册到监听应用服务的实体,从而使得docker容器外部能及时使用更新后docker容器提供的应用服务。
所谓容器编排,是指对容器进行的管理操作,包括下述任一操作:使用指定的镜像文件启动容器、停止容器、删除容器。
本步骤是接收对提供应用服务的容器的编排指令。
为了保证可靠性,实际环境中往往同时运行两个或以上docker容器来提供一个应用服务,并且提供应用服务的docker容器会分布在多个宿主机上。具体到本申请实施例,接收对提供应用服务的至少一个容器的编排指令,其中,所述编排指令包括下述至少一种编排指令:
停止或删除所述至少一个容器中的第一容器的指令;
使用新镜像文件或历史镜像文件更新所述至少一个容器中的第一容器的指令;
增加或删除运行所述至少一个容器中的第一容器的节点的指令。
优选的,接收docker swarm API接口传递的所述编排指令。
另外,也可以接收管理界面或命令行下发的编排命令。
步骤S202,根据所述编排指令编排所述至少一个容器,得到编排后的容器。
本步骤是根据步骤S201中的编排指令对容器进行编排。
具体的,若接收到停止所述至少一个容器中的第一容器的指令,以及使用新镜像文件或历史镜像文件更新所述至少一个容器中的第一容器的指令,则进行下述编排操作:
根据停止所述至少一个容器中的第一容器的指令,停止所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
若接收到删除所述至少一个容器中的第一容器的指令,以及使用新镜像文件或历史镜像文件更新所述至少一个容器中的第一容器的指令,则进行下述编排操作:
根据删除所述至少一个容器中的第一容器的指令,删除所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
本申请实施例中,所述新镜像文件或历史镜像文件,可以是存储在所述第一容器节点的本地存储空间,也可以是存储在镜像仓库。使用新镜像文件更新容器称为升级容器,使用历史镜像文件更新容器称为回退容器。具体的,根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,包括:
从运行所述至少一个容器中的第一容器的节点获取所述新镜像文件或历史镜像文件;和/或,从镜像仓库拉取所述新镜像文件或历史镜像文件;
使用所述新镜像文件或历史镜像文件,更新所述至少一个容器中的第一容器。
优选的,确定运行所述至少一个容器中的第一容器的节点是否存储有所述新镜像文件或历史镜像文件;若否,则从镜像仓库拉取所述新镜像文件或历史镜像文件。
本申请实施例中,若所述镜像仓库没有所述新镜像文件,则指示控制机创建所述新镜像文件,并将所述新镜像文件上传至所述镜像仓库。
步骤S203,将编排后的容器提供的应用服务注册到监听应用服务的实体。
本步骤是将编排后的容器提供的应用服务注册到监听应用服务的实体,以便更新后的应用服务能及时被发现。
当提供应用服务的docker容器运行于两个或多个节点时,可以对docker容器提供的应用服务进行平滑更新。例如,所述容器运行于两个节点上;相应的,所述平滑更新,具体包括下述操作:
更新第一节点上的容器;
根据所述第一节点上更新后的容器的信息,将所述第一节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体;
在确定所述第一节点上的容器提供的应用服务可用后,更新第二节点上的容器;
根据所述第二节点上更新后的容器的信息,将所述第二节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体。
通过上述步骤,能够对docker容器提供的应用服务进行平滑更新。平滑更新可以避免应用服务中断,保证应用服务的可靠性。
与本申请提供的一种应用服务注册的方法的实施例相对应,本申请第三实施例还提供了一种应用服务注册的装置。
参照图3,其示出了本申请第三实施例提供的应用服务注册的装置示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。
图3所示的应用服务注册的装置,包括:
服务信息获取单元301,用于获得当前注册的应用服务的信息;
配置确定单元302,用于根据所述当前注册的应用服务的信息,确定反向代理服务器的配置信息,所述配置信息用于所述反向代理服务器转发访问所述当前注册的应用服务的请求;
配置加载单元303,用于根据所述反向代理服务器的配置信息,更新反向代理服务器的配置。
可选的,所述服务信息获取单元301,具体用于:
监听容器的启动事件和/或停止事件;
若监听到所述容器的启动事件,则注册所述容器提供的应用服务;若监听到所述容器的停止事件,则注销所述容器提供的应用服务;
获取更新后的应用服务的信息,将所述更新后的应用服务的信息作为当前注册的应用服务的信息。
可选的,所述注册所述容器提供的应用服务,包括:使用应用服务目录,记录所述容器提供的应用服务的信息;
相应的,所述注销所述容器提供的应用服务,包括:从所述应用服务目录中删除所述容器提供的应用服务的信息;
相应的,所述获得当前注册的应用服务的信息,包括:
获取所述服务目录当前记录的应用服务的信息。
可选的,所述配置确定单元302,具体用于:
确定当前注册的应用服务的信息是更新后的应用服务的信息;
根据定制规则,使用所述更新后的应用服务的信息生成反向代理服务器的新的配置信息。
可选的,所述应用服务注册的装置,还包括更新配置文件单元,用于:
将所述反向代理服务器的配置信息,更新到指定的配置文件。
可选的,所述配置加载单元303,具体用于:
检测所述指定的配置文件是否可用;
若是,则使用所述指定的配置文件更新反向代理服务器的配置。
与本申请提供的一种应用服务更新的方法的实施例相对应,本申请第四实施例还提供了一种应用服务更新的装置。
参照图4,其示出了本申请第四实施例提供的应用服务更新的装置示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。
图4所示的应用服务更新的装置,包括:
编排指令接收单元401,用于接收对提供应用服务的至少一个容器的编排指令;
容器编排单元402,用于根据所述编排指令编排所述至少一个容器,得到编排后的容器;
服务注册单元403,用于将编排后的容器提供的应用服务注册到监听应用服务的实体。
可选的,所述编排指令包括下述至少一种编排指令:
停止或删除所述至少一个容器中的第一容器的指令;
使用新镜像文件或历史镜像文件更新所述至少一个容器中的第一容器的指令;
增加或删除运行所述至少一个容器中的第一容器的节点的指令。
可选的,所述容器编排单元402,具体用于:
根据停止所述至少一个容器中的第一容器的指令,停止所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
可选的,所述容器编排单元402,具体用于:
根据删除所述至少一个容器中的第一容器的指令,删除所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
可选的,所示容器编排单元402,包括镜像文件获取子单元和更新子单元,
所述镜像文件获取子单元,用于:
从运行所述至少一个容器中的第一容器的节点获取所述新镜像文件或历史镜像文件;和/或,从镜像仓库拉取所述新镜像文件或历史镜像文件;
所述更新子单元,用于:使用所述新镜像文件或历史镜像文件,更新所述至少一个容器中的第一容器。
可选的,所述镜像文件获取子单元,具体用于:
确定运行所述至少一个容器中的第一容器的节点是否存储有所述新镜像文件或历史镜像文件;
若否,则从镜像仓库拉取所述新镜像文件或历史镜像文件。
可选的,所述镜像文件获取子单元,还用于:
若所述镜像仓库没有所述新镜像文件,则指示控制机创建所述新镜像文件,并将所述新镜像文件上传至所述镜像仓库。
可选的,所述容器,运行于至少两个节点上;相应的,所述将编排后的容器提供的应用服务注册到监听应用服务的实体,包括进行下述操作:
更新第一节点上的容器;
根据所述第一节点上更新后的容器的信息,将所述第一节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体;
在确定所述第一节点上的容器提供的应用服务可用后,更新第二节点上的容器;
根据所述第二节点上更新后的容器的信息,将所述第二节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体。
可选的,所述编排指令接收单元401,具体用于:
接收docker swarm API接口传递的所述编排指令。
可选的,所述容器,是基于docker启动的提供应用服务的docker容器。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (14)
1.一种应用服务注册的方法,其特征在于,包括:
通过监听提供应用服务的容器的端口直接监听所述容器的事件,通过监听到的事件确定所述容器的运行状态,根据所述容器当前运行状态获得当前注册的应用服务的信息;
对比所述当前注册的应用服务的信息与反向代理服务器当前生效的配置,确定所述当前注册的应用服务的信息是更新后的应用服务的信息,根据定制规则使用所述更新后的应用服务的信息生成反向代理服务器的配置信息,所述配置信息用于所述反向代理服务器转发访问所述当前注册的应用服务的请求;
将所述反向代理服务器的配置信息更新到指定的配置文件,如果检测所述指定的配置文件可用,则使用所述指定的配置文件更新反向代理服务器的配置。
2.根据权利要求1所述的方法,其特征在于,所述获得当前注册的应用服务的信息,包括:
监听容器的启动事件和/或停止事件;
若监听到所述容器的启动事件,则注册所述容器提供的应用服务;若监听到所述容器的停止事件,则注销所述容器提供的应用服务;
获取更新后的应用服务的信息,将所述更新后的应用服务的信息作为当前注册的应用服务的信息。
3.根据权利要求2所述的方法,其特征在于,所述注册所述容器提供的应用服务,包括:使用应用服务目录,记录所述容器提供的应用服务的信息;
相应的,所述注销所述容器提供的应用服务,包括:从所述应用服务目录中删除所述容器提供的应用服务的信息;
相应的,所述获得当前注册的应用服务的信息,包括:
获取所述服务目录当前记录的应用服务的信息。
4.一种应用服务更新的方法,其特征在于,包括:
接收对提供应用服务的至少一个容器的编排指令;
根据所述编排指令编排所述至少一个容器,得到编排后的容器;
将编排后的容器提供的应用服务注册到监听应用服务的实体;其中,所述监听应用服务的实体用于获得注册的应用服务的信息,并采用权利要求1所述的应用服务注册的方法注册,使得容器外部能及时使用更新后容器提供的应用服务;
其中,所述将编排后的容器提供的应用服务注册到监听应用服务的实体,包括:更新第一节点上的容器;根据所述第一节点上更新后的容器的信息,将所述第一节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体;在确定所述第一节点上的容器提供的应用服务可用后,更新第二节点上的容器;根据所述第二节点上更新后的容器的信息,将所述第二节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体。
5.根据权利要求4所述的方法,其特征在于,所述编排指令包括下述至少一种编排指令:
停止或删除所述至少一个容器中的第一容器的指令;
使用新镜像文件或历史镜像文件更新所述至少一个容器中的第一容器的指令;
增加或删除运行所述至少一个容器中的第一容器的节点的指令。
6.根据权利要求5所述的方法,其特征在于,所述根据所述编排指令编排所述至少一个容器,得到编排后的容器,包括:
根据停止所述至少一个容器中的第一容器的指令,停止所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
7.根据权利要求5所述的方法,其特征在于,所述根据所述编排指令编排所述至少一个容器,得到编排后的容器,包括:
根据删除所述至少一个容器中的第一容器的指令,删除所述第一容器;
根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,得到编排后的容器。
8.根据权利要求6或7任一项所述的方法,其特征在于,所述根据使用新镜像文件或历史镜像文件更新所述第一容器的指令,更新所述第一容器,包括:
从运行所述至少一个容器中的第一容器的节点获取所述新镜像文件或历史镜像文件;和/或,从镜像仓库拉取所述新镜像文件或历史镜像文件;
使用所述新镜像文件或历史镜像文件,更新所述至少一个容器中的第一容器。
9.根据权利要求8所述的方法,其特征在于,还包括:
确定运行所述至少一个容器中的第一容器的节点是否存储有所述新镜像文件或历史镜像文件;
若否,则从镜像仓库拉取所述新镜像文件或历史镜像文件。
10.根据权利要求8所述的方法,其特征在于,还包括:
若所述镜像仓库没有所述新镜像文件,则指示控制机创建所述新镜像文件,并将所述新镜像文件上传至所述镜像仓库。
11.根据权利要求4所述的方法,其特征在于,所述接收对提供应用服务的至少一个容器的编排指令,包括:
接收docker swarm API接口传递的所述编排指令。
12.根据权利要求4所述的方法,其特征在于,所述容器,是基于docker启动的提供应用服务的docker容器。
13.一种应用服务注册的装置,其特征在于,包括:
服务信息获取单元,用于通过监听提供应用服务的容器的端口直接监听所述容器的事件,通过监听到的事件确定所述容器的运行状态,根据所述容器当前运行状态获得当前注册的应用服务的信息;
配置确定单元,用于对比所述当前注册的应用服务的信息与反向代理服务器当前生效的配置,确定所述当前注册的应用服务的信息是更新后的应用服务的信息,根据定制规则使用所述更新后的应用服务的信息生成反向代理服务器的配置信息,所述配置信息用于所述反向代理服务器转发访问所述当前注册的应用服务的请求;
配置加载单元,用于将所述反向代理服务器的配置信息更新到指定的配置文件,如果检测所述指定的配置文件可用,则使用所述指定的配置文件更新反向代理服务器的配置。
14.一种应用服务更新的装置,其特征在于,包括:
编排指令接收单元,用于接收对提供应用服务的至少一个容器的编排指令;
容器编排单元,用于根据所述编排指令编排所述至少一个容器,得到编排后的容器;
服务注册单元,用于将编排后的容器提供的应用服务注册到监听应用服务的实体;
其中,所述监听应用服务的实体用于获得注册的应用服务的信息,并采用权利要求1所述的应用服务注册的方法注册,使得容器外部能及时使用更新后容器提供的应用服务;
其中,所述将编排后的容器提供的应用服务注册到监听应用服务的实体,包括:更新第一节点上的容器;根据所述第一节点上更新后的容器的信息,将所述第一节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体;在确定所述第一节点上的容器提供的应用服务可用后,更新第二节点上的容器;根据所述第二节点上更新后的容器的信息,将所述第二节点上更新后的容器提供的应用服务注册到所述监听应用服务的实体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810449513.9A CN108616599B (zh) | 2018-05-11 | 2018-05-11 | 应用服务注册、更新的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810449513.9A CN108616599B (zh) | 2018-05-11 | 2018-05-11 | 应用服务注册、更新的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108616599A CN108616599A (zh) | 2018-10-02 |
CN108616599B true CN108616599B (zh) | 2021-10-29 |
Family
ID=63663099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810449513.9A Expired - Fee Related CN108616599B (zh) | 2018-05-11 | 2018-05-11 | 应用服务注册、更新的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108616599B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542590B (zh) * | 2018-11-28 | 2022-12-20 | 上海酷栈科技有限公司 | Docker集群多租户下虚拟Socket通信的方法 |
CN109683916A (zh) * | 2018-12-03 | 2019-04-26 | 武汉钢铁工程技术集团通信有限责任公司 | 一种自主创建包含应用软件的云主机镜像的方法 |
CN109739518B (zh) * | 2018-12-25 | 2021-05-28 | 杭州数梦工场科技有限公司 | 生成离线软件资源的方法及装置 |
CN110427194B (zh) * | 2019-06-18 | 2024-05-14 | 平安科技(深圳)有限公司 | 容器应用删除方法、装置、计算机设备及存储介质 |
CN111694639B (zh) * | 2020-05-28 | 2023-11-24 | 新浪技术(中国)有限公司 | 进程容器地址的更新方法、装置和电子设备 |
CN111984289A (zh) * | 2020-07-31 | 2020-11-24 | 广州市百果园信息技术有限公司 | 一种服务更新方法、装置、设备及存储介质 |
CN111984272B (zh) * | 2020-09-08 | 2023-11-17 | 河北幸福消费金融股份有限公司 | 应用自动上线的方法、系统、存储介质及计算机设备 |
CN112214284A (zh) * | 2020-10-21 | 2021-01-12 | 北京首都在线科技股份有限公司 | 镜像部署方法、装置、设备及存储介质 |
CN112929429B (zh) * | 2021-01-27 | 2023-03-24 | 长沙市到家悠享网络科技有限公司 | 请求处理方法、装置和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618164A (zh) * | 2015-02-12 | 2015-05-13 | 北京航空航天大学 | 云计算平台应用快速部署的管理方法 |
CN106302596A (zh) * | 2015-06-03 | 2017-01-04 | 北京京东尚科信息技术有限公司 | 一种服务发现的方法和装置 |
CN106790595A (zh) * | 2016-12-29 | 2017-05-31 | 上海理想信息产业(集团)有限公司 | 一种Docker容器主动负载均衡装置及方法 |
CN107370816A (zh) * | 2017-07-26 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种Web应用的部署方法和装置 |
CN107667517A (zh) * | 2015-06-03 | 2018-02-06 | 瑞典爱立信有限公司 | 用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256178B (zh) * | 2017-04-27 | 2019-12-17 | 北京数人科技有限公司 | 一种容器管理平台 |
CN107294785B (zh) * | 2017-07-11 | 2020-07-28 | 上海帝联信息科技股份有限公司 | Cdn节点服务的自动部署方法及装置、计算机可读存储介质 |
CN107426034B (zh) * | 2017-08-18 | 2020-09-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN107688322A (zh) * | 2017-08-31 | 2018-02-13 | 天津中新智冠信息技术有限公司 | 一种容器化管理系统 |
CN107547661B (zh) * | 2017-10-12 | 2020-05-08 | 中电福富信息科技有限公司 | 一种容器负载均衡实现方法 |
-
2018
- 2018-05-11 CN CN201810449513.9A patent/CN108616599B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618164A (zh) * | 2015-02-12 | 2015-05-13 | 北京航空航天大学 | 云计算平台应用快速部署的管理方法 |
CN106302596A (zh) * | 2015-06-03 | 2017-01-04 | 北京京东尚科信息技术有限公司 | 一种服务发现的方法和装置 |
CN107667517A (zh) * | 2015-06-03 | 2018-02-06 | 瑞典爱立信有限公司 | 用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器 |
CN106790595A (zh) * | 2016-12-29 | 2017-05-31 | 上海理想信息产业(集团)有限公司 | 一种Docker容器主动负载均衡装置及方法 |
CN107370816A (zh) * | 2017-07-26 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种Web应用的部署方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于Docker、Swarm、Consul与Nginx构建高可用和可扩展Web服务框架的方法;张宁溪,朱晓民;《电信技术》;20161125;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108616599A (zh) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108616599B (zh) | 应用服务注册、更新的方法及装置 | |
CN111930473B (zh) | 在容器云上部署图像识别服务的方法与设备 | |
US10992746B2 (en) | Automatic system response to external field-replaceable unit (FRU) process | |
US11336588B2 (en) | Metadata driven static determination of controller availability | |
CN111897623B (zh) | 一种集群管理方法、装置、设备及存储介质 | |
US20130007377A1 (en) | Message oriented middleware with integrated rules engine | |
CN108572888B (zh) | 磁盘快照创建方法和磁盘快照创建装置 | |
US20120159515A1 (en) | Sharing object representations | |
CN114356504A (zh) | 集群中数据迁移方法、装置、电子设备和存储介质 | |
US10684895B1 (en) | Systems and methods for managing containerized applications in a flexible appliance platform | |
US20180239516A1 (en) | Methods for generating and publishing microsites and devices thereof | |
CN113821194A (zh) | 一种微前端系统 | |
US11003652B1 (en) | Multi-write database modification | |
CN112860507A (zh) | 分布式链路跟踪系统采样率的控制方法和装置 | |
US20140344802A1 (en) | Shared application binary storage | |
WO2020135129A1 (zh) | 加载应用的插件的方法、装置和终端 | |
CN116303309A (zh) | 文件挂载方法、装置和电子设备 | |
CN113157392B (zh) | 镜像仓库高可用方法及设备 | |
CN111459619A (zh) | 一种基于云平台实现服务的方法和装置 | |
CN106790521B (zh) | 采用基于ftp的节点设备进行分布式组网的系统及方法 | |
CN115714706A (zh) | 基于内嵌h5的访问加速系统、方法、存储介质及电子设备 | |
US20210248106A1 (en) | Systems and methods for updating select files in an image backup | |
CN113867776A (zh) | 中台应用的发布方法、装置、电子设备和存储介质 | |
CN110968888B (zh) | 一种数据处理方法及装置 | |
WO2020029995A1 (en) | Application upgrading through sharing dependencies |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211029 |
|
CF01 | Termination of patent right due to non-payment of annual fee |