CN111404753B - 一种扁平网络配置方法、计算机设备及存储介质 - Google Patents

一种扁平网络配置方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN111404753B
CN111404753B CN202010208343.2A CN202010208343A CN111404753B CN 111404753 B CN111404753 B CN 111404753B CN 202010208343 A CN202010208343 A CN 202010208343A CN 111404753 B CN111404753 B CN 111404753B
Authority
CN
China
Prior art keywords
target
container group
flat network
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.)
Active
Application number
CN202010208343.2A
Other languages
English (en)
Other versions
CN111404753A (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.)
Transwarp Technology Shanghai Co Ltd
Original Assignee
Transwarp Technology Shanghai 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 Transwarp Technology Shanghai Co Ltd filed Critical Transwarp Technology Shanghai Co Ltd
Priority to CN202010208343.2A priority Critical patent/CN111404753B/zh
Publication of CN111404753A publication Critical patent/CN111404753A/zh
Application granted granted Critical
Publication of CN111404753B publication Critical patent/CN111404753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0873Checking configuration conflicts between network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5046Resolving address allocation conflicts; Testing of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use

Abstract

本发明实施例公开了一种扁平网络配置方法、计算机设备及存储介质,应用于基于Kubernetes软件框架的分布式管理系统中,其中,方法包括:响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息;根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组,其中,目标容器组通过目标扁平网络与主机网络进行通信。本发明实施例的方案,实现了目标容器组与分布式网络系统中的主机网络或者其他容器组之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。

Description

一种扁平网络配置方法、计算机设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种扁平网络配置方法、计算机设备及存储介质。
背景技术
随着计算机技术的飞速发展,容器技术也得到了广泛的应用。容器技术可以有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,其中,每一个孤立的组即为一个容器。
Kubernetes是一套基于容器技术的分布式管理系统,其可以在一组主机上运行和协同容器化应用程序的系统,提供应用部署、规划、更新维护的机制。Kubernetes通过容器组(pod)来管理容器,每个容器组可以包含一个或多个紧密关联的容器,并且每个容器组都拥有一个独立IP(Internet Protocol,网际协议)地址。具体的,每个容器组可以通过Kubernetes提供的Flannel或者Calico等网络方案与主机网络进行通信。
当Kubernetes采用Flannel网络方案时,集群外的机器无法直接通过目标容器组的IP实现对目标容器组的访问,并且当目标容器组迁移至其他节点时,会导致目标容器组的IP地址发送变化;当Kubernetes采用Calico网络方案时,需要路由器开启BGP协议(Border Gateway Protocol,边界网关协议),并且当目标容器组迁移至其他节点时,也会导致目标容器组的IP地址发生变化。
发明内容
本发明实施例提供一种扁平网络配置方法、计算机设备及存储介质,以实现目标容器组与分布式网络系统中的主机网络或者其他容器组之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。
第一方面,本发明实施例提供了一种扁平网络配置方法,应用于基于Kubernetes软件框架的分布式管理系统中,该方法包括:
响应于目标容器组的创建信息,获取与所述目标容器组匹配的容器组IP地址;
如果确定所述分布式管理系统中不包括与所述容器组IP地址匹配的目标扁平网络,则获取与所述目标容器组匹配的扁平网络配置信息;
根据所述扁平网络配置信息,创建所述目标扁平网络,并根据所述目标容器组的创建信息创建所述目标容器组,其中,所述目标容器组通过所述目标扁平网络与主机网络进行通信。
第二方面,本发明实施例还提供了一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
响应于目标容器组的创建信息,获取与所述目标容器组匹配的容器组IP地址;
如果确定所述分布式管理系统中不包括与所述容器组IP地址匹配的目标扁平网络,则获取与所述目标容器组匹配的扁平网络配置信息;
根据所述扁平网络配置信息,创建所述目标扁平网络,并根据所述目标容器组的创建信息创建所述目标容器组,其中,所述目标容器组通过所述目标扁平网络与主机网络进行通信。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一实施例所述的扁平网络配置方法。
本发明实施例通过响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息;根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组,实现了目标容器组与分布式网络系统中的主机网络或者其他容器组之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。
附图说明
图1是本发明实施例一提供的一种扁平网络配置方法的流程图;
图2是本发明实施例二提供的一种扁平网络配置方法的流程图;
图3是本发明实施例二提供的一种目标扁平网络创建的虚拟接口的场景图;
图4是本发明实施例二提供的一种扁平网络的配置信息的管理方法的流程图;
图5是本发明实施例二提供的一种扁平网络IP地址的管理方法的流程图;
图6是本发明实施例二提供的一种为容器组获取扁平网络IP地址的方法的流程图;
图7是本发明实施例三提供的一种扁平网络配置装置的结构示意图;
图8为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本文使用的术语“容器组”是基于Kubernetes软件框架的分布式管理系统中的pod,通过容器组可以实现对容器的管理,其中,每个容器组可以包含一个或多个紧密关联的容器,并且每个容器组都拥有一个独立IP。
本文使用的术语“Kubernetes”是一个开源的软件框架,基于Kubernetes软件框架的分布式管理系统可以实现对容器集群的管理。
本文使用的术语“目标容器组”是分布式管理系统中的任意一个容器组。
本文使用的术语“扁平网络的配置信息”可以包括目标扁平网络的名称、IP地址的范围、网关以及允许使用扁平网络的IP地址的节点等信息。
本文使用的术语“虚拟接口”可以用于为目标容器组与主机网络之间提供通信接口,其与物理接口的功能完全相同,不同之处在于,虚拟接口不存在硬件结构,并且可以使该虚拟接口与其连接的目标容器组在同一层。
为了便于理解,将本发明实施例的主要发明构思进行简述。
现有技术中每个容器组可以通过Kubernetes提供的Flannel或者Calico等网络方案与主机网络进行通信。
现有技术中当Kubernetes采用Flannel网络方案时,集群外的机器无法直接通过目标容器组的IP实现对目标容器组的访问,并且当目标容器组迁移至其他节点时,会导致目标容器组的IP地址发送变化;当Kubernetes采用Calico网络方案时,需要路由器开启BGP协议(Border Gateway Protocol,边界网关协议),并且当目标容器组迁移至其他节点时,也会导致目标容器组的IP地址发生变化。
发明人针对现有技术中的当目标容器组迁移至其他节点时,会导致目标容器组的IP地址发送变化以及需要路由器开启BGP协议,才能实现容器组与主机网络之间的通信连接的问题,考虑是否可以通过在Kubernetes中配置一种扁平网络,以实现容器组与主机网络之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。
基于上述思考,发明人创造性的提出,通过分布式管理系统中的控制器响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息;根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组,目标容器组可以通过目标扁平网络与主机网络进行通信。这样做的好处是,通过在Kubernetes中配置一种扁平网络,从而实现了目标容器组与分布式网络系统中的主机网络或者其他容器组之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。
实施例一
图1是本发明实施例一提供的一种扁平网络配置方法的流程图,本实施例可应用于基于Kubernetes软件框架的分布式管理系统中,该方法可以由扁平网络配置装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在计算机设备中。具体的,参考图1,该方法具体包括如下步骤:
S110、响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址。
需要说明的是,本发明实施例中涉及到的容器组,即为基于Kubernetes软件框架的分布式管理系统中的pod,通过容器组可以实现对容器的管理,其中,每个容器组可以包含一个或多个紧密关联的容器,并且每个容器组都拥有一个独立IP。本发明实施例中涉及到的目标容器组可以为基于Kubernetes软件框架的分布式管理系统中的任意一个容器组,本发明实施例中对其不作限定。
具体的,当基于Kubernetes软件框架的分布式管理系统中的控制器监控到目标容器组的创建信息时,对目标容器组的创建信息进行响应,并获取与目标容器组匹配的容器组IP地址。其中,Kubernetes是一个开源的软件框架,基于Kubernetes软件框架的分布式管理系统可以实现对容器集群的管理。
需要说明的是,本发明实施例中获取到的容器组IP地址可以为一个具体的IP地址,也可以为一个空值,本发明实施例对其不作限定。具体的,若控制器获取到的容器组IP地址为一个具体的IP地址,则控制器可以根据该容器组IP地址,创建目标容器组;若控制器获取到的容器组IP地址为一个空值,则控制器可以为目标容器组指定容器组IP地址,并根据指定容器组IP地址创建目标容器组。
示例性的,若目标容器组为pod-1,当需要创建pod-1时,控制器响应于pod-1的创建信息,并获取与pod-1匹配的容器组IP地址;需要说明的是,获取到的与pod-1匹配的容器组IP地址可以为一个具体的IP地址,例如,123.456.789;也可以为一个空值,即并未对pod-1的容器组IP地址进行限定,控制器可以随机为pod-1分配容器组IP地址。
S120、如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息。
具体的,当分布式管理系统中的控制器响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址之后,若确定获取到的容器组IP地址不是一个空值,则可以进一步的确定分布式管理系统中是否包含与目标容器组的容器组IP地址匹配的目标扁平网络,并获取与目标容器组匹配的扁平网络配置信息。
其中,目标扁平网络的配置信息,可以包括目标扁平网络的名称、IP地址的范围、网关以及允许使用扁平网络的IP地址的节点等信息,本发明实施例中对其不作限定。
进一步的,如果确定分布式管理系统中不包括与目标容器组的容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息。其中,目标扁平网络的配置信息,可以包括目标扁平网络的名称、IP地址的范围、网关以及允许使用扁平网络的IP地址的节点等信息,本发明实施例中对其不作限定。
示例性的,若需要创建的目标容器组为pod-1,并获取到pod-1的容器组IP地址为IP地址A;进一步的,若确定分布式管理系统中不包括与IP地址A匹配的目标扁平网络,则获取与pod-1匹配的扁平网络配置信息。
S130、根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组。
具体的,分布式管理系统中的控制器获取到与目标容器组匹配的扁平网络配置信息之后,可以根据扁平网络配置信息创建目标扁平网络;进一步的,根据目标容器组的创建信息创建目标容器组。需要说明的是,目标扁平网络创建成功后,进一步的创建目标容器组,目标容器组即可通过目标扁平网络与主机网络进行通信,同时,目标容器组也可以与其他容器组进行通信。
可选的,根据扁平网络配置信息,创建目标扁平网络,可以包括:初始化创建目标扁平网络,并创建目标扁平网络的虚拟接口,虚拟接口用于为目标容器组与主机网络之间提供通信接口;根据容器组IP地址,确定与目标扁平网络对应的网络IP地址,并为目标扁平网络分配网络IP地址;根据扁平网络配置信息,对目标扁平网络进行配置。需要说明的是,容器组IP地址与目标扁平网络对应的网络IP地址可以为同一个IP地址。
具体的,分布式管理系统中的控制器初始化创建目标扁平网络,并创建目标扁平网络的虚拟接口,其中,目标扁平网络的虚拟接口可以用于为目标容器组与主机网络之间提供通信接口。需要说明的是,本发明实施例中的虚拟接口可以为桥式结构,其与物理接口的功能完全相同,不同之处在于,虚拟接口不存在硬件结构,并且可以使该虚拟接口与其连接的目标容器组在同一层。这样设置的好处在于,将目标容器组与目标扁平网络的虚拟接口设置在同一层,可以便于目标容器组与分布式管理系统中的主机网络或者其他目标容器组的通信连接。
可选的,创建目标扁平网络的虚拟接口,可以包括:在分布式管理系统中,为目标节点的目标物理接口创建目标虚拟接口,其中,目标虚拟接口与目标物理接口的IP地址以及功能相同;删除目标物理接口的IP地址;通过目标虚拟接口创建与目标容器组对应的目标扁平网络的虚拟接口。
在本发明实施例的一个具体例子中,分布式管理系统中,目标节点的目标物理接口为路由出口网卡eth0,为其创建模式为桥式的虚拟接口,并命名为veth0,其中,veth0为桥式的macvtap接口或者macvlan接口,并且与eth0的IP地址以及功能相同,删除eth0的IP地址;进一步的,可以在veth0上创建与目标容器组对应的目标扁平网络的虚拟接口veth-pod-1或者veth-pod-2。需要说明的是,目标容器组可以通过veth-pod-1或者veth-pod-2实现与分布式管理系统中的主机网络或者其他目标容器组的通信连接。
需要说明的是,通过目标虚拟接口创建的与目标容器组对应的目标扁平网络的虚拟接口的个数可以为一个,也可以为多个,本发明实施例中对其不作限定。
进一步的,分布式管理系统中的控制器根据目标容器组的容器组IP地址,确定目标扁平网络对应的网络IP地址,并为目标扁平网络分配网络IP地址,其中,目标扁平网络对应的网络IP地址可以为IP地址的范围;也可以为固定的IP地址,本发明实施例中对其不作限定。
进一步的,分布式管理系统中的控制器可以根据目标扁平网络的名称、P地址的范围、网关以及允许使用扁平网络的IP地址的节点等配置信息中的至少一项,对目标扁平网络进行配置。
在本发明实施例的一个具体例子中,可以使用CRD(Custom ResourceDefinition,自定义资源定义)声明目标扁平网络的配置信息。具体的,使用CRD声明扁平网络配置可以如下文所示:apiVersion:network.k8s.io/v1beta1;kind:FlatNetworkConfig;metadata;name:network1;spec;Start:172.16.0.20;End:172.16.255.254;Gateway:172.16.0.1;Subnet:172.16.0.0/16;NodeSelector;Host:network1;status;state:Valid。需要说明的是,本发明实施例中还可以通过其他方式声明目标扁平网络的配置信息,本发明实施例中对其不作限定。
本实施例的方案,通过分布式管理系统中的控制器响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息;根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组,实现了目标容器组与分布式网络系统中的主机网络或者其他容器组之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。
在上述技术方案的基础上,根据扁平网络配置信息,对目标扁平网络进行配置,可以包括:确定目标扁平网络的扁平网络配置信息,与已有合法扁平网络是否冲突;若是,将目标扁平网络的扁平网络配置信息标记为不合法;若否,将目标扁平网络的扁平网络配置信息标记为合法。
这样设置的好处在于,当确定目标扁平网络的扁平网络配置信息,与已有合法扁平网络冲突时,将目标扁平网络的扁平网络配置信息标记为不合法,可以有效地避免创建无效的目标扁平网络,提升了扁平网络创建成功的概率。
在本发明实施例的一个具体例子中,若确定目标扁平网络的名称为“名称a”,并且该分布式管理系统中已经存在名称为“名称a”的扁平网络,则可以确定目标扁平网络与已有合法扁平网络冲突,此时,需要将名称为“名称a”的目标扁平网络标记为不合法,并停止对目标扁平网络的创建;进一步的,控制器需要重新确定目标扁平网络的名称,直至目标扁平网络的名称不会与分布式管理系统中的其他扁平网络的名称发生冲突时,对目标扁平网络进行创建。
可选的,根据扁平网络配置信息,对目标扁平网络进行配置,还可以包括:检查与目标容器组匹配的容器组IP地址是否为空;若否,根据目标容器组的IP地址为目标扁平网络分配IP地址;若是,重新为目标扁平网络分配IP地址。
在本发明实施例的一个具体例子中,若确定目标扁平网络的IP地址为“IP地址a”,即与目标容器组匹配的容器组IP地址不是空的;进一步的,确定“IP地址a”是否被占用,即确定分布式管理系统中是否存在IP地址为“IP地址a”的扁平网络;若存在,则可以确定目标扁平网络与已有合法扁平网络冲突,此时,需要将IP地址为“IP地址a”的目标扁平网络标记为不合法;若不存在,则可以确定目标扁平网络与已有合法扁平网络不冲突,可以根据“IP地址a”创建目标扁平网络。
实施例二
图2是本发明实施例二提供的一种扁平网络配置方法的流程图;本实施例在上述实施例的基础上对本发明实施例进行细化,具体的,在获取与目标容器组匹配的容器组之后,还可以包括:如果确定分布式管理系统中包括与容器组IP地址匹配的目标扁平网络,则根据目标容器组的创建信息创建目标容器组。具体的,参考图2,该方法具体包括如下步骤:
S210、响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址。
S220、如果确定分布式管理系统中包括与容器组IP地址匹配的目标扁平网络,则根据目标容器组的创建信息创建目标容器组。
具体的,当分布式管理系统中的控制器响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址之后,若确定获取到的容器组IP地址不是一个空值,则可以进一步的确定分布式管理系统中是否包含与目标容器组的容器组IP地址匹配的目标扁平网络。
进一步的,如果确定分布式管理系统中包括与目标容器组的容器组IP地址匹配的目标扁平网络,则可以直接根据目标容器组的创建信息创建目标容器组,此时,无需再创建目标扁平网络,可以快速地建立目标容器组与分布式管理系统中的主机网络或者其他容器组之间的通信连接。
本实施例的方案,通过分布式管理系统中的控制器响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;如果确定分布式管理系统中包括与容器组IP地址匹配的目标扁平网络,则根据目标容器组的创建信息创建目标容器组,实现了目标容器组与分布式网络系统中的主机网络或者其他容器组之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。
应用场景
为了更好地理解本发明实施例,图3列举了本发明实施例中的一种目标扁平网络创建的虚拟接口的场景图;分布式管理系统中目标节点的目标物理接口为路由出口网卡eth0,为其创建模式为桥式的虚拟接口,并命名为veth0,其中,veth0为桥式的macvtap接口或者macvlan接口,并且与eth0的IP地址以及功能相同,删除eth0的IP地址;进一步的,在veth0上创建与目标容器组对应的目标扁平网络的虚拟接口veth-pod-1以及veth-pod-2。需要说明的是,目标容器组可以通过veth-pod-1或者veth-pod-2实现与分布式管理系统中的主机网络或者其他目标容器组的通信连接。从图3中,可以明显的看出,虚拟接口veth0、与目标容器组对应的目标扁平网络的虚拟接口veth-pod-1以及veth-pod-2在同一层上,从而目标容器组可以快速地与分布式管理系统中的主机网络或者其他目标容器组进行通信。
图4列举了本发明实施例中的一种扁平网络的配置信息的管理方法的流程图;具体的,参考图4,该方法具体包括如下步骤:
S410、获取扁平网络配置信息。具体的,控制器响应与扁平网络配置信息,当获取到扁平网络的扁平网络配置信息时,执行S420。
S420、检查扁平网络配置信息与已有合法扁平网络配置是否冲突。
若是,执行S430;
若否,执行S440。
S430、将扁平网络配置信息标记为不合法。
S440、将扁平网络配置信息标记为合法。
图5列举了本发明实施例中的一种扁平网络IP地址的管理方法的流程图;具体的,参考图5,该方法具体包括如下步骤:
S510、获取扁平网络IP地址。具体的,分布式管理系统中的控制器获取目标容器组的创建信息中包含IP地址。
S520、检查请求的IP地址是否为空。具体的,控制器检查目标容器组的创建信息中包含的IP地址是否为空,如果为空,则执行S530,;否则,执行S560。
S530、是否存在空闲IP地址。若是,执行S540;若否,执行S570。
S540、为扁平网络分配IP地址。
S550、将扁平网络IP地址标记为合法。
S560、请求的IP地址是否被占用。若是,执行S570;若否,执行S550。
S570、将扁平网络IP地址标记为不合法。
图6列举了本发明实施例中的一种为容器组获取扁平网络IP地址的方法的流程图;具体的,参考图6,该方法具体包括如下步骤:
S610、创建使用扁平网络的容器组。具体的,当分布式管理系统中的控制器检测到有容器组创建时,执行S620。
S620、为容器组申请扁平网络IP地址。具体的,若分布式管理系统中包括属于容器组扁平网络IP地址,则使用该扁平网络IP地址。若不存在,则为该容器组申请扁平网络IP地址,若容器组指定了所使用的IP地址,则将请求的IP地址设为该IP地址。
S630、检查扁平网络IP地址是否合法。若是,执行S650;若否,执行S640。
S640、不允许容器组创建。具体的,可以通过Admission Webhook或者修改调度器实现不允许容器组创建,本发明实施例中还可以通过其他方法拒绝容器组创建,本发明实施例中对其不作限定。
S650、为容器组指定IP地址,并设置NodeSelector。当容器组通过CNI创建时,CNI应使用该IP地址作为容器组的IP地址。其中,CNI是CNCF旗下的一个项目,由一组用于配置Linux容器的网络接口的规范和库组成,同时还包含了一些插件。CNI仅关心容器组创建时的网络分配,和当容器被删除时释放网络资源。
在本应用场景中,由于容器组使用的IP地址与节点的地址在同一网段,路由器中的路由能够直接路由至容器组,因此无需路由开启额外功能使得可从集群外部直接访问容器组。当容器组迁移至其他节点时,对应的扁平网络IP地址如果没有删除,则容器组仍会使用对应的合法扁平网络地址信息请求的IP地址,从而达到了容器组的IP地址不变的效果。
实施例三
图7是本发明实施例三提供的一种扁平网络配置装置的结构示意图,该装置可以执行本发明实施例中任意实施例中涉及到的扁平网络配置方法,该装置可以通过软件和/或硬件的方式实现,具体的,参考图7,该装置具体包括:容器组IP地址获取模块710、扁平网络配置信息获取模块720以及目标扁平网络创建模块730。
其中,容器组IP地址获取模块710,用于响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;
扁平网络配置信息获取模块720,用于如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息;
目标扁平网络创建模块730,用于根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组,其中,目标容器组通过目标扁平网络与主机网络进行通信。
本实施例的方案,通过容器组IP地址获取模块响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;扁平网络配置信息获取模块如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息;通过目标扁平网络创建模块根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组,实现了目标容器组与分布式网络系统中的主机网络或者其他容器组之间的通信;同时,当目标容器组迁移至其他节点时,不会导致目标容器组的IP地址发送变化。
可选的,扁平网络配置信息获取模块720,还具体用于如果确定分布式管理系统中包括与容器组IP地址匹配的目标扁平网络,则根据目标容器组的创建信息创建目标容器组。
可选的,目标扁平网络创建模块730,还包括:虚拟接口创建单元、网络IP地址分配单元以及目标扁平网络配置单元。其中,虚拟接口创建单元,用于初始化创建目标扁平网络,并创建目标扁平网络的虚拟接口,虚拟接口用于为目标容器组与主机网络之间提供通信接口;网络IP地址分配单元,用于根据容器组IP地址,确定与目标扁平网络对应的网络IP地址,并为目标扁平网络分配网络IP地址;目标扁平网络配置单元,用于根据扁平网络配置信息,对目标扁平网络进行配置。
可选的,虚拟接口创建单元,还具体用于在分布式管理系统中,为目标节点的目标物理接口创建目标虚拟接口,其中,目标虚拟接口与目标物理接口的IP地址以及功能相同;删除目标物理接口的IP地址;通过目标虚拟接口创建与目标容器组对应的目标扁平网络的虚拟接口。
可选的,目标扁平网络配置单元,还用于确定目标扁平网络的扁平网络配置信息,与已有合法扁平网络是否冲突;若是,将目标扁平网络的扁平网络配置信息标记为不合法;若否,将目标扁平网络的扁平网络配置信息标记为合法。
可选的,目标扁平网络配置单元,还用于检查与目标容器组匹配的容器组IP地址是否为空;若否,根据目标容器组的IP地址为目标扁平网络分配IP地址;若是,重新为目标扁平网络分配IP地址。
可选的,本发明实施例中的扁平网络的配置信息包括下述至少一项:扁平网络名称、IP地址的范围、网关以及允许使用扁平网络的IP地址的节点。
本发明实施例所提供的扁平网络配置装置可执行本发明任意实施例所提供的扁平网络配置方法,具备执行方法相应的功能模块和有益效果。
实施例四
图8为本发明实施例四提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括处理器80、存储器81、输入装置82和输出装置83;计算机设备中处理器80的数量可以是一个或多个,图8中以一个处理器80为例;计算机设备中的处理器80、存储器81、输入装置82和输出装置83可以通过总线或其他方式连接,图8中以通过总线连接为例。
存储器81作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的扁平网络配置方法对应的程序指令/模块(例如,扁平网络配置装置中的容器组IP地址获取模块710、扁平网络配置信息获取模块720以及目标扁平网络创建模块730)。处理器80通过运行存储在存储器81中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的扁平网络配置方法。
存储器81可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器81可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器81可进一步包括相对于处理器80远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置82可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置83可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种扁平网络配置方法,该方法包括:
响应于目标容器组的创建信息,获取与目标容器组匹配的容器组IP地址;
如果确定分布式管理系统中不包括与容器组IP地址匹配的目标扁平网络,则获取与目标容器组匹配的扁平网络配置信息;
根据扁平网络配置信息,创建目标扁平网络,并根据目标容器组的创建信息创建目标容器组。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的扁平网络配置方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述扁平网络配置装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (13)

1.一种扁平网络配置方法,应用于基于Kubernetes软件框架的分布式管理系统中,其特征在于,包括:
响应于目标容器组的创建信息,获取与所述目标容器组匹配的容器组网际协议IP地址;所述容器组IP地址为一个具体的IP地址或者空值;
如果确定所述分布式管理系统中不包括与所述容器组IP地址匹配的目标扁平网络,则获取与所述目标容器组匹配的扁平网络配置信息;
根据所述扁平网络配置信息,创建所述目标扁平网络,并根据所述目标容器组的创建信息创建所述目标容器组,其中,所述目标容器组通过所述目标扁平网络与主机网络进行通信;
所述根据所述扁平网络配置信息,创建所述目标扁平网络,包括:
初始化创建目标扁平网络,并创建所述目标扁平网络的虚拟接口,所述虚拟接口用于为所述目标容器组与主机网络之间提供通信接口;
根据所述容器组IP地址,确定与所述目标扁平网络对应的网络IP地址,并为所述目标扁平网络分配所述网络IP地址;
根据所述扁平网络配置信息,对所述目标扁平网络进行配置。
2.根据权利要求1所述的方法,其特征在于,在所述获取与所述目标容器组匹配的容器组IP地址之后,还包括:
如果确定所述分布式管理系统中包括与所述容器组IP地址匹配的目标扁平网络,则根据所述目标容器组的创建信息创建所述目标容器组。
3.根据权利要求1所述的方法,其特征在于,所述创建所述目标扁平网络的虚拟接口,包括:
在所述分布式管理系统中,为目标节点的目标物理接口创建目标虚拟接口,其中,所述目标虚拟接口与所述目标物理接口的IP地址以及功能相同;
删除所述目标物理接口的IP地址;
通过所述目标虚拟接口创建与所述目标容器组对应的目标扁平网络的虚拟接口。
4.根据权利要求1所述的方法,其特征在于,所述根据所述扁平网络配置信息,对所述目标扁平网络进行配置,包括:
确定所述目标扁平网络的扁平网络配置信息,与已有合法扁平网络是否冲突;
若是,将所述目标扁平网络的扁平网络配置信息标记为不合法;
若否,将所述目标扁平网络的扁平网络配置信息标记为合法。
5.根据权利要求1所述的方法,其特征在于,所述根据所述扁平网络配置信息,对所述目标扁平网络进行配置,还包括:
检查与所述目标容器组匹配的容器组IP地址是否为空;
若否,根据所述目标容器组的IP地址为所述目标扁平网络分配IP地址;
若是,重新为所述目标扁平网络分配IP地址。
6.根据权利要求1所述的方法,其特征在于,所述扁平网络的配置信息包括下述至少一项:
扁平网络名称、IP地址的范围、网关以及允许使用扁平网络的IP地址的节点。
7.一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,其特征在于,当所述指令执行时使得所述处理器执行以下操作:
响应于目标容器组的创建信息,获取与所述目标容器组匹配的容器组IP地址;所述容器组IP地址为一个具体的IP地址或者空值;
如果确定分布式管理系统中不包括与所述容器组IP地址匹配的目标扁平网络,则获取与所述目标容器组匹配的扁平网络配置信息;
根据所述扁平网络配置信息,创建所述目标扁平网络,并根据所述目标容器组的创建信息创建所述目标容器组,其中,所述目标容器组通过所述目标扁平网络与主机网络进行通信;
所述处理器是设置为通过以下方式创建所述目标扁平网络:
初始化创建目标扁平网络,并创建所述目标扁平网络的虚拟接口,所述虚拟接口用于为所述目标容器组与主机网络之间提供通信接口;
根据所述容器组IP地址,确定与所述目标扁平网络对应的网络IP地址,并为所述目标扁平网络分配所述网络IP地址;
根据所述扁平网络配置信息,对所述目标扁平网络进行配置。
8.根据权利要求7所述的计算机设备,其特征在于,所述处理器如果确定所述分布式管理系统中不包括与所述容器组IP地址匹配的目标扁平网络,则根据所述目标容器组的创建信息创建所述目标容器组。
9.根据权利要求7所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式创建所述目标扁平网络的虚拟接口:
在所述分布式管理系统中,为目标节点的目标物理接口创建目标虚拟接口,其中,所述目标虚拟接口与所述目标物理接口的IP地址以及功能相同;
删除所述目标物理接口的IP地址;
通过所述目标虚拟接口创建与所述目标容器组对应的目标扁平网络的虚拟接口。
10.根据权利要求7所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式对所述目标扁平网络进行配置:
确定与所述目标容器组对应的目标扁平网络的配置信息,与已有合法扁平网络是否冲突;
若是,将与所述目标容器组对应的目标扁平网络的配置信息标记为不合法;
若否,将与所述目标容器组对应的目标扁平网络的配置信息标记为合法。
11.根据权利要求7所述的计算机设备,其特征在于,所述处理器还设置为通过以下方式对所述目标扁平网络进行配置:
检查所述目标容器组的IP地址是否为空;
若否,根据所述目标容器组的IP地址为所述目标扁平网络分配IP地址;
若是,继续检测是否存在空闲的IP地址。
12.根据权利要求7所述的计算机设备,其特征在于,所述扁平网络的配置信息包括下述至少一项:
扁平网络名称、IP地址的范围、网关以及允许使用扁平网络的IP地址的节点。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的扁平网络配置方法。
CN202010208343.2A 2020-03-23 2020-03-23 一种扁平网络配置方法、计算机设备及存储介质 Active CN111404753B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010208343.2A CN111404753B (zh) 2020-03-23 2020-03-23 一种扁平网络配置方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010208343.2A CN111404753B (zh) 2020-03-23 2020-03-23 一种扁平网络配置方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111404753A CN111404753A (zh) 2020-07-10
CN111404753B true CN111404753B (zh) 2021-08-20

Family

ID=71413515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010208343.2A Active CN111404753B (zh) 2020-03-23 2020-03-23 一种扁平网络配置方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111404753B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035062B (zh) * 2020-08-19 2021-09-28 星环信息科技(上海)股份有限公司 云计算的本地存储的迁移方法、计算机设备及存储介质
CN112162828B (zh) * 2020-10-29 2023-03-24 杭州谐云科技有限公司 一种基于云边场景的容器网络协同系统和协同方法
CN113766043B (zh) * 2021-05-11 2024-02-23 腾讯科技(深圳)有限公司 配置目标容器的方法、装置、计算机设备及存储介质
CN113810230A (zh) * 2021-09-16 2021-12-17 广州虎牙科技有限公司 对容器集群中的容器进行网络配置的方法、装置及系统
CN114116124A (zh) * 2021-11-10 2022-03-01 支付宝(杭州)信息技术有限公司 一种云容器及基于云容器的人机交互方法和装置
CN114363170A (zh) * 2021-12-29 2022-04-15 中国电信股份有限公司 容器服务网络配置方法及相关产品
CN114629744B (zh) * 2022-01-25 2024-01-16 浙江大华技术股份有限公司 基于macvlan主机网络的数据访问方法、系统及相关装置
CN114640652B (zh) * 2022-02-24 2023-09-19 联想(北京)有限公司 一种信息处理方法及装置
CN115189948B (zh) * 2022-07-11 2023-05-12 北京志凌海纳科技有限公司 一种CaaS平台中容器网络插件的实现方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491123A (zh) * 2015-12-04 2016-04-13 北京航空航天大学 容器间通信方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733029B2 (en) * 2018-07-31 2020-08-04 Hewlett Packard Enterprise Development Lp Movement of services across clusters
CN108924268B (zh) * 2018-09-11 2021-05-25 网宿科技股份有限公司 一种容器云服务系统及pod创建方法、装置
CN110012125B (zh) * 2019-04-01 2022-02-01 优刻得科技股份有限公司 集群网络通信方法、装置、存储介质和设备
CN110138606B (zh) * 2019-05-06 2022-03-15 携程旅游信息技术(上海)有限公司 容器网络配置方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491123A (zh) * 2015-12-04 2016-04-13 北京航空航天大学 容器间通信方法及装置

Also Published As

Publication number Publication date
CN111404753A (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN111404753B (zh) 一种扁平网络配置方法、计算机设备及存储介质
US10375015B2 (en) Methods and system for allocating an IP address for an instance in a network function virtualization (NFV) system
US9999030B2 (en) Resource provisioning method
CN108924268B (zh) 一种容器云服务系统及pod创建方法、装置
CN108780410B (zh) 计算系统中的容器的网络虚拟化
CN107924383B (zh) 用于网络功能虚拟化资源管理的系统和方法
JP7085565B2 (ja) 分離されたネットワークスタックにわたるインテリジェントなスレッド管理
WO2017148249A1 (zh) 配置资源的方法及其网络设备
JP2019528005A (ja) クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム
EP3905588A1 (en) Cloud platform deployment method and apparatus, server and storage medium
CN112416737B (zh) 一种容器的测试方法、装置、设备和存储介质
JP2010097402A (ja) 計算機システム及びその構成管理方法
US20030165144A1 (en) Systems and methods for implementing virtual router
US20100262819A1 (en) Method and apparatus for implementing multiple service processing functions
CN114070822B (zh) 一种Kubernetes Overlay IP地址管理方法
US11928493B2 (en) Sharing of FPGA board by multiple virtual machines
CN110769075B (zh) 容器的通信方法、系统、控制器和计算机可读存储介质
US20160057206A1 (en) Application profile to configure and manage a software defined environment
CN109857464B (zh) 用于平台部署与操作移动操作系统的系统及其方法
CN112035244A (zh) 在多租户环境中虚拟节点集群的部署
CN110636149B (zh) 远程访问方法、装置、路由器及存储介质
CN109889421B (zh) 路由器的管理方法、装置、终端、系统及存储介质
US10778574B2 (en) Smart network interface peripheral cards
CN116436968A (zh) 一种服务网格通信方法、系统、装置以及存储介质
US9417900B2 (en) Method and system for automatic assignment and preservation of network configuration for a virtual machine

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
CB02 Change of applicant information

Address after: 200233 11-12 / F, building B, 88 Hongcao Road, Xuhui District, Shanghai

Applicant after: Star link information technology (Shanghai) Co.,Ltd.

Address before: 200233 11-12 / F, building B, 88 Hongcao Road, Xuhui District, Shanghai

Applicant before: TRANSWARP TECHNOLOGY (SHANGHAI) Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant