CN111694639A - 进程容器地址的更新方法、装置和电子设备 - Google Patents

进程容器地址的更新方法、装置和电子设备 Download PDF

Info

Publication number
CN111694639A
CN111694639A CN202010470942.1A CN202010470942A CN111694639A CN 111694639 A CN111694639 A CN 111694639A CN 202010470942 A CN202010470942 A CN 202010470942A CN 111694639 A CN111694639 A CN 111694639A
Authority
CN
China
Prior art keywords
container
target
list
address
cluster
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
CN202010470942.1A
Other languages
English (en)
Other versions
CN111694639B (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.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China 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 Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN202010470942.1A priority Critical patent/CN111694639B/zh
Publication of CN111694639A publication Critical patent/CN111694639A/zh
Application granted granted Critical
Publication of CN111694639B publication Critical patent/CN111694639B/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
    • 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/45595Network integration; Enabling network access in virtual machine instances

Abstract

本申请公开了一种进程容器地址的更新方法、装置和电子设备,用于解决现有技术中Kubernetes中的POD IP有变动时,Tengine代理服务器的后端列表中的POD IP无法及时得到修改的问题。该方法包括:容器集群的指定主节点接收第一用户发出的容器更新请求,基于容器更新请求,更新指定主节点对应的进程容器的数量;指定主节点基于更新后的容器集群中指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,目标容器列表中包含更新后的容器集群中与指定主节点对应的至少一个进程容器的地址;容器集群的代理服务器基于目标容器列表中的至少一个进程容器的地址,更新代理服务器的目标后端列表中相应的进程容器的地址。

Description

进程容器地址的更新方法、装置和电子设备
技术领域
本申请属于计算机技术领域,具体涉及一种进程容器地址的更新方法、装置和电子设备。
背景技术
目前,Kubernetes和Tengine应用越来越广泛。其中,Kubernetes是大规模容器管理工具,用于管理和调度云平台中多个主机上运行进程的容器;Tengine是在Nginx的基础上进一步开发出的更稳定、更高效的代理服务器。
现有的容器云项目中,Kubernetes中存储的进程容器POD的IP列表、与Tengine代理服务器中的存储POD IP的后端列表是静态的。也就是说,Tengine代理服务器的后端列表中的POD IP是固定的,无法进行修改的。每当Kubernetes中的POD IP有变动时,都需要技术人员重新下发Tengine代理服务器的配置文件,并重新加载Tengine代理服务器中的进程。
上述Kubernetes中的POD IP有变动时,Tengine代理服务器的后端列表中的PODIP无法及时得到修改的情况,使得POD丧失了其原本具有的快速扩缩容的功能;并且,每次重新加载Tengine代理服务器中的进程之前,都需要重新编译Tengine代理服务器,大大增加了使用Tengine代理服务器的操作复杂度。
发明内容
本申请实施例的目的是提供一种进程容器地址的更新方法、装置和电子设备,能够解决现有技术中Kubernetes中的POD IP有变动时,Tengine代理服务器的后端列表中的POD IP无法及时得到修改的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种进程容器地址的更新方法,该方法包括:
容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
第二方面,本申请实施例提供了一种进程容器地址的更新装置,该装置包括:
第一更新单元,用于容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
生成单元,用于所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
第二更新单元,用于所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
第三方面,本申请实施例提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
在本申请实施例中,首先,容器集群的指定主节点接收第一用户发出的容器更新请求,基于容器更新请求,更新指定主节点对应的进程容器的数量,容器集群中包括至少一个进程容器;然后,指定主节点基于更新后的容器集群中指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,目标容器列表中包含更新后的容器集群中与指定主节点对应的至少一个进程容器的地址;最后,容器集群的代理服务器基于目标容器列表中的至少一个进程容器的地址,更新代理服务器的目标后端列表中相应的进程容器的地址。
这样,代理服务器能够实时获取目标容器列表,并基于目标容器列表更新目标后端列表中进程容器的地址,使得更新后的目标后端列表能够立即生效,避免了每次更新目标后端列表时,都需要重新编译并加载代理服务器,从而降低了发生故障的概率和代理服务器的操作复杂度,提高了容器集群扩缩容的效率。
附图说明
图1为本申请实施例提供的一种进程容器地址的更新方法的实现流程示意图;
图2为本申请实施例提供的进程容器地址的更新方法中一种容器集群的结构示意图;
图3为本申请实施例提供的进程容器地址的更新方法中一种更新进程容器地址的流程示意图;
图4为本申请实施例提供的进程容器地址的更新方法中一种响应访问请求的流程示意图;
图5为本申请实施例提供的一种进程容器地址的更新装置的结构示意图;
图6为本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,本申请实施例提供的进程容器地址的更新方法,执行主体可以为进程容器地址的更新装置,或者该进程容器地址的更新装置中的用于执行加载进程容器地址的更新的方法的控制模块。本申请实施例中以进程容器地址的更新装置执行加载进程容器地址的更新的方法为例,说明本申请实施例提供的进程容器地址的更新的方法。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的进程容器地址的更新方法进行详细地说明。
步骤101,容器集群的指定主节点接收第一用户发出的容器更新请求,基于容器更新请求,更新指定主节点对应的进程容器的数量;
其中,容器集群中包括至少一个进程容器,进程容器的地址可以是网际互连协议地址。
应理解,本申请实施例提供的方法中的进程容器可以是现有技术中的POD,容器集群可以是Kubernetes集群模块,代理服务器可以是Tengine代理服务器,并且,进程容器中可运行多个进程,即进程容器可作为服务器,来处理访问请求。
其中,Kubernetes是一种大规模容器集群管理工具,可用于智能管理进程容器集群和调度进程容器等,每个进程容器可由一个或多个普通容器组成,且每个普通容器中可运行着自建的Linux执行环境。Kubernetes可更快、更轻量级地部署进程容器中运行的应用服务,并实现进程容器的快速扩缩容。
Tengine是在Nginx代理服务器基础上开发出的更稳定、更高效的Web服务器。Tengine服务器作为代理服务器,可支持负载均衡功能,且可支持动态加载模块。Tengine作为代理服务器时,可加载记录进程容器的地址的后端列表,并可根据第一用户发出的访问请求,将该访问请求发送给指定进程容器,使得指定进程容器中的应用程序处理该访问请求。
此外,代理服务器中还可包括如Auto-obtain-ip等动态模块,可用于监听容器集群中的进程容器的信息。
具体地,当业务请求的流量突增,或业务请求的流量大幅度减少时,如技术人员等的第一用户可通过页面操作,指定增加或减少进程容器,来实现服务器的扩缩容。
如图2所示,为本申请实施例提供的进程容器地址的更新方法中一种容器集群的结构示意图。如图2,一个容器集群中可包括至少一个主节点,一个主节点可对应至少一个子节点,一个子节点对应一个主节点。
其中,每个主节点对应于至少一个进程容器,一个主节点对应的所有进程容器的域名都相同。为了方便主节点管理对应的子节点、以及对应的进程容器,一个主节点可与一个容器列表相互对应,该容器列表中可只包含该主节点对应的进程容器的地址。
可选地,第一用户发出的容器更新请求可以是只针对同一个域名的至少一个进程容器的更新请求,这样,在处理该容器更新请求时,只要基于容器更新请求中的域名就能确定进行容器更新的指定主节点。
具体地,在容器集群的指定主节点基于容器更新请求,更新指定主节点对应的进程容器的数量之前,本申请实施例提供的方法还包括:
代理服务器基于容器更新请求中的指定域名,从容器集群的至少一个主节点中确定域名与指定域名一致的主节点作为指定主节点。
可选地,为了使得容器集群能够基于第一用户发出的容器更新请求,快速实现扩缩容服务,在本申请实施例提供的方法中,第一用户通过页面等方式发送的容器更新请求中,可明确需要在容器集群中增加或删除指定数量的进程容器。
具体地,在本申请实施例中,指定主节点基于容器更新请求,更新指定主节点对应的进程容器的数量,包括:
如果容器更新请求用于请求在容器集群中添加进程容器,则指定主节点基于容器更新请求,在容器集群中添加相应的进程容器;和/或,
如果容器更新请求用于请求在容器集群中删除进程容器,则指定主节点基于容器更新请求,在容器集群中删除相应的进程容器。
具体地,在本申请实施例中,指定主节点基于容器更新请求,在容器集群中添加进程容器,包括:
指定主节点基于容器更新请求,确定在容器集群中添加的进程容器的指定数量和目标子节点标签;
指定主节点在容器集群中的子节点标签与目标子节点标签一致的子节点上添加指定数量的进程容器,其中,主节点对应于至少一个子节点,一个子节点对应于至少一个进程容器。
具体地,在本申请实施例中,指定主节点基于容器更新请求,在容器集群中删除目标进程容器,包括:
指定主节点基于容器更新请求,确定在容器集群中删除的进程容器的指定数量和目标子节点标签;
指定主节点在容器集群中的子节点标签与目标子节点标签一致的子节点上删除指定数量的进程容器,其中,指定主节点对应于至少一个子节点,一个子节点对应于至少一个进程容器,指定数量小于等于与目标子节点标签一致的子节点上的进程容器的数量。
可选地,为了避免第一用户发出的容器更新请求中,要求删除的进程容器的数量大于目标子节点上的进程容器的数量,导致删除目标子节点上的进程容器还不够完成指令,指定主节点在执行容器更新请求之前,可先对容器更新请求进行校验,验证要求删除的进程容器的指定数量是否小于等于目标子节点上进程容器的数量;若要求删除的进程容器的指定数量大于目标子节点上进程容器的数量,那么就可不执行该容器更新请求中的删除指令,并向第一用户反馈不执行的理由。
应理解,容器集群中不同类型的主节点对应的进程容器可实现不同类型的业务功能,即主节点和子节点上都可含有用于表示服务功能的标签,所以为了能够针对不同业务情形增加或删除进程容器,容器更新请求中可包括目标子节点的标签、以及需要增加或删除的进程容器的指定数量,用于确定增加进程容器的目标子节点,并根据业务情形更新容器集群中的进程容器。
此外,容器集群的主节点可用于管理容器集群的子节点,即可根据子节点上运行的进程容器的大小和数量,均衡子节点上的负载。
应理解,因为每个进程容器都会对应于一个地址,所以本申请实施例提供的方法,可通过在容器集群中增加或删除进程容器的方式,更新进程容器的数量和增加或删除的进程容器的地址。
应理解,在本申请实施例提供的方法中,采用Kubernetes可实现进程容器的创建与删除,容器集群的主节点在子节点上增加或删除进程容器的操作,是容器集群的主节点将容器集群已创建的进程容器分配给子节点,或取消进程容器处理访问请求的功能的过程。
步骤102,指定主节点基于更新后的容器集群中指定主节点对应的进程容器、进程容器的数量和进程容器的地址,生成目标容器列表;
其中,目标容器列表中可包含更新后的容器集群中与指定主节点对应的至少一个进程容器的地址,也可只包含指定主节点对应的进程容器的地址。
可选地,为了能够集中管理容器集群中所有进程容器,容器集群的主节点可从与其对应的子节点,获取子节点上的进程容器的名称和地址,并基于进程容器的名称和地址等信息,生成容器列表。
步骤103,容器集群的代理服务器基于目标容器列表中的至少一个进程容器的地址,更新代理服务器的目标后端列表中相应的进程容器的地址。
应理解,代理服务器可存储有一个包含容器集群中所有进程容器的地址的后端列表;也可存储有至少一个后端列表,一个后端列表对应于一个主节点,该后端列表中可包含该主节点对应的进程容器的地址。因此,目标后端列表既可以包含容器集群中所有进程容器的地址,也可以只包含与其对应的主节点对应的进程容器的地址。
可选地,可由代理服务器中的Auto-obtain-ip模块与容器集群建立长链接,用于实时监听容器集群,获取最新的目标容器列表。这样,只要Auto-obtain-ip模块监听到目标容器列表生成,就可立即获取目标容器列表,使得代理服务器能够及时更新目标后端列表。
可选地,为了避免对目标后端列表中的容器地址进行无效的更新,本申请实施例提供的方法能够将目标容器列表与目标后端列表作比较,并在目标容器列表与目标后端列表不同时,对目标后端列表进行更新。
具体地,在本申请实施例中,容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新代理服务器的目标后端列表中相应的进程容器的地址,包括:
如果代理服务器确定目标容器列表中的进程容器的地址未包含在目标后端列表中,则在目标后端列表中添加相应的进程容器的地址;
如果代理服务器确定目标后端列表中的进程容器的地址未包含在目标容器列表中,则从目标后端列表中删除相应的进程容器的地址。
具体地,首先,若对比得出目标容器列表中包含目标后端列表中没有的进程容器地址,代理服务器则在目标后端列表中增加该进程容器地址;然后,若对比得出目标容器列表中不包含目标后端列表中的部分进程容器地址,代理服务器则在目标后端列表中删除该进程容器地址,使得目标后端列表中的进程容器地址与目标容器列表中的进程容器地址相同;最后,代理服务器将更新后的目标后端列表保存到代理服务器的本地硬盘中。
可选地,上述更新操作可由代理服务器中的Auto-obtain-ip模块执行,即首先,Auto-obtain-ip模块可对比目标容器列表和目标后端列表;然后,Auto-obtain-ip模块可在目标后端列表中先增加进程容器地址,后删除进程容器地址,使得目标后端列表中的进程容器地址与目标容器列表中的进程容器地址相同;最后,Auto-obtain-ip模块可将更新后的目标后端列表,保存到代理服务器的本地硬盘中,并将更新后的目标后端列表发送给代理服务器中相应的进程,使得目标后端列表立即生效。
应理解,通过本申请实施例提供的方法,可实现实时更新代理服务器的目标后端列表中的进程容器地址,并使得更新后的目标后端列表实时生效,从而无需重新加载代理服务器;并且,还可将目标后端列表存储在代理服务器的本地硬盘中,从而避免配置文件的丢失导致目标后端列表的丢失。
具体地,如图3所示,为本申请实施例提供的进程容器地址的更新方法中一种更新进程容器地址的流程示意图。下面结合图3中的一种实施例进行说明,具体包括:
步骤301,第一用户通过页面操作,发出容器更新请求;
步骤302,代理服务器基于该容器更新请求中的指定域名,从容器集群的至少一个主节点中确定指定主节点;
步骤303,容器集群基于容器更新请求,创建或删除进程容器;并且,指定主节点将创建的容器分配到容器集群的子节点上;或/和,指定主节点从子节点上删除进程容器;
步骤304,指定主节点基于更新后的容器集群中的进程容器的信息,生成记录进程容器地址的目标容器列表;
步骤305,容器集群的代理服务器基于目标容器列表,按照先增加后删除的顺序更新目标后端列表,使得目标后端列表和目标容器列表一致;
步骤306,代理服务器将更新后的目标后端列表存储在代理服务器的本地硬盘中;
步骤307,代理服务器实时生效更新后的目标后端列表,使得代理服务器在此之后能够基于第二用户发送的访问请求,将该访问请求发送给正确的目标进程容器。
可选地,为了能够实时响应第二用户发送的访问请求,本申请实施例能够将该访问请求发送给对应的进程容器,使得该进程容器中的应用程序或进程处理该访问请求。
具体地,在容器集群的代理服务器基于目标容器列表中的至少一个进程容器的地址,更新代理服务器的目标后端列表中相应的进程容器的地址之后,本申请实施例提供的方法还包括:
代理服务器接收第二用户发送的访问请求,基于访问请求中的响应头信息,确定访问请求指定的目标进程容器,响应头信息中包含目标进程容器的域名与第二用户的地址;
代理服务器基于更新后的目标后端列表确定访问请求指定的目标进程容器的地址,将访问请求转发给访问请求指定的目标进程容器;
目标进程容器中的应用程序接收并处理访问请求,并将访问请求的处理结果发送给代理服务器;
代理服务器基于第二用户的地址,将访问请求的处理结果发送给第二用户。
可选地,响应头信息中可直接携带目标进程容器的地址,这样,代理服务器可不从目标后端列表中查找目标进程容器的地址,直接根据响应头信息中的目标进程容器的地址,将访问请求发送给目标进程容器。
此外,代理服务器还可根据响应头信息中的目标进程容器的统一资源定位符等,确定该访问请求可到达的目标进程容器。
具体地,首先,第二用户可通过互联网发出访问请求,该访问请求可通过网络核心入口进入代理服务器;然后,代理服务器可根据该访问请求中携带的响应头信息、以及容器集群中进程容器的路由规则,将该访问请求发送给指定的目标进程容器;最后,目标进程容器中的应用程序或进程处理该访问请求,并由代理服务器将处理结果发送给第二用户。
具体地,在一种实施例中,控制代理服务器发送访问请求至目标进程容器的代码可如下所示:
首先,代理服务器监听服务器端口和进程容器域名的代码,可以分别为:
listen a;
server_name b;
其中,a表示代理服务器监听的端口名称,b表示进程容器域的域名。
其次,代理服务器基于访问请求中的响应头信息,确定进程容器的统一资源定位符的代码,并将该访问请求发送给目标进程容器的代码可以为:
location/{
proxy_pass http://default;
}
其中,default表示目标进程容器的组名。
然后,代理服务器将目标后端列表保存到本地硬盘的代码可以为:
obtain_dump_path c;
其中,c表示本地硬盘的路径。
最后,代理服务器通过加载Auto-obtain-ip模块,来动态加载目标后端列表的代码可以为:
dso{
load ngx_http_Auto_obtain_ip_module.so;
}
此外,利用Auto-obtain-ip模块中的配置,来配置容器集群的接口和超时时间等信息的代码可以为:
obtain d;
其中,d表示配置名称。
具体地,如图4所示,为本申请实施例提供的进程容器地址的更新方法中一种响应访问请求的流程示意图。下面结合图4中的一种实施例进行说明,具体包括:
步骤401,第二用户发出访问请求;
步骤402,代理服务器通过网络核心入口获取到第二用户发送的访问请求;
步骤403,代理服务器基于该访问请求携带的响应头信息,确定该访问请求指定的目标进程容器;
步骤404,代理服务器将该访问请求发送给目标进程容器;
步骤405,目标进程容器中的应用程序或进程处理该访问请求,并将处理结果发送给代理服务器;
步骤406,代理服务器通过获取访问请求的路径,将处理结果发送给第二用户。
在本申请实施例中,首先,容器集群的指定主节点接收第一用户发出的容器更新请求,基于容器更新请求,更新指定主节点对应的进程容器的数量,容器集群中包括至少一个进程容器;然后,指定主节点基于更新后的容器集群中指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,目标容器列表中包含更新后的容器集群中与指定主节点对应的至少一个进程容器的地址;最后,容器集群的代理服务器基于目标容器列表中的至少一个进程容器的地址,更新代理服务器的目标后端列表中相应的进程容器的地址。
这样,代理服务器能够实时获取目标容器列表,并基于目标容器列表更新目标后端列表中进程容器的地址,使得更新后的目标后端列表能够立即生效,避免了每次更新目标后端列表时,都需要重新编译并加载代理服务器,从而降低了发生故障的概率和代理服务器的操作复杂度,提高了容器集群扩缩容的效率。
本申请实施例还提供一种进程容器地址的更新装置500,如图5所示,包括:
第一更新单元501,用于容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
生成单元502,用于所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
第二更新单元503,用于所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
可选地,在一种实施方式中,所述装置还包括:
确定单元504,用于所述代理服务器基于所述容器更新请求中的指定域名,从所述容器集群的至少一个主节点中确定域名与所述指定域名一致的直接点作为指定主节点。
可选地,在一种实施方式中,所述第一更新单元501,用于:
如果所述容器更新请求用于请求在所述容器集群中添加进程容器,则所述指定主节点基于所述容器更新请求,在所述容器集群中添加相应的进程容器;和/或,
如果所述容器更新请求用于请求在所述容器集群中删除进程容器,则所述指定主节点基于所述容器更新请求,在所述容器集群中删除相应的进程容器。
可选地,在一种实施方式中,所述第一更新单元501,用于:
所述指定主节点基于所述容器更新请求,确定在所述容器集群中添加的进程容器的指定数量和目标子节点标签;
所述容器集群的指定主节点在所述容器集群中的子节点标签与所述目标子节点标签一致的子节点上添加所述指定数量的进程容器,其中,所述指定主节点对应至少一个子节点,一个子节点对应至少一个进程容器。
可选地,在一种实施方式中,所述第一更新单元501,用于:
所述指定主节点基于所述容器更新请求,确定在所述容器集群中删除的进程容器的指定数量和目标子节点标签;
所述指定主节点在所述容器集群中的子节点标签与所述目标子节点标签一致的子节点上删除所述指定数量的进程容器,其中,所述指定主节点对应至少一个子节点,一个子节点对应至少一个进程容器,所述指定数量小于等于与所述目标子节点标签一致的子节点上的进程容器的数量。
可选地,在一种实施方式中,所述第二更新单元503,用于:
如果所述代理服务器确定所述目标容器列表中的进程容器的地址未包含在所述目标后端列表中,则在所述目标后端列表中添加相应的进程容器的地址;
如果所述代理服务器确定所述目标后端列表中的进程容器的地址未包含在所述目标容器列表中,则从所述目标后端列表中删除相应的进程容器的地址。
可选地,在一种实施方式中,所述装置还包括:
第二确定单元505,用于所述代理服务器接收第二用户发送的访问请求,基于所述访问请求中的响应头信息,确定所述访问请求指定的目标进程容器,所述响应头信息中包含所述目标进程容器的域名与所述第二用户的地址;
第一发送单元506,用于所述代理服务器基于所述更新后的目标后端列表确定所述访问请求指定的目标进程容器的地址,将所述访问请求转发给所述访问请求指定的目标进程容器;
第二发送单元507,所述目标进程容器中的应用程序接收并处理所述访问请求,并将所述访问请求的处理结果发送给所述代理服务器;
第三发送单元508,用于所述代理服务器基于所述第二用户的地址,将所述访问请求的处理结果发送给所述第二用户。
本申请实施例中的进程容器地址的更新装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的进程容器地址的更新装置能够实现图1至图4的方法实施例中进程容器地址的更新装置实现的各个过程,为避免重复,这里不再赘述。
在本申请实施例中,首先,容器集群的指定主节点接收第一用户发出的容器更新请求,基于容器更新请求,更新指定主节点对应的进程容器的数量,容器集群中包括至少一个进程容器;然后,指定主节点基于更新后的容器集群中指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,目标容器列表中包含更新后的容器集群中与指定主节点对应的至少一个进程容器的地址;最后,容器集群的代理服务器基于目标容器列表中的至少一个进程容器的地址,更新代理服务器的目标后端列表中相应的进程容器的地址。
这样,代理服务器能够实时获取目标容器列表,并基于目标容器列表更新目标后端列表中进程容器的地址,使得更新后的目标后端列表能够立即生效,避免了每次更新目标后端列表时,都需要重新编译并加载代理服务器,从而降低了发生故障的概率和代理服务器的操作复杂度,提高了容器集群扩缩容的效率。
图6是本说明书的一个实施例提供的电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成进程容器地址的更新装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
上述如本说明书图1~图4所示实施例揭示的进程容器地址的更新方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1~图4的进程容器地址的更新方法,本说明书在此不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (10)

1.一种进程容器地址的更新方法,其特征在于,所述方法包括:
容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
2.根据权利要求1所述的方法,其特征在于,在所述容器集群的指定主节点基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量之前,所述方法还包括:
所述代理服务器基于所述容器更新请求中的指定域名,从所述容器集群的至少一个主节点中确定域名与所述指定域名一致的主节点作为指定主节点。
3.根据权利要求2所述的方法,其特征在于,所述指定主节点基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,包括:
如果所述容器更新请求用于请求在所述容器集群中添加进程容器,则所述指定主节点基于所述容器更新请求,在所述容器集群中添加相应的进程容器;和/或,
如果所述容器更新请求用于请求在所述容器集群中删除进程容器,则所述指定主节点基于所述容器更新请求,在所述容器集群中删除相应的进程容器。
4.根据权利要求3所述的方法,其特征在于,所述指定主节点基于所述容器更新请求,在所述容器集群中添加相应的进程容器,包括:
所述指定主节点基于所述容器更新请求,确定在所述容器集群中添加的进程容器的指定数量和目标子节点标签;
所述容器集群的指定主节点在所述容器集群中的子节点标签与所述目标子节点标签一致的子节点上添加所述指定数量的进程容器,其中,所述指定主节点对应至少一个子节点,一个子节点对应至少一个进程容器。
5.根据权利要求3所述的方法,其特征在于,所述指定主节点基于所述容器更新请求,在所述容器集群中删除相应的进程容器,包括:
所述指定主节点基于所述容器更新请求,确定在所述容器集群中删除的进程容器的指定数量和目标子节点标签;
所述指定主节点在所述容器集群中的子节点标签与所述目标子节点标签一致的子节点上删除所述指定数量的进程容器,其中,所述指定主节点对应至少一个子节点,一个子节点对应至少一个进程容器,所述指定数量小于等于与所述目标子节点标签一致的子节点上的进程容器的数量。
6.根据权利要求1所述的方法,其特征在于,所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址,包括:
如果所述代理服务器确定所述目标容器列表中的进程容器的地址未包含在所述目标后端列表中,则在所述目标后端列表中添加相应的进程容器的地址;
如果所述代理服务器确定所述目标后端列表中的进程容器的地址未包含在所述目标容器列表中,则从所述目标后端列表中删除相应的进程容器的地址。
7.根据权利要求1所述的方法,其特征在于,在所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址之后,所述方法还包括:
所述代理服务器接收第二用户发送的访问请求,基于所述访问请求中的响应头信息,确定所述访问请求指定的目标进程容器,所述响应头信息中包含所述目标进程容器的域名与所述第二用户的地址;
所述代理服务器基于所述更新后的目标后端列表确定所述访问请求指定的目标进程容器的地址,将所述访问请求转发给所述访问请求指定的目标进程容器;
所述目标进程容器中的应用程序接收并处理所述访问请求,并将所述访问请求的处理结果发送给所述代理服务器;
所述代理服务器基于所述第二用户的地址,将所述访问请求的处理结果发送给所述第二用户。
8.一种进程容器地址的更新装置,其特征在于,所述装置包括:
第一更新单元,用于容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
生成单元,用于所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
第二更新单元,用于所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
容器集群的指定主节点接收第一用户发出的容器更新请求,基于所述容器更新请求,更新所述指定主节点对应的进程容器的数量,所述容器集群中包括至少一个进程容器;
所述指定主节点基于更新后的容器集群中所述指定主节点对应的进程容器的数量和进程容器的地址,生成目标容器列表,所述目标容器列表中包含所述更新后的容器集群中与所述指定主节点对应的至少一个进程容器的地址;
所述容器集群的代理服务器基于所述目标容器列表中的至少一个进程容器的地址,更新所述代理服务器的目标后端列表中相应的进程容器的地址。
CN202010470942.1A 2020-05-28 2020-05-28 进程容器地址的更新方法、装置和电子设备 Active CN111694639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010470942.1A CN111694639B (zh) 2020-05-28 2020-05-28 进程容器地址的更新方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010470942.1A CN111694639B (zh) 2020-05-28 2020-05-28 进程容器地址的更新方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN111694639A true CN111694639A (zh) 2020-09-22
CN111694639B CN111694639B (zh) 2023-11-24

Family

ID=72478720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010470942.1A Active CN111694639B (zh) 2020-05-28 2020-05-28 进程容器地址的更新方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN111694639B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113114571A (zh) * 2021-03-26 2021-07-13 咪咕文化科技有限公司 数据包处理方法、装置、电子设备及存储介质
CN113497830A (zh) * 2021-06-25 2021-10-12 浙江大华技术股份有限公司 一种云网络通信的方法、平台、设备及存储介质
CN114500537A (zh) * 2022-03-24 2022-05-13 杭州博盾习言科技有限公司 容器服务的访问方法、系统、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN107667517A (zh) * 2015-06-03 2018-02-06 瑞典爱立信有限公司 用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器
CN108063791A (zh) * 2017-11-01 2018-05-22 千寻位置网络有限公司 基于动态路由的应用部署方法
CN108616599A (zh) * 2018-05-11 2018-10-02 北京辰森世纪科技股份有限公司 应用服务注册、更新的方法及装置
US20190394093A1 (en) * 2018-06-21 2019-12-26 International Business Machines Corporation Cluster creation using self-aware, self-joining cluster nodes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107667517A (zh) * 2015-06-03 2018-02-06 瑞典爱立信有限公司 用于能够实现第二容器上的反向代理的在第一服务容器内的被植入代理器
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN108063791A (zh) * 2017-11-01 2018-05-22 千寻位置网络有限公司 基于动态路由的应用部署方法
CN108616599A (zh) * 2018-05-11 2018-10-02 北京辰森世纪科技股份有限公司 应用服务注册、更新的方法及装置
US20190394093A1 (en) * 2018-06-21 2019-12-26 International Business Machines Corporation Cluster creation using self-aware, self-joining cluster nodes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113114571A (zh) * 2021-03-26 2021-07-13 咪咕文化科技有限公司 数据包处理方法、装置、电子设备及存储介质
CN113497830A (zh) * 2021-06-25 2021-10-12 浙江大华技术股份有限公司 一种云网络通信的方法、平台、设备及存储介质
CN114500537A (zh) * 2022-03-24 2022-05-13 杭州博盾习言科技有限公司 容器服务的访问方法、系统、存储介质及电子设备

Also Published As

Publication number Publication date
CN111694639B (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
JP6876806B2 (ja) ブロックチェーンコンセンサス形成の方法およびデバイス
CN111694639A (zh) 进程容器地址的更新方法、装置和电子设备
CN111786984B (zh) Pod通信连接方法、装置及电子设备、存储介质
CN108683668A (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
WO2017095820A1 (en) Methods and devices for acquiring data using virtual machine and host machine
CN114281263B (zh) 容器集群管理系统的存储资源处理方法、系统和设备
CN112751935B (zh) 请求处理方法、装置、电子设备及存储介质
CN114328097A (zh) 一种文件监控方法、装置、电子设备和存储介质
CN110764930B (zh) 基于消息模式的请求或应答处理方法及装置
WO2018068655A1 (zh) 一种许可管理方法和系统
CN111949297A (zh) 一种区块链智能合约升级方法、装置及电子设备
CN109375946B (zh) 一种管理节点包管理器的组件包的方法及系统
CN110609707B (zh) 在线数据处理系统生成方法、装置及设备
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN112764897B (zh) 任务请求的处理方法、装置、系统及计算机可读存储介质
CN112506781B (zh) 测试监控方法、装置、电子设备、存储介质及程序产品
CN116503005A (zh) 流程动态修改方法、装置、系统及存储介质
CN109309583B (zh) 基于分布式系统的信息获取方法、装置、电子设备和介质
JP6553650B2 (ja) データ処理の方法及びシステム
CN111435320B (zh) 一种数据处理方法及其装置
CN112907198A (zh) 业务状态流转维护方法、装置及电子设备
CN112839071A (zh) 训练系统、训练数据访问方法及装置、电子设备、介质
CN112068814A (zh) 可执行文件的生成方法、装置、系统及介质
CN111258873A (zh) 测试方法及装置
CN110874238A (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
TA01 Transfer of patent application right

Effective date of registration: 20230307

Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Applicant after: Sina Technology (China) Co.,Ltd.

Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Applicant before: Sina.com Technology (China) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant