CN113438295A - 容器组地址分配方法、装置、设备及存储介质 - Google Patents
容器组地址分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113438295A CN113438295A CN202110692049.8A CN202110692049A CN113438295A CN 113438295 A CN113438295 A CN 113438295A CN 202110692049 A CN202110692049 A CN 202110692049A CN 113438295 A CN113438295 A CN 113438295A
- Authority
- CN
- China
- Prior art keywords
- container group
- preset
- target
- address
- network
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004458 analytical method Methods 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 238000013468 resource allocation Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
- H04L67/303—Terminal profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及云技术领域,公开了一种容器组地址分配方法、装置、设备及存储介质,用于提升容器组运行的稳定性。所述方法包括:基于预置的kubernetes创建资源对象的容器组,得到目标容器组;调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;根据所述状态码判断网络信息是否配置成功;若配置成功,则获取所述目标容器组对应的第一容器组类型;根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
Description
技术领域
本发明涉及云技术领域,尤其涉及一种容器组地址分配方法、装置、设备及存储介质。
背景技术
随着容器化技术的普及与推广,越来越多的公司和云计算厂商都着手投入资源做应用容器化改造和容器化平台。逐渐形成以容器(当前主流是docker管理引擎)为应用运行环境、kubernetes为应用调度编排管理引擎,容器化带来了开发、运维效率提升和资源利用率的提高。
在kubernetes应用状态定义中,可分为:无状态应用与有状态应用;无状态应用的容器组可以随时被替换,除对服务产生并发性能影响外,一般无其他严重影响,而且无需关注容器组前后之间的关系;而有状态应用需要关注每个容器组的主机名、部署的先后顺序以及删除的先后顺序。但是现有技术无法实现容器组保持固定的地址,进而导致容器中承载的应用程序发生运行故障。
发明内容
本发明的主要目的在于解决目前容器组无法保持固定的地址导致容器组运行不稳定的问题。
本发明第一方面提供了一种容器组地址分配方法,所述容器组地址分配方法包括:基于预置的kubernetes创建资源对象的容器组,得到目标容器组;调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;根据所述状态码判断网络信息是否配置成功;若配置成功,则获取所述目标容器组对应的第一容器组类型;根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,在本发明第一方面的第一种实现方式中,所述基于预置的kubernetes创建资源对象的容器组,得到目标容器组包括:获取预置的容器组的状态信息,并调用预置的kubernetes将所述状态信息传输至预置的集群管理中心,通过所述集群管理中心将所述状态信息写入预置的存储系统;在所述存储系统中对容器组进行资源配置,得到目标容器组。。
可选的,在本发明第一方面的第二种实现方式中,所述调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间包括:采用环境变量参数形式向预置容器网络插件传递所述目标容器组的调用参数,得到运行参数;基于预置环境变量参数读取所述运行参数,得到所述目标容器组对应的参数,所述参数包括网络命名空间。
可选的,在本发明第一方面的第三种实现方式中,所述调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码包括:调用预置的应用程序接口获取所述网络命名空间对应的配置信息,得到配置信息;通过所述容器网络插件调用预置内部处理函数执行网络信息配置,得到执行结果,所述执行结果为状态码。
可选的,在本发明第一方面的第四种实现方式中,所述容器组地址分配方法还包括:若配置不成功,则获取所述目标容器组对应的第二容器组类型;根据所述第二容器组类型和预置第二地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址包括:调用预置外部分配策略系统的接口,并根据所述第一容器组类型获取所述目标容器组对应的配置信息;根据预置第一地址分配策略和所述配置信息对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,在本发明第一方面的第六种实现方式中,在所述根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址之后,还包括:在所述kubernetes的预置地址库中对所述目标容器组对应的目标地址进行释放。
本发明第二方面提供了一种容器组地址分配装置,所述容器组地址分配装置包括:创建模块,用于基于预置的kubernetes创建资源对象的容器组,得到目标容器组;解析模块,用于调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;配置模块,用于调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;判断模块,用于根据所述状态码判断网络信息是否配置成功;获取模块,用于若配置成功,则获取所述目标容器组对应的第一容器组类型;第一分配模块,用于根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,在本发明第二方面的第一种实现方式中,所述创建模块具体用于:获取预置的容器组的状态信息,并调用预置的kubernetes将所述状态信息传输至预置的集群管理中心,通过所述集群管理中心将所述状态信息写入预置的存储系统;在所述存储系统中对容器组进行资源配置,得到目标容器组。。
可选的,在本发明第二方面的第二种实现方式中,所述解析模块具体用于:采用环境变量参数形式向预置容器网络插件传递所述目标容器组的调用参数,得到运行参数;基于预置环境变量参数读取所述运行参数,得到所述目标容器组对应的参数,所述参数包括网络命名空间。
可选的,在本发明第二方面的第三种实现方式中,所述配置模块具体用于:调用预置的应用程序接口获取所述网络命名空间对应的配置信息,得到配置信息;通过所述容器网络插件调用预置内部处理函数执行网络信息配置,得到执行结果,所述执行结果为状态码。
可选的,在本发明第二方面的第四种实现方式中,所述容器组地址分配装置还包括:第二分配模块,用于若配置不成功,则获取所述目标容器组对应的第二容器组类型;根据所述第二容器组类型和预置第二地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,在本发明第二方面的第五种实现方式中,所述第一分配模块具体用于:调用预置外部分配策略系统的接口,并根据所述第一容器组类型获取所述目标容器组对应的配置信息;根据预置第一地址分配策略和所述配置信息对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,在本发明第二方面的第六种实现方式中,所述容器组地址分配装置还包括:释放模块,用于在所述kubernetes的预置地址库中对所述目标容器组对应的目标地址进行释放。
本发明第三方面提供了一种容器组地址分配设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述容器组地址分配设备执行上述的容器组地址分配方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的容器组地址分配方法。
本发明提供的技术方案中,基于预置的kubernetes创建资源对象的容器组,得到目标容器组;调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;根据所述状态码判断网络信息是否配置成功;若配置成功,则获取所述目标容器组对应的第一容器组类型;根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。本发明实现了容器组的固定地址分配,从而提升了容器组的运行稳定性。
附图说明
图1为本发明实施例中容器组地址分配方法的第一个实施例示意图;
图2为本发明实施例中容器组地址分配方法的第二个实施例示意图;
图3为本发明实施例中容器组地址分配装置的第一个实施例示意图;
图4为本发明实施例中容器组地址分配装置的第二个实施例示意图;
图5为本发明实施例中容器组地址分配设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种容器组地址分配方法、装置、设备及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中容器组地址分配方法的第一个实施例包括:
101、基于预置的kubernetes创建资源对象的容器组,得到目标容器组;
可以理解的是,本发明的执行主体可以为容器组地址分配装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
服务器获取容器组(Plain old data structure,POD)的状态信息,并通过开源容器集群管理系统(kubernetes,k8s)将容器组的状态信息传输至预置集群管理中心(APIServer),通过集群管理中心将容器组的状态信息写入存储系统(etcd),并采用预置数据监控机制对集群管理中心进行监控,在存储系统确认写入操作成功完成后,得到目标容器组。
102、调用预置的容器网络插件对目标容器组进行参数解析,得到目标容器组对应的参数,并提取参数中的网络命名空间,得到网络命名空间;
服务器调用预置的容器网络插件(Container Network Interface,CNI)对目标容器组进行参数解析,得到目标容器组的参数,目标容器组的参数包括容器组名称、网络命名空间以及需要配置的接口名称,并提取参数中的网络命名空间,得到网络命名空间。
103、调用预置的应用程序接口对网络命名空间进行网络信息配置并返回状态码;
服务器调用预置应用程序接口(Application Programming Interface,API)获取网络命名空间的配置信息,得到配置信息,通过容器网络插件调用内部处理函数执行网络信息(网络信息具体指IP信息)配置,得到执行结果,执行结果包括状态码。
104、根据状态码判断网络信息是否配置成功;
服务器通过kubernetes根据返回状态码判断网络信息是否配置成功,其中,状态码的取值范围在[0-255]之间的整数,当状态码为0时表示网络信息配置成功,当状态码为[1-255]时表示网络信息配置不成功。
105、若配置成功,则获取目标容器组对应的第一容器组类型;
服务器若配置成功,则调用增加接口(ADD接口)获取目标容器组的容器组类型,增加接口是容器网络接口(CNI spec)规范里面的核心接口,增加是用于创建容器组网络,第一容器组类型包括有状态应用和无状态应用。
106、根据第一容器组类型和预置第一地址分配策略对目标容器组进行地址信息分配,得到目标容器组对应的目标地址。
服务器调用容器网络插件调用外部分配策略应用程序接口进行地址分配时,其调用参数中包含容器组名称和网络空间命名等参数,外部应用程序接口根据传递的入参,再调用应用程序接口,应用程序接口将返回容器组的网络空间命名下的所有容器组列表,外部应用程序根据列表和容器网络插件传递的容器组名称做确认对比确认,得到目标容器组对应的目标地址,目标地址具体包括目标容器组的网际互连协议地址(InternetProtocol,IP)和媒体存取控制位址(Media Access Control Address,MAC地址)。
本发明实施例中,基于预置的kubernetes创建资源对象的容器组,得到目标容器组;调用预置的容器网络插件对目标容器组进行参数解析,得到目标容器组对应的参数,参数包括网络命名空间;调用预置的应用程序接口对容器组网络命名空间进行网络信息配置并返回状态码,得到状态码;根据状态码判断网络信息是否配置成功;若配置成功,则获取目标容器组对应的第一容器组类型;根据第一容器组类型和预置第一地址分配策略对目标容器组进行地址信息分配,得到目标容器组对应的目标地址。本发明实现了容器组的固定地址分配,从而提升了容器组的运行稳定性。
请参阅图2,本发明实施例中容器组地址分配方法的第二个实施例包括:
201、基于预置的kubernetes创建资源对象的容器组,得到目标容器组;
服务器获取容器组(Plain old data structure,POD)的状态信息,并通过开源容器集群管理系统(kubernetes,k8s)将容器组的状态信息传输至预置集群管理中心(APIServer),通过集群管理中心将容器组的状态信息写入存储系统(etcd),并采用预置数据监控机制对集群管理中心进行监控,在存储系统确认写入操作成功完成后,得到目标容器组。
可选的,步骤201包括:获取预置的容器组的状态信息,并调用预置的kubernetes将状态信息传输至预置的集群管理中心,通过集群管理中心将状态信息写入预置的存储系统;在存储系统中对容器组进行资源配置,得到目标容器组。
服务器通过kubernetes或其他客户端提交容器组网络接口给集群管理中心,集群管理中心将容器组对象的相关信息存入存储系统,待写入执行完成后,集群管理中心即会返回确认信息到客户端,集群管理中心开始反映存储系统中的状态变化。服务器的kubernetes组件均使用数据监控机制来跟踪检查集群管理中心上的相关变化,kubernetes通过对其数据进行监控,觉察到集群管理中心创建了新的容器组对象但尚未绑定到任何工作节点,kubernetes为容器组对象挑选一个工作节点并信息更新到集群管理中心,调度结果信息由集群管理中心更新到存储系统,而且集群管理中心也开始反映该容器组对象的调度结果,容器组被调度到目标工作节点上kubernetes尝试在当前节点上调用镜像启动容器,并将容器的结果状态回送到集群管理中心,集群管理中心将容器组的状态信息存入存储系统中,在确认写入操作成功完成后,集群管理中心将确认信息发送到相关的kubernetes,得到目标容器组。
202、调用预置的容器网络插件对目标容器组进行参数解析,得到目标容器组对应的参数,并提取参数中的网络命名空间,得到网络命名空间;
服务器调用预置容器网络插件(Container Network Interface,CNI)对目标容器组进行参数解析,得到目标容器组的参数,目标容器组的参数包括容器组名称、网络命名空间以及需要配置的接口名称,并提取参数中的网络命名空间,得到网络命名空间。
可选的,步骤202包括:采用环境变量参数形式向预置容器网络插件传递目标容器组的调用参数,得到运行参数;基于预置环境变量参数读取运行参数,得到目标容器组对应的参数,参数包括网络命名空间。
服务器通过kubernetes以环境变量的形式向容器网络插件传递调用参数,容器网络插件读取环境变量参数,得到运行参数。服务器获取需要容器网络插件进行的动作,获取容器组名称,获取网络命名空间,获取需要配置的接口名称,解析其他环境变量参数,环境变量参数包括CNI_command、CNI_containerid、CNI_netns和CNI_ifname,具体的执行步骤为:环境变量参数(CNI_command)获取CNI插件将要执行的动作;环境变量参数(CNI_containerid)用于获取容器组名称,配置虚拟网络设备(虚拟接口)设备名和同行名称;环境变量参数(CNI_ifname)配置虚拟接口,获取需要配置的接口名称;环境变量参数(CNI_netns)将创建的虚拟接口对一端加入到给定的网络中获取网络空间命名,得到目标容器组对应的网络命名空间。
203、调用预置的应用程序接口对网络命名空间进行网络信息配置并返回状态码;
服务器调用预置应用程序接口(Application Programming Interface,API)获取网络命名空间的配置信息,得到配置信息,通过容器网络插件调用内部处理函数执行网络信息(网络信息具体指IP信息)配置,得到执行结果,执行结果包括状态码。
可选的,步骤203包括:调用预置的应用程序接口获取网络命名空间对应的配置信息,得到配置信息;通过容器网络插件调用预置内部处理函数执行网络信息配置,得到执行结果,执行结果为状态码。
服务器调用预置的应用程序接口获取网络命名空间的配置信息,得到配置信息,网络命名空间,当容器组被调度到kubernetes集群某工作负载上,该工作负载上的kubernetes接收到请求后,触发相关创建操作,其中创建动作执行到网络操作时候,会读取容器网络插件的配置目录,该目录下存在容器网络插件相关配置信息和容器网络插件可执行程序的路径,然后去执行容器网络插件的二进制文件,由容器网络插件对网络空间命名进行空间配置。服务器通过kubernetes调用内部处理函数执行网络信息配置,执行过程具体为:1、传递环境变量执行参数;2、容器网络插件根据参数,调用外部接口获取到配置网络命名空间的网络信息;3、容器网络插件调用内部处理函数创建虚拟接口对;4、容器网络插件调用内部处理函数配置虚拟接口;5、容器网络插件调用内部处理函数配置peer端网络:配置IP、设置子网掩码,启动设备;6、容器网络插件返回执行结果给到kubernetes,kubernetes得到返回的状态码。
204、根据状态码判断网络信息是否配置成功;
服务器通过kubernetes根据返回状态码判断网络信息是否配置成功,其中,状态码的取值范围在[0-255]之间的整数,当状态码为0时表示网络信息配置成功,当状态码为[1-255]时表示网络信息配置不成功。
可选的,在步骤104之后还包括:若配置不成功,则获取目标容器组对应的第二容器组类型;根据第二容器组类型和预置第二地址分配策略对目标容器组进行地址信息分配,得到目标容器组对应的目标地址。
服务器若配置不成功,则调用预置删除接口获取目标容器组的第二容器组类型,第二容器组类型包括有状态应用和无状态应用,其中,删除接口是容器网络接口(CNIspec)规范里面的核心接口,删除是用于删除容器组网络,第二容器组类型包括有状态应用和无状态应用。服务器根据第二容器组类型和预置第二地址分配策略对容器组进行地址和媒体存取控制位址信息分配(Media Access Control Address,MAC),第二地址分配策略具体为:根据容器组名称,然后调用预置仓库接口(kubernetes api)查询到目标容器组的存在,同时获取到目标容器组的重要的额外label信息,应用程序名称和应用部署类型(deployment、statefulset)信息,若第二容器组类型为有状态应用,则首先从pampas中删除容器组的网络配置信息,pampas是指外部分配策略系统,外部分配策略系统提供地址申请、释放地址等管理,外部分配策略系统含有两个功能接口:分配无状态应用容器组的地址和分配有状态应用容器组的地址,然后删除虚拟接口,再删除路由并设置网卡为关闭,删除网卡,若是首次分配,则分配一个可用目标地址,若是非首次分配,则查到之前分配的目标地址;若第二容器组类型为无状态应用,则删除虚拟接口,再删除路由并设置网卡为关闭,以及删除网卡,无状态应用,挑选一个可用目标地址,最终会分配给容器网络插件一个可用的目标地址。
205、若配置成功,则获取目标容器组对应的第一容器组类型;
服务器若配置成功,则调用增加接口(ADD接口)获取目标容器组的容器组类型,增加接口是容器网络接口(CNI spec)规范里面的核心接口,增加是用于创建容器组网络,第一容器组类型包括有状态应用和无状态应用。
206、调用预置外部分配策略系统的接口,并根据第一容器组类型获取目标容器组对应的配置信息;
服务器调用预置外部分配策略系统,外部分配策略系统提供地址申请、释放地址等管理,外部分配策略系统含有两个功能接口:分配无状态应用容器组的地址和分配有状态应用容器组的地址,若目标容器组为有状态应用,则从外部分配策略系统中获取网络配置信息。
207、根据预置第一地址分配策略和配置信息对目标容器组进行地址信息分配,得到目标容器组对应的目标地址。
服务器根据预置第一地址分配策略和配置信息对目标容器组进行地址信息分配,若目标容器组为无状态应用,分配地址信息的步骤具体为:1、容器网络插件调用外部分配策略系统接口,通过传递容器组名称,网络空间命名,容器组所在工作负载节点的网络信息等相关参数给到外部分配策略系统接口,2、外部分配策略系统接口根据入参,调用仓库接口确认该容器组确实在待分配地址状态,外部分配策略系统接口根据容器组所在的工作负载节点的网络信息,在外部分配策略系统所管理的地址库随机分配一个可用目标地址;若目标容器组为有状态应用,分配地址信息的步骤具体为:1、容器网络插件调用外部分配策略系统接口,通过传递容器组名称,网络空间命名,容器组所在工作负载节点的网络信息等相关参数给到外部分配策略系统接口,2、外部分配策略系统接口根据入参,调用仓库接口确认该容器组确实在待分配地址状态,3、外部分配策略系统接口根据容器组名称和容器组所在的工作负责节点网络信息,为该容器组分配目标地址,同时外部分配策略系统会标记该容器组对应的应用为有状态应用部署,后期应用重新发布时候,一直会使用之前分配的地址,不会随机分配未使用的地址。
可选的,在步骤207之后还包括:在kubernetes的预置地址库中对目标容器组对应的目标地址进行释放。
服务器在预置映射关系中没有储存目标容器组对应的目标地址时,说明目标容器组不属于设定类型,因此,需要在kubernetes的地址库中对目标容器组对应的目标地址进行释放。
上面对本发明实施例中容器组地址分配方法进行了描述,下面对本发明实施例中容器组地址分配装置进行描述,请参阅图3,本发明实施例中容器组地址分配装置第一个实施例包括:
创建模块301,用于基于预置的kubernetes创建资源对象的容器组,得到目标容器组;
解析模块302,用于调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;
配置模块303,用于调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;
判断模块304,用于根据所述状态码判断网络信息是否配置成功;
获取模块,用于若配置成功,则获取所述目标容器组对应的第一容器组类型;
第一分配模块305,用于根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
本发明实施例中,基于预置的kubernetes创建资源对象的容器组,得到目标容器组;调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;根据所述状态码判断网络信息是否配置成功;若配置成功,则获取所述目标容器组对应的第一容器组类型;根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。本发明实现了容器组的固定地址分配,从而提升了容器组的运行稳定性。
请参阅图4,本发明实施例中容器组地址分配装置第二个实施例包括:
创建模块301,用于基于预置的kubernetes创建资源对象的容器组,得到目标容器组;
解析模块302,用于调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;
配置模块303,用于调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;
判断模块304,用于根据所述状态码判断网络信息是否配置成功;
获取模块,用于若配置成功,则获取所述目标容器组对应的第一容器组类型;
第一分配模块305,用于根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,所述创建模块301具体用于:获取预置的容器组的状态信息,并调用预置的kubernetes将所述状态信息传输至预置的集群管理中心,通过所述集群管理中心将所述状态信息写入预置的存储系统;在所述存储系统中对容器组进行资源配置,得到目标容器组。。
可选的,所述解析模块302具体用于:采用环境变量参数形式向预置容器网络插件传递所述目标容器组的调用参数,得到运行参数;基于预置环境变量参数读取所述运行参数,得到所述目标容器组对应的参数,所述参数包括网络命名空间。
可选的,所述配置模块303具体用于:调用预置的应用程序接口获取所述网络命名空间对应的配置信息,得到配置信息;通过所述容器网络插件调用预置内部处理函数执行网络信息配置,得到执行结果,所述执行结果为状态码。
可选的,所述容器组地址分配装置还包括:第二分配模块307,用于若配置不成功,则获取所述目标容器组对应的第二容器组类型;根据所述第二容器组类型和预置第二地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,所述第一分配模块306具体用于:调用预置外部分配策略系统的接口,并根据所述第一容器组类型获取所述目标容器组对应的配置信息;根据预置第一地址分配策略和所述配置信息对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
可选的,所述容器组地址分配装置还包括:释放模块308,用于在所述kubernetes的预置地址库中对所述目标容器组对应的目标地址进行释放。
上面图3和图4从模块化功能实体的角度对本发明实施例中的容器组地址分配装置进行详细描述,下面从硬件处理的角度对本发明实施例中容器组地址分配设备进行详细描述。
图5是本发明实施例提供的一种容器组地址分配设备的结构示意图,该容器组地址分配设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对容器组地址分配设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在容器组地址分配设备500上执行存储介质530中的一系列指令操作。
容器组地址分配设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的容器组地址分配设备结构并不构成对容器组地址分配设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种容器组地址分配设备,所述容器组地址分配设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述容器组地址分配方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述容器组地址分配方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种容器组地址分配方法,其特征在于,所述容器组地址分配方法包括:
基于预置的kubernetes创建资源对象的容器组,得到目标容器组;
调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;
调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;
根据所述状态码判断网络信息是否配置成功;
若配置成功,则获取所述目标容器组对应的第一容器组类型;
根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
2.根据权利要求1所述的容器组地址分配方法,其特征在于,所述基于预置的kubernetes创建资源对象的容器组,得到目标容器组包括:
获取预置的容器组的状态信息,并调用预置的kubernetes将所述状态信息传输至预置的集群管理中心,通过所述集群管理中心将所述状态信息写入预置的存储系统;
在所述存储系统中对容器组进行资源配置,得到目标容器组。
3.根据权利要求1所述的容器组地址分配方法,其特征在于,所述调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间包括:
采用环境变量参数形式向预置容器网络插件传递所述目标容器组的调用参数,得到运行参数;
基于预置环境变量参数读取所述运行参数,得到所述目标容器组对应的参数,所述参数包括网络命名空间。
4.根据权利要求1所述的容器组地址分配方法,其特征在于,所述调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码包括:
调用预置的应用程序接口获取所述网络命名空间对应的配置信息,得到配置信息;
通过所述容器网络插件调用预置内部处理函数执行网络信息配置,得到执行结果,所述执行结果为状态码。
5.根据权利要求1所述的容器组地址分配方法,其特征在于,所述容器组地址分配方法还包括:
若配置不成功,则获取所述目标容器组对应的第二容器组类型;
根据所述第二容器组类型和预置第二地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
6.根据权利要求1所述的容器组地址分配方法,其特征在于,所述根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址包括:
调用预置外部分配策略系统的接口,并根据所述第一容器组类型获取所述目标容器组对应的配置信息;
根据预置第一地址分配策略和所述配置信息对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
7.根据权利要求1所述的容器组地址分配方法,其特征在于,在所述根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址之后,还包括:
在所述kubernetes的预置地址库中对所述目标容器组对应的目标地址进行释放。
8.一种容器组地址分配装置,其特征在于,所述容器组地址分配装置包括:
创建模块,用于基于预置的kubernetes创建资源对象的容器组,得到目标容器组;
解析模块,用于调用预置的容器网络插件对所述目标容器组进行参数解析,得到所述目标容器组对应的参数,并提取所述参数中的网络命名空间,得到网络命名空间;
配置模块,用于调用预置的应用程序接口对所述网络命名空间进行网络信息配置并返回状态码;
判断模块,用于根据所述状态码判断网络信息是否配置成功;
获取模块,用于若配置成功,则获取所述目标容器组对应的第一容器组类型;
第一分配模块,用于根据所述第一容器组类型和预置的第一地址分配策略对所述目标容器组进行地址信息分配,得到所述目标容器组对应的目标地址。
9.一种容器组地址分配设备,其特征在于,所述容器组地址分配设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述容器组地址分配设备执行如权利要求1-7中任一项所述的容器组地址分配方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述的容器组地址分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692049.8A CN113438295A (zh) | 2021-06-22 | 2021-06-22 | 容器组地址分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692049.8A CN113438295A (zh) | 2021-06-22 | 2021-06-22 | 容器组地址分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113438295A true CN113438295A (zh) | 2021-09-24 |
Family
ID=77756918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110692049.8A Pending CN113438295A (zh) | 2021-06-22 | 2021-06-22 | 容器组地址分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438295A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415952A (zh) * | 2022-01-04 | 2022-04-29 | 北京金山云网络技术有限公司 | 一种存储空间分配方法及装置 |
CN114415950A (zh) * | 2022-01-04 | 2022-04-29 | 北京金山云网络技术有限公司 | 一种存储空间分配方法及装置 |
CN115361359A (zh) * | 2022-08-18 | 2022-11-18 | 中电云数智科技有限公司 | 一种基于kubernetes的IP地址管理装置和方法 |
CN115580497A (zh) * | 2022-12-09 | 2023-01-06 | 江苏博云科技股份有限公司 | 容器环境下数据传输控制方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750332A (zh) * | 2019-10-23 | 2020-02-04 | 广西梯度科技有限公司 | 一种在Kubernetes中Pod设置静态IP的方法 |
CN111163189A (zh) * | 2020-01-07 | 2020-05-15 | 上海道客网络科技有限公司 | 一种基于网络命名空间管控的ip监控和回收系统与方法 |
CN111934918A (zh) * | 2020-07-24 | 2020-11-13 | 北京金山云网络技术有限公司 | 对同一容器集群内的容器实例的网络隔离方法和装置 |
CN112291094A (zh) * | 2020-10-30 | 2021-01-29 | 康键信息技术(深圳)有限公司 | 容器网络管理方法、装置、设备及存储介质 |
-
2021
- 2021-06-22 CN CN202110692049.8A patent/CN113438295A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750332A (zh) * | 2019-10-23 | 2020-02-04 | 广西梯度科技有限公司 | 一种在Kubernetes中Pod设置静态IP的方法 |
CN111163189A (zh) * | 2020-01-07 | 2020-05-15 | 上海道客网络科技有限公司 | 一种基于网络命名空间管控的ip监控和回收系统与方法 |
CN111934918A (zh) * | 2020-07-24 | 2020-11-13 | 北京金山云网络技术有限公司 | 对同一容器集群内的容器实例的网络隔离方法和装置 |
CN112291094A (zh) * | 2020-10-30 | 2021-01-29 | 康键信息技术(深圳)有限公司 | 容器网络管理方法、装置、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114415952A (zh) * | 2022-01-04 | 2022-04-29 | 北京金山云网络技术有限公司 | 一种存储空间分配方法及装置 |
CN114415950A (zh) * | 2022-01-04 | 2022-04-29 | 北京金山云网络技术有限公司 | 一种存储空间分配方法及装置 |
CN115361359A (zh) * | 2022-08-18 | 2022-11-18 | 中电云数智科技有限公司 | 一种基于kubernetes的IP地址管理装置和方法 |
CN115580497A (zh) * | 2022-12-09 | 2023-01-06 | 江苏博云科技股份有限公司 | 容器环境下数据传输控制方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566541B (zh) | 容器网络资源分配方法、系统、存储介质和电子设备 | |
CN113438295A (zh) | 容器组地址分配方法、装置、设备及存储介质 | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
CN112214293A (zh) | 一种无服务器架构下业务部署的方法和函数管理平台 | |
US20110239216A1 (en) | Service providing system, a virtual machine server, a service providing method, and a program thereof | |
KR102419704B1 (ko) | 보안 보호 방법 및 장치 | |
CN108540408B (zh) | 一种基于Openstack的分布式虚拟交换机的管理方法及系统 | |
CN111787126A (zh) | 容器创建方法、服务器及存储介质 | |
CN108073423A (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN112291298A (zh) | 异构系统的数据传输方法、装置、计算机设备和存储介质 | |
CN111857951A (zh) | 容器化部署平台及部署方法 | |
CN114374609A (zh) | 基于rdma设备的深度学习作业运行方法及系统 | |
CN116382585A (zh) | 临时卷存储方法、容器化云平台及计算机可读介质 | |
CN114996750A (zh) | 数据共享方法以及装置 | |
CN115086166A (zh) | 计算系统、容器网络配置方法及存储介质 | |
JP2022069420A (ja) | コンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品(エッジコンピューティング環境における障害管理) | |
WO2021248972A1 (zh) | 默认网关管理方法、网关管理器、服务器及存储介质 | |
CN113568758A (zh) | Gpu资源池化方法、系统、设备及计算机可读存储介质 | |
US8442939B2 (en) | File sharing method, computer system, and job scheduler | |
JP2024501005A (ja) | コンテナクラスタのための管理方法および装置 | |
CN112565475A (zh) | 容器集群业务层添加新节点的ip地址分配方法 | |
CN114745377B (zh) | 边缘云集群服务系统及实现方法 | |
CN109660575B (zh) | Nfv业务部署的实现方法和装置 | |
CN115964152A (zh) | Gpu资源调度方法、设备和存储介质 | |
CN117692401A (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 |