一种网络处理方法、装置、电子设备及存储介质与流程

文档序号:31748015发布日期:2022-10-11 17:35阅读:44来源:国知局
一种网络处理方法、装置、电子设备及存储介质与流程

1.本公开实施例涉及容器网络技术领域,具体涉及一种网络处理方法、装置、电子设备及存储介质。


背景技术:

2.随着容器技术的发展,容器网络便于容器之间、容器与外网之间相互连接。容器网络接口(container network interface,cni)是容器网络的标准的、通用的接口,可以理解为容器网络的标准化协议。cni用于连接容器管理系统和网络插件,其中,容器管理系统例如应用容器引擎(docker)系统、容器编排引擎(k8s)系统、统一容器管理(mesos)系统等。
3.遵循cni规范的网络插件可理解为cni插件,例如cni插件包括:ipam插件,用于分配ip地址。cni插件是可执行文件,可被容器管理系统调用并执行,从而实现容器网络功能。容器网络的实现方案有多种,例如flannel、calico、kube-ovn、weave、ipvlan等。
4.但是,这些容器网络的实现方案中对于ip地址的分配均是通过网络服务单元的注解(annotations)信息指定ip地址,需清楚每个ip地址的功能,进而实现固定ip地址的分配,其中,网络服务单元例如为k8s场景下的pod,pod为一个或多个容器的集合。可见,目前容器网络的实现方案无法实现动态ip地址的分配,ip地址分配不够灵活,不便于在大规模使用容器场景下维护ip地址的使用,造成ip地址使用混乱。


技术实现要素:

5.为了解决相关技术存在的至少一个问题,本公开的至少一个实施例提供了一种网络处理方法、装置、电子设备及存储介质。
6.第一方面,本公开实施例提出一种网络处理方法,预先创建容器网络,容器网络包括至少一个第一ip地址池和至少一个第二ip地址池,方法包括:
7.创建网络服务单元,网络服务单元包括至少一个容器;
8.生成网络服务单元对应的网络请求,网络请求包括有注解信息,注解信息中不指定ip地址;
9.根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用。
10.在一些实施例中,根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,包括:
11.调用ip地址管理插件,以根据网络请求中的注解信息从第一ip地址池或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,其中,ip地址管理插件设置在容器网络接口处,且ip地址管理插件的ip请求对象设置为网络服务单元。
12.在一些实施例中,根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,包括:
13.当确定网络请中的注解信息包括第一预设信息时,从第一ip地址池中确定目标ip
地址,以分配给网络服务单元使用。
14.在一些实施例中,根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,包括;
15.当确定网络请求中的注解信息包括第二预设信息时,从第二ip地址池中确定目标ip地址,以分配给网络服务单元使用。
16.在一些实施例中,当确定网络请求中的注解信息包括第二预设信息时,从第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,包括:
17.当确定网络请求中的注解信息包括第二预设信息时,从至少一个第二ip地址池中确定是否有与第二预设信息对应的任一第二ip地址池;
18.若确定有与第二预设信息对应的第二ip地址池,则从该第二ip地址池中确定出目标ip地址,以分配给网络服务单元使用。
19.在一些实施例中,根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,包括:
20.当确定网络请求中的注解信息包括第三预设信息时,从第一ip地址池和第二ip地址池中查找与第三预设信息对应的ip地址;
21.确定与第三预设信息对应的ip地址是否为使用状态;
22.当确定第三预设信息对应的ip地址为非使用状态时,将该ip地址确定为目标ip地址,以分配给网络服务单元使用。
23.在一些实施例中,所述方法还包括:
24.当删除网络服务单元时,删除网络服务单元的目标ip地址的占用标记,占用标记用于标识该ip地址被网络服务单元占用。
25.第二方面,本公开实施例还提出一种网络处理装置,预先创建容器网络,容器网络包括至少一个第一ip地址池和至少一个第二ip地址池,装置包括:
26.创建单元,用于创建网络服务单元,网络服务单元包括至少一个容器;
27.生成单元,用于生成网络服务单元对应的网络请求,网络请求包括有注解信息,注解信息中不指定ip地址;
28.确定单元,用于根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用。
29.在一些实施例中,确定单元,用于调用ip地址管理插件,以根据网络请求中的注解信息从第一ip地址池或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,其中,ip地址管理插件设置在容器网络接口处,且ip地址管理插件的ip请求对象设置为网络服务单元。
30.在一些实施例中,确定单元,用于当确定网络请中的注解信息包括第一预设信息时,从第一ip地址池中确定目标ip地址,以分配给网络服务单元使用。
31.在一些实施例中,确定单元,用于当确定网络请求中的注解信息包括第二预设信息时,从第二ip地址池中确定ip地址,以分配给网络服务单元使用。
32.在一些实施例中,确定单元,用于当确定网络请求中的注解信息包括第二预设信息时,从至少一个第二ip地址池中确定是否有与第二预设信息对应的任一第二ip地址池;若确定有与第二预设信息对应的第二ip地址池,则从该第二ip地址池中确定出目标ip地
址,以分配给网络服务单元使用。
33.在一些实施例中,确定单元,用于当确定网络请求中的注解信息包括第三预设信息时,从第一ip地址池和第二ip地址池中查找与第三预设信息对应的ip地址;确定与第三预设信息对应的ip地址是否为使用状态;当确定第三预设信息对应的ip地址为非使用状态时,将该ip地址确定为目标ip地址,以分配给网络服务单元使用。
34.在一些实施例中,所述装置还包括:
35.删除单元,用于当删除网络服务单元时,删除网络服务单元的目标ip地址的占用标记,占用标记用于标识该ip地址被网络服务单元占用。
36.第三方面,本公开实施例还提出一种电子设备,包括:处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行如第一方面任一实施例所述方法的步骤。
37.第四方面,本公开实施例还提出一种非暂态计算机可读存储介质,用于存储程序或指令,所述程序或指令使计算机执行如第一方面任一实施例所述方法的步骤。
38.可见,本公开的至少一个实施例中,通过将容器网络的ip地址池划分为普通池(第一ip地址池)和指定池(第二ip地址池),在生成网络请求时,网络请求包括有注解信息,可根据注解信息在普通池和/或指定池中分配ip地址给网络服务单元,满足ip地址分段使用,由于注解信息没有指定ip地址,可以不关心每个ip地址的使用和不分配固定ip地址,而是根据不同注解信息可分配不同ip地址给网络服务单元使用,实现动态分配ip地址,分配方式更加灵活。从而可以指定某一段ip地址池,不关心每个ip地址的使用,便于管理ip地址的使用。
附图说明
39.为了更清楚地说明本公开实施例的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
40.图1是本公开实施例提供的一种网络处理方法的示例性流程图;
41.图2是本公开实施例提供的另一种网络处理方法的示例性流程图;
42.图3是本公开实施例提供的一种网络处理装置的示例性框图;
43.图4是本公开实施例提供的一种电子设备的示例性框图。
具体实施方式
44.为了能够更清楚地理解本公开的上述目的、特征和优点,下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。基于所描述的本公开的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
45.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
46.cni用于连接容器管理系统和网络插件,以容器管理系统为k8s系统为例,对于其他的容器管理系统类似,不再赘述。k8s系统的cni包括ip地址管理和ip地址配置两部分功能。其中,ip地址管理用于分配ip地址,以管理ip地址的使用;ip地址配置用于配置pod(pod为一个或多个容器的组合)的ip网络。k8s系统的ipam插件是k8s的ip地址管理的插件,可保证pod具有唯一的ip地址,避免地址冲突。
47.k8s系统拥有众多的容器网络的实现方案,例如calico,weave,kube-ovn,kuryr-kubernetes,cni-genie,ovs等。其中,calico和weave通过注解(annotations)指定ip地址,实现固定ip地址的分配;kube-ovn通过annotations可指定多个ip地址,需要多少ip地址就要指定多少ip地址。可见,这种固定ip地址的分配方式,需清楚每个ip地址的功能,在k8s集群规模较大的场景下,使用pod过程中,关注某一个ip地址使用,造成ip地址使用的复杂化。
48.虽然calico有设置网络地址池使用的功能,但只能创建新的ip地址池,因此,calico设置网络地址池使用的功能实际上是多网络的支持功能,对于一个ip网络中的ip地址仍然是固定ip地址的分配方式。另外,calico有基于本工作(work)节点的默认ip地址分段,即一个work节点使用calico网络下的一个子网,是固定的全局网络分段规则,无法将该分段作用于全局work节点下的pod,无法灵活的增删改变,无法灵活的设置使用相关的地址池中的部分ip地址。
49.kuryr-kubernetes使用neutron作为统一的网络方案直接管理虚拟机ip地址和pod ip地址,neutron具有创建子网指定ip地址段的功能,但ip地址段只有在创建的时候,设置使用,后期无法灵活地使用部分ip地址段。
50.cni-genie具有通过annotations指定ip地址池的功能,但该功能也是仅限于初始创建的ip网络,该功能实际上也是多网络的支持功能,无法在创建的网络内再次划定ip地址段,无法满足指定服务使用某一ip地址段的需求。
51.随着k8s规模的增加,ip地址灵活的分段使用也是不可缺少的ip地址管理功能,如:k8s部署一类服务,该类服务所有的pod,使用ip网络下的某一段ip地址,其它服务使用另一段ip地址,便于管理ip地址的分配使用。
52.综上可见,相关容器网络的实现方案中对于ip地址的分配不够灵活,ip网络设置之后,只有固定ip地址的功能,才能指定ip地址的使用,无法满足ip地址灵活的分段使用,另外calico的ip地址分段是基于固定规则的ip地址分段,而且该分段的ip地址池只作用于当前work节点。
53.为此,本公开实施例提供一种网络处理方案,更加灵活地分段使用ip地址,作用于整个容器网络,自由创建、删除分段ip地址池,满足大规模使用容器场景下ip地址的管理。
54.本公开实施例提供了一种网络处理方法、装置、电子设备及存储介质,通过将容器网络的ip地址池划分为普通池(第一ip地址池)和指定池(第二ip地址池),在生成网络请求时,网络请求包括有注解信息,可根据注解信息在普通池和/或指定池中分配ip地址给网络服务单元,满足ip地址分段使用,由于注解信息没有指定ip地址,可以不关心每个ip地址的使用和不分配固定ip地址,而是根据不同注解信息可分配不同ip地址给网络服务单元使用,实现动态分配ip地址,分配方式更加灵活。从而可以指定某一段ip地址池,不关心每个ip地址的使用,便于管理ip地址的使用。本公开实施例适用于不同的容器网络的应用场景,例如适用于k8s的容器网络的应用场景,包括calico,weave,kube-ovn,kuryr-kubernetes,
cni-genie,ovs等容器网络。应当理解的是,本公开实施例的应用场景仅仅是本公开的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以将本公开应用于其他类似情景。
55.图1是本公开实施例提供的一种网络处理方法的示例性流程图。该方法在执行之前,需要先创建容器网络,并将容器网络的ip地址池划分为至少一个第一ip地址池和至少一个第二ip地址池,其中,第一ip地址池可以理解为普通池,而第二ip地址池可以理解为指定池;然后才能针对创建的容器网络,进行容器网络ip地址的管理。在一些实施例中,在创建容器网络后,由管理员将容器网络的ip地址池划分为普通池和指定池。在一些实施例中,该方法应用于k8s的容器网络场景,相应地,该方法的执行主体为k8s场景下的工作(worker)节点。
56.如图1所示,图1为一种网络处理方法的示例性流程图,网络处理方法可包括如下步骤101至103:
57.在步骤101中,创建网络服务单元,网络服务单元包括至少一个容器。
58.在一些实施例中,在k8s场景下,worker节点创建网络服务单元,网络服务单元例如为pod,pod为一个或多个容器的集合。
59.在步骤102中,生成网络服务单元对应的网络请求,网络请求包括有注解信息,注解信息中不指定ip地址。
60.本实施例中,注解(annotations)信息用于将任意非标识的元数据(metadata)添加到对象中,并且注解信息不能用于标识对象,而是起到补充说明的作用,其中,对象包括但不限于网络服务单元。注解信息例如包括但不限于:版本信息、镜像信息、时间信息、记录日志的指针、联系信息(网址、电话)等信息。
61.本实施例中,在创建网络服务单元后,可设置网络服务单元的注解信息,注解信息中不指定ip地址。在生成网络服务单元对应的网络请求时,可在网络请求中包括设置好的注解信息,也即,将注解信息作为网络请求所携带信息中的一部分,网络请求所携带信息还可包括其他信息,例如网络服务单元的名称等信息。本实施例中,生成的网络请求用于请求ip地址。
62.本实施例中,与相关技术不同在于,将网络服务单元的注解信息设置为不指定ip地址的注解信息。这样,无需清楚每个ip地址的功能,不进行固定ip地址的分配,而是实现动态ip地址的分配。
63.在步骤103中,根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用。
64.由于容器网络包括至少一个第一ip地址池(即普通池)和至少一个第二ip地址池(即指定池),因此,可设置不同的注解信息。
65.例如,可设置注解信息包括第一预设信息,第一预设信息中不指定ip地址且不指定第二ip地址池(即指定池)的名称。需要说明的是,设置第一预设信息的目的在于从普通池(即第一ip地址池)中分配ip地址,所以第一预设信息中不指定第二ip地址池(即指定池)的名称。在一些实施例中,一种简单的设置方式为:设置注解信息为空信息,也即第一预设信息为空信息,这样,第一预设信息中既没有指定ip地址,也没有指定第二ip地址池(即指定池)的名称。
66.又例如,可设置注解信息包括第二预设信息,第二预设信息中不指定ip地址且指定一个第二ip地址池(即指定池)的名称。需要说明的是,设置第二预设信息的目的在于可以指定某一段ip地址池,不关心每个ip地址的使用,便于管理ip地址的使用。
67.还例如,可设置注解信息包括第三预设信息,第三预设信息包括指定ip地址,这样,对于注解信息的设置与相关技术相同,在清楚每个ip地址的功能的场景下,可实现固定ip地址的分配。在一些实施例中,设置注解信息的值前缀为“fix_ip”,表示指定ip地址。
68.本实施例中,通过将容器网络的ip地址池划分为普通池(第一ip地址池)和指定池(第二ip地址池),在生成网络请求时,网络请求包括有注解信息,可根据注解信息在普通池和/或指定池中分配ip地址给网络服务单元,满足ip地址分段使用,由于注解信息没有指定ip地址,不关心每个ip地址的使用和不分配固定ip地址,而是根据不同注解信息可分配不同ip地址给网络服务单元使用,实现动态分配ip地址,分配方式更加灵活。从而可以指定某一段ip地址池,不关心每个ip地址的使用,便于管理ip地址的使用。
69.在一些实施例中,步骤103中根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,可采用如下方式实现:
70.调用ip地址管理插件,以使ip地址管理插件根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用。其中,ip地址管理插件设置在容器网络接口处,且ip地址管理插件的ip请求对象设置为网络服务单元,以便ip地址管理插件后续为该网络服务单元分配ip地址。
71.其中,ip地址管理插件用于分配ip地址,管理ip地址的使用。ip地址管理插件为遵循cni(container network interface,容器网络接口)规范的网络插件,也可以理解为cni插件。cni是容器网络的标准的、通用的接口,可以理解为容器网络的标准化协议。在一些实施例中,ip地址管理插件可以为ipam插件,用于分配ip地址。调用ipam插件的方式可以为调用cni,由cni调用ipam插件。
72.本实施例中,调用ip地址管理插件后,ip地址管理插件基于不同的注解信息,采用不同的ip地址分配策略给网络服务单元分配ip地址。
73.例如,ip地址管理插件基于注解信息包括第一预设信息,由于第一预设信息中不指定ip地址且不指定第二ip地址池(即指定池)的名称,因此从至少一个第一ip地址池(即普通池)中分配未使用的ip地址给网络服务单元。
74.又例如,ip地址管理插件基于注解信息包括第二预设信息,由于第二预设信息中不指定ip地址且指定一个第二ip地址池(即指定池)的名称,因此从第二预设信息指定的第二ip地址池中分配未使用的ip地址给网络服务单元。
75.还例如,ip地址管理插件基于注解信息包括第三预设信息,例如解析到注解信息的值前缀为“fix_ip”,从至少一个第一ip地址池(即指定池)和至少一个第二ip地址池(即指定池)中查找指定ip地址是否被占用,若未占用,则返回成功,表示指定ip地址分配成功;若已占用,则返回失败,表示指定ip地址分配失败。
76.本实施例中,ip地址管理插件分配未使用的ip地址给网络服务单元时,可以按照顺序或者随机分配未使用的ip地址。
77.在一些实施例中,步骤103中“根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用”,可包括如下方案:
78.当确定网络请中的注解信息包括第一预设信息时,由于第一预设信息中不指定ip地址且不指定第二ip地址池(即指定池)的名称,则从第一ip地址池(普通池)中确定目标ip地址,以分配给网络服务单元使用。
79.可见,通过设置注解信息包括第一预设信息,实现从普通池(即第一ip地址池)中分配ip地址给网络服务单元使用。
80.在一些实施例中,步骤103中“根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用”,还可包括如下方案:
81.当确定网络请求中的注解信息包括第二预设信息时,由于第二预设信息中不指定ip地址且指定一个第二ip地址池(即指定池)的名称,则从第二ip地址池中确定目标ip地址,以分配给网络服务单元使用。
82.更进一步地,当确定网络请求中的注解信息包括第二预设信息时,从至少一个第二ip地址池中确定是否有与第二预设信息对应的任一第二ip地址池,例如,从至少一个第二ip地址池中确定是否有与第二预设信息中指定的第二ip地址池相对应的第二ip地址池。这样,若确定有与第二预设信息对应的第二ip地址池,则从该第二ip地址池中确定出目标ip地址,以分配给网络服务单元使用。
83.可见,通过设置注解信息包括第二预设信息,可以指定某一段ip地址池,不关心每个ip地址的使用,便于管理ip地址的使用。
84.在一些实施例中,步骤103中“根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用”,还可包括如下方案:
85.当确定网络请求中的注解信息包括第三预设信息时,由于第三预设信息包括指定ip地址,则从第一ip地址池和第二ip地址池中查找与第三预设信息对应的ip地址,例如,从第一ip地址池和第二ip地址池中查找与第三预设信息中指定ip地址对应的ip地址。
86.这样,确定与第三预设信息对应的ip地址是否为使用状态;当确定第三预设信息对应的ip地址为非使用状态时,将该ip地址确定为目标ip地址,以分配给网络服务单元使用。
87.可见,以上各实施例公开的网络处理方法,通过将容器网络的ip地址池划分为普通池(第一ip地址池)和指定池(第二ip地址池),在生成网络请求时,网络请求包括有注解信息,可根据注解信息在普通池和/或指定池中分配ip地址给网络服务单元,满足ip地址分段使用,由于注解信息没有指定ip地址,不关心每个ip地址的使用和不分配固定ip地址,而是根据不同注解信息可分配不同ip地址给网络服务单元使用,实现动态分配ip地址,分配方式更加灵活。从而可以指定某一段ip地址池,不关心每个ip地址的使用,便于管理ip地址的使用,例如可以根据一类服务进行分配,而不必关注每一个ip地址的使用。
88.以上各实施例公开的网络处理方法可适用于ipv6地址的管理,在此不再赘述。
89.在一些实施例中,当删除网络服务单元时,删除网络服务单元的目标ip地址的占用标记,占用标记用于标识该ip地址被网络服务单元占用。
90.例如,可调用容器网络接口删除已创建的网络服务单元,并调用ip地址管理插件删除网络服务单元的目标ip地址的占用标记。这样,可回收ip地址资源,供其他网络服务单元使用。
91.在一些实施例中,删除ip地址的占用标记后,将ip地址返回给对应的地址池,例
如,若该ip地址为普通池中的地址,则将该ip地址返回给对应的普通池,若该ip地址为指定池中的地址,则将该ip地址返回给对应的指定池。
92.在一些实施例中,在k8s场景下,删除pod,回收ip地址可通过调用一个用于删除pod且回收ip地址的应用程序编程接口(application programming interface,api)来实现,其中,用于删除pod且回收ip地址的api例如为:/ip/put/,这个api的请求方式为post。相应地,ip地址的管理端(可以理解为服务器端)接收这个api的请求,删除pod并回收ip地址。
93.图2是本公开实施例提供的另一种网络处理方法的示例性流程图。在图2中,标记20的执行主体可以为管理员,也可以为k8s场景下的主控(master)节点。标记21的执行主体可以为k8s场景下的工作(worker)节点。标记22的执行主体可以为ip地址管理插件,例如ipam插件。
94.在标记20中,包括两个步骤201和202:
95.201、创建容器网络,创建的过程可沿用相关技术,在此不再赘述。创建的容器网络可以有多种实现方案,例如,k8s场景下包括calico,weave,kube-ovn,kuryr-kubernetes,cni-genie,ovs等容器网络。
96.在一些实施例中,可设置用于创建容器网络的应用程序编程接口(application programming interface,api)。例如,设置用于创建容器网络的api为:/network/,这个api的请求方式为post。
97.202、划分容器网络的ip地址池为普通池和指定池。在一些实施例中,可将容器网络的ip地址池划分为至少一个第一ip地址池和至少一个第二ip地址池,其中,第一ip地址池可以理解为普通池,而第二ip地址池可以理解为指定池。
98.在标记21中,包括三个步骤211至213:
99.211、创建网络服务单元。其中,网络服务单元包括一个或多个容器。在k8s场景下,网络服务单元例如为pod。
100.212、设置注解信息。在一些实施例中,设置网络服务单元的注解信息。其中,注解信息中不指定ip地址。在一些实施例中,可设置不同的注解信息。
101.例如,可设置注解信息包括第一预设信息,第一预设信息中不指定ip地址且不指定第二ip地址池(即指定池)的名称。又例如,可设置注解信息包括第二预设信息,第二预设信息中不指定ip地址且指定一个第二ip地址池(即指定池)的名称。在一些实施例中,还可设置注解信息包括第三预设信息,第三预设信息包括指定ip地址。
102.在一些实施例中,设置注解信息包括第三预设信息,可通过调用一个用于指定ip地址的api进行设置,其中,用于指定ip地址的api例如为:/ip/reserve/,这个api的请求方式为post。相应地,ip地址的管理端(可以理解为服务器端)接收这个api的请求,指定ip地址。
103.213、调用ip地址管理插件。ip地址管理插件可以为ipam插件,调用ipam插件的方式可以为调用cni,由cni调用ipam插件。
104.在标记22中,ip地址管理插件基于不同的注解信息,采用不同的ip地址分配策略给网络服务单元分配ip地址。
105.如图2所示,ip地址管理插件基于注解信息包括第一预设信息,由于第一预设信息
中不指定ip地址且不指定第二ip地址池(即指定池)的名称,因此从普通池(第一ip地址池)中分配未使用的ip地址给网络服务单元,若普通池有多个,则从这多个普通池中分配ip地址。
106.ip地址管理插件基于注解信息包括第二预设信息,第二预设信息中不指定ip地址且指定一个第二ip地址池(即指定池)的名称,因此从第二预设信息对应的指定池(第二ip地址池)中分配未使用的ip地址给网络服务单元。
107.ip地址管理插件基于注解信息包括第三预设信息,从至少一个第一ip地址池(即普通池)和至少一个第二ip地址池(即指定池)中查找指定ip地址是否被占用,若未占用,则返回成功,表示指定ip地址分配成功;若已占用,则返回失败,表示指定ip地址分配失败。
108.在一些实施例中,可采用rest api调用服务,管理存储在数据库的ip地址,其中,数据库例如为etcd数据库,etcd是一个分布式、可靠的键值存储的分布式系统;数据库还可以为关系型数据库mysql等,进行表格数据存储,而非键值存储。相应地,ip地址的管理端(可以理解为服务器端)接收rest api调用请求,提供ip地址服务。
109.在一些实施例中,ip地址管理插件获取未被使用的ip地址,可通过调用一个用于获取未被使用ip地址的api来实现,其中,用于获取未被使用ip地址的api例如为:/network/{net_name}/ip/free/,这个api的请求方式为get。相应地,ip地址的管理端(可以理解为服务器端)接收这个api的请求,提供未被使用的ip地址。
110.在一些实施例中,ip地址管理插件获取被使用ip地址,可通过调用一个用于获取被使用ip地址的api来实现,其中,用于获取被使用ip地址的api例如为:/network/{net_name}/ip/busy/,这个api的请求方式为get。相应地,ip地址的管理端(可以理解为服务器端)接收这个api的请求,提供被使用ip地址。
111.在一些实施例中,ip地址管理插件获取指定ip地址,可通过调用一个用于获取指定ip地址的api来实现,其中,用于获取指定ip地址的api例如为:/network/{net_name}/ip/reserve/,这个api的请求方式为get。相应地,ip地址的管理端(可以理解为服务器端)接收这个api的请求,指定ip地址。
112.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员能够理解,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。另外,本领域技术人员能够理解,说明书中所描述的实施例均属于可选实施例。
113.图3为本公开实施例提供的一种网络处理装置300的示例性框图。如图3所示,网络处理装置300可包括但不限于以下单元:创建单元301、生成单元302、确定单元303以及其他一些可用于容器网络ip地址的管理的单元,例如存储单元,更具体地,存储单元为用于存储ip地址的数据库,其中,数据库可以为etcd数据库,etcd是一个分布式、可靠的键值存储的分布式系统;数据库还可以为关系型数据库mysql等,进行表格数据存储,而非键值存储。
114.为了实现网络处理装置300的功能,需要预先创建容器网络,并将容器网络的ip地址池划分为至少一个第一ip地址池和至少一个第二ip地址池。
115.创建单元301,用于创建网络服务单元,网络服务单元包括至少一个容器。
116.生成单元302,用于生成网络服务单元对应的网络请求,网络请求包括有注解信息,注解信息中不指定ip地址。
117.确定单元303,用于根据网络请求中的注解信息从第一ip地址池和/或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用。
118.在一些实施例中,确定单元303,用于调用ip地址管理插件,以根据网络请求中的注解信息从第一ip地址池或第二ip地址池中确定目标ip地址,以分配给网络服务单元使用,其中,ip地址管理插件设置在容器网络接口处,且ip地址管理插件的ip请求对象设置为网络服务单元。
119.在一些实施例中,确定单元303,用于当确定网络请中的注解信息包括第一预设信息时,从第一ip地址池中确定目标ip地址,以分配给网络服务单元使用。
120.在一些实施例中,确定单元303,用于当确定网络请求中的注解信息包括第二预设信息时,从第二ip地址池中确定ip地址,以分配给网络服务单元使用。
121.在一些实施例中,确定单元303,用于当确定网络请求中的注解信息包括第二预设信息时,从至少一个第二ip地址池中确定是否有与第二预设信息对应的任一第二ip地址池;若确定有与第二预设信息对应的第二ip地址池,则从该第二ip地址池中确定出目标ip地址,以分配给网络服务单元使用。
122.在一些实施例中,确定单元303,用于当确定网络请求中的注解信息包括第三预设信息时,从第一ip地址池和第二ip地址池中查找与第三预设信息对应的ip地址;确定与第三预设信息对应的ip地址是否为使用状态;当确定第三预设信息对应的ip地址为非使用状态时,将该ip地址确定为目标ip地址,以分配给网络服务单元使用。
123.在一些实施例中,网络处理装置300还可包括图中未示出的删除单元,用于当删除网络服务单元时,删除网络服务单元的目标ip地址的占用标记,占用标记用于标识该ip地址被网络服务单元占用。
124.在一些实施例中,网络处理装置300中各单元的细节可参考网络处理方法各实施例的对应步骤,为避免重复描述,在此不再赘述。
125.在一些实施例中,网络处理装置300中各单元的划分仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如网络处理装置300中的至少两个单元可以实现为一个单元;网络处理装置300中各单元也可以划分为多个子单元。可以理解的是,各个单元或子单元能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
126.图4是本公开实施例提供的一种电子设备的结构示意图。如图4所示,电子设备包括:至少一个处理器401、至少一个存储器402和至少一个通信接口403。电子设备中的各个组件通过总线系统404耦合在一起。通信接口403,用于与外部设备之间的信息传输。可理解地,总线系统404用于实现这些组件之间的连接通信。总线系统404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图4中将各种总线都标为总线系统404。
127.可以理解,本实施例中的存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
128.在一些实施方式中,存储器402存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
129.其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(media player)、浏览器(browser)等,用于实现各种应用业务。实现本公开实施例提供的网络处理方法的程序可以包含在应用程序中。
130.在本公开实施例中,处理器401通过调用存储器402存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器401用于执行本公开实施例提供的网络处理方法各实施例的步骤。
131.本公开实施例提供的网络处理方法可以应用于处理器401中,或者由处理器401实现。处理器401可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
132.本公开实施例提供的网络处理方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成方法的步骤。
133.本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如网络处理方法各实施例的步骤,为避免重复描述,在此不再赘述。
134.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
135.本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。
136.本领域的技术人员能够理解,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
137.虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1