CN116016028B - 基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备 - Google Patents
基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备 Download PDFInfo
- Publication number
- CN116016028B CN116016028B CN202211612457.9A CN202211612457A CN116016028B CN 116016028 B CN116016028 B CN 116016028B CN 202211612457 A CN202211612457 A CN 202211612457A CN 116016028 B CN116016028 B CN 116016028B
- Authority
- CN
- China
- Prior art keywords
- network
- ipvlan
- cluster system
- kubernetes cluster
- pod
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000007726 management method Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000010187 selection method Methods 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000322338 Loeseliastrum Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明公开一种基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备,其中,所述系统包括:节点管理模块,用于对Kubernetes集群系统中节点进行规划和配置;IPVlan网络管理模块,用于在Kubernetes集群系统中增加或删除IPVlan网络、IPVlan网络控制器和IPVlan网络对象;Pod管理模块,用于在Kubernetes集群系统中创建Pod并对与Pod相关的数据文件进行配置;节点管理模块、IPVlan网络管理模块和Pod管理模块分别与Kubernetes集群系统通信连接。本发明解决了现有技术中Kubernetes集群系统无法为Pod创建多个网络接口的技术问题。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备。
背景技术
在将传统应用向Kubernetes集群系统进行迁移时,传统应用将以Pod(容器组,即一组容器)形式部署在Kubernetes集群系统中。在Kubernetes集群系统中,正常情况下,Pod被创建以后只有一个网络接口,Kubernetes集群系统无法为Pod创建多个网络接口。
而部分传统应用,在部署时需要由宿主服务器提供多个网络接口。不同的网络接口,分别用来承载不同类型的网络流量,比如管理网流量、业务网流量等。
将传统应用向Kubernetes集群系统进行迁移时,应当尽量保证通过Pod启动的应用,与传统应用具有相同的网络运行环境,以此保证网络通信的可靠性,同时减少由应用改造带来的迁移成本较高的问题。
基于此,如何在Kubernetes集群系统中为Pod创建多个网络接口,是亟待解决的技术问题。
发明内容
为此,本发明所要解决的技术问题在于提供一种基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备,解决了现有技术中Kubernetes集群系统无法为Pod创建多个网络接口的技术问题。
为解决上述技术问题,本发明提供如下技术方案:
基于IPVlan为Pod创建多个网络接口的方法,包括如下步骤:
S1)对Kubernetes集群系统中的节点的网络进行规划与配置,并在Kubernetes集群系统中部署Multus CNI组件;
S2)在经步骤S1)处理后的Kubernetes集群系统中增加CRD资源,所述CRD资源用于对与IPVlan网络相关的参数进行定义;
S3)在经步骤S2)处理后的Kubernetes集群系统中增加用于监听Kubernetes集群系统Etcd数据库中IPVlan网络对象的变化并进行相应处理的IPVlan网络控制器;
S4)在经过步骤S3)处理后的Kubernetes集群系统中创建Pod时,若需为Pod创建K个业务网络接口,则相应地在Kubernetes集群系统中创建K个IPVlan网络对象,然后在编写用于创建Pod的yaml文件时,在metadata.annotations中增加一个键值对,所述键值对的键为“k8s.v1.cni.cncf.io/networks”,所述键值对的键值为“ipvlan-network-01@ens1,ipvlan-network-02@ens2,…,ipvlan-network-M@ensN”,其中,K为大于或等于1的自然数,M和N均为大于零的自然数,ipvlan-network-M表示第M个IPVLan网络对象的名称,ensN表示在Pod中将被创建的第N个业务网络接口的名称,ensN隶属于ipvlan-network-M所代表的IPVlan网络。
上述方法,在步骤S1)中,具体操作为:
S1-1)对Kubernetes集群系统中的节点上的物理网卡进行统一命名;
S1-2)在步骤S1-1)的基础上对物理网卡的用途进行规划,将一个物理网卡规划为管理网卡,将其余物理网卡规划为业务网卡,且将业务网卡与交换机相连接,并对交换机上与业务网卡相连接的网络接口进行如下配置:将接口链路模式设置为二层网桥模式,将链路类型设置为Trunk,且允许所有VLAN的流量通行;
S1-3)获取与Multus CNI组件进行协作的IPVlan CNI组件的二进制文件,将其拷贝至各节点的/opt/cni/bin目录。在基于IPVlan为Pod创建多个网络接口的过程中,MultusCNI组件与IPVlan CNI组件进行协作。
上述方法,在步骤S1-2)中,当将多个物理网卡规划为业务网卡时,这些物理网卡以个体或这些物理网卡中的部分或者全部以聚合的方式被规划为业务网卡,其中,当这些物理网卡中部分或者全部以聚合的方式被规划为业务网卡时,以聚合的方式被规划为业务网卡的物理网卡先聚合为一个逻辑网卡,然后再将这个逻辑网卡规划为业务网卡。
上述方法,在步骤S4)中,IPVlan网络对象通过kubectl命令创建、更新和删除,创建成功的IPVlan网络对象被存入Etcd数据库中,且在删除IPVlan网络对象时,IPVlan网络对象被从Etcd数据库中删除。
上述方法,在步骤S3)中,当监听到IPVlan网络对象被创建时,IPVlan网络控制器在Kubernetes集群系统中的每个节点上均执行如下操作:
(101)获取被创建的IPVlan网络对象中的VLAN ID;
(102)逐一遍历与相关节点相关联的业务网卡以检查是否已在某个业务网卡上创建了VLAN ID子接口,如果已在某个业务网卡上创建了VLAN ID子接口,则不再继续遍历未遍历的业务网卡,反之,则继续遍历未遍历的业务网卡;当与相关节点相关联的所有业务网卡上均没有创建VLAN ID子接口时,则从与该节点相关联的所有业务网卡中选择一个业务网卡并在该业务网卡上创建VLAN ID子接口,其中,各个节点上被选择的业务网卡的名称均相同;
(103)在Kubernetes集群系统的Etcd数据库中检查是否创建NetworkAttachmentDefinition的IPVlan网络对象,若未创建,则在Kubernetes集群系统Etcd数据库中创建NetworkAttachmentDefinition的IPVlan网络对象。
上述方法,在操作(102)中所用的选择方法包括但不限于随机选择。
上述方法,在步骤S3)中,当监听到IPVlan网络对象被删除时,IPVlan网络控制器在Kubernetes集群系统中的每个节点上均执行如下操作:
(201)获取被删除的IPVlan网络对象中的VLAN ID;
(202)在与相关节点相关联的业务网卡上查找VLAN ID子接口并将该VLAN ID子接口删除;
(203)检查Kubernetes集群系统的Etcd数据库中NetworkAttachmentDefinition的IPVlan网络对象是否已被删除,如果未被删除,则删除Kubernetes集群系统的Etcd数据库中的NetworkAttachmentDefinition的IPVlan网络对象。
利用上述基于IPVlan为Pod创建多个网络接口的方法为Pod创建多个网络接口的系统,包括:
节点管理模块,用于对Kubernetes集群系统中节点进行规划和配置;
IPVlan网络管理模块,用于在Kubernetes集群系统中增加或删除IPVlan网络、IPVlan网络控制器和IPVlan网络对象;
Pod管理模块,用于在Kubernetes集群系统中创建Pod并对与Pod相关的数据文件进行配置;
节点管理模块、IPVlan网络管理模块和Pod管理模块分别与Kubernetes集群系统通信连接。
计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。
计算机设备,包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,所述计算机程序被处理器执行时实现上述方法。
本发明的技术方案取得了如下有益的技术效果:
1.本发明解决了现有技术中Kubernetes集群系统中无法为Pod创建多个网络接口的技术问题,进而便于实现不同网络接口承载不同类型的网络流量,在保证网络通信的可靠性的基础上,减少由应用改造带来的迁移成本较高的问题。
2.将多个业务网卡聚合成一个逻辑网卡,有利于实现业务流量的负载平衡,并有利于实现业务接口的高可用性,即当一个业务网卡发生故障时,原本由该业务网卡承载的业务流量可以转移到其他的业务网卡上。
附图说明
图1为本发明中系统的工作原理图;
图2为基于IPVlan为Pod创建多个网络接口的流程图;
图3为可基于IPVlan为Pod创建多个网络接口的计算机设备原理图。
具体实施方式
下面结合示例,针对本发明进行进一步说明。
如图1所示,利用基于IPVlan为Pod创建多个网络接口的方法为Pod创建多个网络接口的系统,包括:
节点管理模块,用于对Kubernetes集群系统中节点进行规划和配置;其中,Kubernetes集群系统中的节点为服务器,形态不限制,可以是物理服务器,也可以是虚拟机;
IPVlan网络管理模块,用于在Kubernetes集群系统中增加或删除IPVlan网络、IPVlan网络控制器和IPVlan网络对象;
Pod管理模块,用于在Kubernetes集群系统中创建Pod并对与Pod相关的数据文件进行配置;
节点管理模块、IPVlan网络管理模块和Pod管理模块分别与Kubernetes集群系统通信连接。
如图2所示,利用所述系统在Kubernetes集群系统中为Pod创建多个网络接口,包括如下步骤:
S1)对Kubernetes集群系统中的节点的网络进行规划与配置,并在Kubernetes集群系统中部署Multus CNI组件,具体步骤为:
S1-1)对Kubernetes集群系统中的节点上的物理网卡进行统一命名;
S1-2)在步骤S1-1)的基础上对物理网卡的用途进行规划,将一个物理网卡规划为管理网卡,将其余物理网卡规划为业务网卡,且将业务网卡与交换机相连接,并对交换机上与业务网卡相连接的网络接口进行如下配置:将接口链路模式设置为二层网桥模式,将链路类型设置为Trunk,且允许所有VLAN的流量通行;当将多个物理网卡规划为业务网卡时,这些物理网卡以个体或这些物理网卡中的部分或者全部以聚合的方式被规划为业务网卡,其中,当这些物理网卡中部分或者全部以聚合的方式被规划为业务网卡时,以聚合的方式被规划为业务网卡的物理网卡先聚合为一个逻辑网卡,然后再将这个逻辑网卡规划为业务网卡;
S1-3)获取与Multus CNI组件进行协作的IPVlan CNI组件的二进制文件,将其拷贝至各节点的/opt/cni/bin目录;
S2)在经步骤S1)处理后的Kubernetes集群系统中增加CRD资源,所述CRD资源用于对与IPVlan网络相关的参数进行定义;其中,CRD资源为CustomResourceDefinition资源,网络相关参数包括VLAN ID、IP地址、掩码长度、网关等;
S3)在经步骤S2)处理后的Kubernetes集群系统中增加用于监听Kubernetes集群系统Etcd数据库中IPVlan网络对象的变化并进行相应处理的IPVlan网络控制器(IPVlanNetworkController);
S4)在经过步骤S3)处理后的Kubernetes集群系统中创建Pod时,若需为Pod创建K个业务网络接口,则相应地在Kubernetes集群系统中创建K个IPVlan网络对象,然后在编写用于创建Pod的yaml文件时,在metadata.annotations中增加一个键值对,所述键值对的键为“k8s.v1.cni.cncf.io/networks”,所述键值对的键值为“ipvlan-network-01@ens1,ipvlan-network-02@ens2,…,ipvlan-network-M@ensN”,其中,K为大于或等于1的自然数,M和N均为大于零的自然数,ipvlan-network-M表示第M个IPVLan网络对象的名称,ensN表示在Pod中将被创建的第N个业务网络接口的名称,ensN隶属于ipvlan-network-M所代表的IPVlan网络。
假如本实施例中的Kubernetes集群系统总共设有6个节点,其中3个节点为Master节点,依次编号为master01、master02、master03,另外3个节点为Worker节点,依次编号为worker01、worker02、worker03。
在所述Kubernetes集群系统中,Master节点的数量建议为奇数个,比如1、3、5、7等,Worker节点的数量不作限制,也可以没有Worker节点(即数量为0)。在本发明中,虽然以6个节点的Kubernetes集群系统进行举例说明,但是不代表本发明只适用于6个节点的Kubernetes集群系统,本发明所提出的技术方案适用于所有Kubernetes集群系统。
一般地,在不同的节点上,物理网卡的名称可能不同,比如网卡的生产厂商不同,网卡的命名规则有所不同。为了在Kubernetes集群系统中屏蔽物理网卡的差异,于是对各节点上的物理网卡按照相同规则进行统一命名。在本发明中,假设各节点上均有4块物理网卡,网卡名称统一命名为ens1、ens2、ens3、ens4。
在对物理网卡进行统一命名之后,将ens1规划为管理网卡,用来承载Pod管理网的网络流量。在Kubernetes集群系统中,Pod管理网的搭建,可由多种CNI组件来实现,包括但不限于Calico、Flannel等。在本发明中,将Pod中隶属于管理网的网络接口称之为管理口。本实施例中,在Kubernetes集群系统中部署Multus CNI组件,以便能够为在Kubernetes集群系统中为Pod创建多个网络接口提供支撑。
将ens2规划为业务网卡,用来承载Pod业务网的网络流量,即用来承载本发明为Pod创建的、除管理口以外的其他网络接口(下文称之为业务口)的网络流量。在实际应用中,可以根据需要选择将哪个或哪些物理网卡规划为业务网卡。在本发明中,可以将多块物理网卡分别用作业务网卡,也可以先将多块物理网卡聚合为一块逻辑网卡、然后将这块逻辑网卡用作业务网卡。各节点的业务网卡,均需与交换机相连,并且在交换机上与业务网卡相连的网络接口,需作如下配置:接口链路模式为二层网桥模式,链路类型为Trunk,并且允许所有VLAN的流量通行。
以上对物理网卡的规划方式,仅用于举例说明用途,本发明所涵盖的规划方式,包括但不限于以上举例。
在步骤S4)中,IPVlan网络对象通过kubectl命令创建、更新和删除,创建成功的IPVlan网络对象被存入Etcd数据库中,且在删除IPVlan网络对象时,IPVlan网络对象被从Etcd数据库中删除。以下示例描述了一个IPVlanNetwork对象,其中VLAN ID为3901,IP地址为10.89.1.0,掩码长度为24,网关为10.89.1.254,如下所示:
在步骤S3)中,IPVlan网络控制器由Master节点运行,它的工作流程与实现功能以ipvlan-network-01对象为例进行说明。
当监听到IPVlan网络对象被创建时,IPVlan网络控制器在Kubernetes集群系统中的每个节点上均执行如下操作:
(101)获取被创建的IPVlan网络对象中的VLAN ID,即3901;
(102)逐一遍历与相关节点相关联的业务网卡以检查是否已在某个业务网卡上创建了VLAN ID子接口,如果已在某个业务网卡上创建了VLAN ID子接口,则不再继续遍历未遍历的业务网卡,反之,则继续遍历未遍历的业务网卡;当与相关节点相关联的所有业务网卡上均没有创建VLAN ID子接口时,则从与该节点相关联的所有业务网卡中选择一个业务网卡并在该业务网卡上创建VLAN ID子接口,例如选择业务网卡ens2并在业务网卡ens2上创建VLAN ID子接口,其中,各个节点上被选择的业务网卡的名称均相同,所用的选择方法包括但不限于随机选择;保持各个节点上被选择的业务网卡的名称均相同,可以保证Pod在Kubernetes集群系统中不同节点上发生漂移时业务网络的正常通信;
(103)在Kubernetes集群系统的Etcd数据库中检查是否创建NetworkAttachmentDefinition的IPVlan网络对象,若未创建,则在Kubernetes集群系统Etcd数据库中创建NetworkAttachmentDefinition的IPVlan网络对象,例如,在Kubernetes集群系统的Etcd数据库中创建NetworkAttachmentDefinition对象ipvlan-network-01,ipvlan-network-01的配置如下:
当监听到IPVlan网络对象被删除时,IPVlan网络控制器在Kubernetes集群系统中的每个节点上均执行如下操作:
(201)获取被删除的IPVlan网络对象中的VLAN ID;当以ipvlan-network-01为示例时,ID即为3901;
(202)在与相关节点相关联的业务网卡上查找VLAN ID子接口并将该VLAN ID子接口删除,以在业务网卡ens2上创建的与ipvlan-network-01有关的子接口ens2.3901为例,在节点上查找并删除子接口ens2.3901;
(203)检查Kubernetes集群系统的Etcd数据库中NetworkAttachmentDefinition的IPVlan网络对象是否已被删除,如果未被删除,则删除Kubernetes集群系统的Etcd数据库中的NetworkAttachmentDefinition的IPVlan网络对象。
在步骤S4)中,在Kubernetes集群系统中创建Pod时,当需要为Pod创建两个网络接口时,则在编写用于创建Pod的yaml文件时,在metadata.annotations中进行配置,增加一个键值对,其中,键为“k8s.v1.cni.cncf.io/networks”,键值为“ipvlan-network-01@ens1”,其中ipvlan-network-01表示IPVlan网络对象的名称,ens1表示在Pod中将被创建的业务网络接口的名称(即Pod业务口的名称),ens1隶属于ipvlan-network-01所代表的IPVlan网络。通过上述方式创建的Pod,一共有两个网络接口:一个是管理口,隶属于Pod管理网;一个是业务口,接口名称为ens1,隶属于Pod业务网,是本发明基于IPVlan所创建的网络接口。
同理,若需为Pod创建多个网络接口且创建三个业务口,则在编写用于创建Pod的yaml文件时,需要在metadata.annotations中进行配置,增加一个键值对,其中键为“k8s.v1.cni.cncf.io/networks”,值的形式为“ipvlan-network-01@ens1,ipvlan-network-02@ens2,ipvlan-network-03@ens3”,其中,ipvlan-network-01、ipvlan-network-02以及ipvlan-network-03均表示IPVlan网络对象的名称,ens1、ens2、ens3均表示Pod业务口的名称,并且ens1、ens2、ens3分别隶属于ipvlan-network-01、ipvlan-network-02、ipvlan-network-03所代表的IPVlan网络。
IPVlan网络对象ipvlan-network-02、ipvlan-network-03的内容如下所示:
1)ipvlan-network-02的内容为:
2)ipvlan-network-03的内容为:
通过上述方式创建的Pod,一共有四个网络接口:一个是管理口,隶属于Pod管理网;三个是业务口,接口名称分别为ens1、ens2、ens3,隶属于Pod业务网,是本发明基于IPVlan所创建的网络接口。
基于上述基于IPVlan为Pod创建多个网络接口的方法,相应的,本实例中还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序被处理器执行时实现如下步骤:先对Kubernetes集群系统中的节点的网店进行规划与配置并在Kubernetes集群系统中部署Multus CNI组件,包括对Kubernetes集群系统中的节点上的物理网卡进行统一命名与用途规划,然后在Kubernetes集群系统中增加CRD资源,接着在Kubernetes集群系统中增加用于监听Kubernetes集群系统Etcd数据库中IPVlan网络对象的变化并进行相应处理的IPVlan网络控制器,再在Kubernetes集群系统中创建Pod时,根据所需要创建业务网络接口的数量,相应地增加相同数量的IPVlan网络对象,再在编写用于创建Pod的yaml文件时,在metadata.annotations中增加一个键值对,通过对该键值对的键值的设置来实现对Pod所需网络接口创建数量的控制。
如图3所示,基于上述基于IPVlan为Pod创建多个网络接口的方法以及计算机可读存储介质,本实施例中,还提供了一种计算机设备,其包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,其中可读存储介质与处理器均设置在总线上,处理器执行计算机程序时实现如下步骤:先对Kubernetes集群系统中的节点的网店进行规划与配置并在Kubernetes集群系统中部署Multus CNI组件,包括对Kubernetes集群系统中的节点上的物理网卡进行统一命名与用途规划,然后在Kubernetes集群系统中增加CRD资源,接着在Kubernetes集群系统中增加用于监听Kubernetes集群系统Etcd数据库中IPVlan网络对象的变化并进行相应处理的IPVlan网络控制器,再在Kubernetes集群系统中创建Pod时,根据所需要创建业务网络接口的数量,相应地增加相同数量的IPVlan网络对象,再在编写用于创建Pod的yaml文件时,在metadata.annotations中增加一个键值对,通过对该键值对的键值的设置来实现对Pod所需网络接口创建数量的控制。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本专利申请权利要求的保护范围之中。
Claims (9)
1.基于IPVlan为Pod创建多个网络接口的方法,其特征在于,包括如下步骤:
S1)对Kubernetes集群系统中的节点的网络进行规划与配置,并在Kubernetes集群系统中部署Multus CNI组件;具体操作为:
S1-1)对Kubernetes集群系统中的节点上的物理网卡进行统一命名;
S1-2)在步骤S1-1)的基础上对物理网卡的用途进行规划,将一个物理网卡规划为管理网卡,将其余物理网卡规划为业务网卡,且将业务网卡与交换机相连接,并对交换机上与业务网卡相连接的网络接口进行如下配置:将接口链路模式设置为二层网桥模式,将链路类型设置为Trunk,且允许所有VLAN的流量通行;
S1-3)获取与Multus CNI组件进行协作的IPVlan CNI组件的二进制文件,将其拷贝至各节点的/opt/cni/bin目录;
S2)在经步骤S1)处理后的Kubernetes集群系统中增加CRD资源,所述CRD用于对与IPVlan网络相关的参数进行定义;
S3)在经步骤S2)处理后的Kubernetes集群系统中增加用于监听Kubernetes集群系统Etcd数据库中IPVlan网络对象的变化并进行相应处理的IPVlan网络控制器;
S4)在经过步骤S3)处理后的Kubernetes集群系统中创建Pod时,若需为Pod创建K个业务网络接口,则相应地在Kubernetes集群系统中创建K个IPVlan网络对象,然后在编写用于创建Pod的yaml文件时,在metadata.annotations中增加一个键值对,所述键值对的键为“k8s.v1.cni.cncf.io/networks”,所述键值对的键值为“ipvlan-network-01@ens1,ipvlan-network-02@ens2,…,ipvlan-network-M@ensN”,其中,K为大于或等于1的自然数,M和N均为大于零的自然数,ipvlan-network-M表示第M个IPVLan网络对象的名称,ensN表示在Pod中将被创建的第N个业务网络接口的名称,ensN隶属于ipvlan-network-M所代表的IPVlan网络。
2.根据权利要求1所述的方法,其特征在于,在步骤S1-2)中,当将多个物理网卡规划为业务网卡时,这些物理网卡以个体或这些物理网卡中的部分或者全部以聚合的方式被规划为业务网卡,其中,当这些物理网卡中部分或者全部以聚合的方式被规划为业务网卡时,以聚合的方式被规划为业务网卡的物理网卡先聚合为一个逻辑网卡,然后再将这个逻辑网卡规划为业务网卡。
3.根据权利要求1所述的方法,其特征在于,在步骤S4)中,IPVlan网络对象通过kubectl命令创建、更新和删除,创建成功的IPVlan网络对象被存入Etcd数据库中,且在删除IPVlan网络对象时,IPVlan网络对象被从Etcd数据库中删除。
4.根据权利要求3所述的方法,其特征在于,在步骤S3)中,当监听到IPVlan网络对象被创建时,IPVlan网络控制器在Kubernetes集群系统中的每个节点上均执行如下操作:
(101)获取被创建的IPVlan网络对象中的VLAN ID;
(102)逐一遍历与相关节点相关联的业务网卡以检查是否已在某个业务网卡上创建了VLAN ID子接口,如果已在某个业务网卡上创建了VLAN ID子接口,则不再继续遍历未遍历的业务网卡,反之,则继续遍历未遍历的业务网卡;当与相关节点相关联的所有业务网卡上均没有创建VLAN ID子接口时,则从与该节点相关联的所有业务网卡中选择一个业务网卡并在该业务网卡上创建VLAN ID子接口,其中,各个节点上被选择的业务网卡的名称均相同;
(103)在Kubernetes集群系统的Etcd数据库中检查是否创建NetworkAttachmentDefinition的IPVlan网络对象,若未创建,则在Kubernetes集群系统Etcd数据库中创建NetworkAttachmentDefinition的IPVlan网络对象。
5.根据权利要求4所述的方法,其特征在于,在操作(102)中所用的选择方法包括但不限于随机选择。
6.根据权利要求4所述的方法,其特征在于,在步骤S3)中,当监听到IPVlan网络对象被删除时,IPVlan网络控制器在Kubernetes集群系统中的每个节点上均执行如下操作:
(201)获取被删除的IPVlan网络对象中的VLAN ID;
(202)在与相关节点相关联的业务网卡上查找VLAN ID子接口并将该VLAN ID子接口删除;
(203)检查Kubernetes集群系统的Etcd数据库中NetworkAttachmentDefinition的IPVlan网络对象是否已被删除,如果未被删除,则删除Kubernetes集群系统的Etcd数据库中的NetworkAttachmentDefinition的IPVlan网络对象。
7.利用权利要求1~6任一所述的基于IPVlan为Pod创建多个网络接口的方法为Pod创建多个网络接口的系统,其特征在于,包括:
节点管理模块,用于对Kubernetes集群系统中节点进行规划和配置;
IPVlan网络管理模块,用于在Kubernetes集群系统中增加或删除IPVlan网络、IPVlan网络控制器和IPVlan网络对象;
Pod管理模块,用于在Kubernetes集群系统中创建Pod并对与Pod相关的数据文件进行配置;
节点管理模块、IPVlan网络管理模块和Pod管理模块分别与Kubernetes集群系统通信连接。
8.计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~6中任一所述的方法。
9.计算机设备,包括可读存储介质、处理器以及存储在可读存储介质上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211612457.9A CN116016028B (zh) | 2022-12-09 | 2022-12-09 | 基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211612457.9A CN116016028B (zh) | 2022-12-09 | 2022-12-09 | 基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116016028A CN116016028A (zh) | 2023-04-25 |
CN116016028B true CN116016028B (zh) | 2024-03-15 |
Family
ID=86031171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211612457.9A Active CN116016028B (zh) | 2022-12-09 | 2022-12-09 | 基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016028B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117081959B (zh) * | 2023-10-17 | 2023-12-22 | 明阳产业技术研究院(沈阳)有限公司 | 一种网络连通性监测与恢复方法、系统、介质及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371696A (zh) * | 2020-03-24 | 2020-07-03 | 广西梯度科技有限公司 | 一种在Kubernetes中实现Pod网络流控的方法 |
CN113220422A (zh) * | 2021-06-03 | 2021-08-06 | 上海天旦网络科技发展有限公司 | 基于K8s中CNI插件的运行时修改Pod网络接口的方法及系统 |
CN114237812A (zh) * | 2021-11-10 | 2022-03-25 | 上海浦东发展银行股份有限公司 | 容器网络管理系统 |
CN114650223A (zh) * | 2022-04-01 | 2022-06-21 | 明阳产业技术研究院(沈阳)有限公司 | 一种Kubernetes集群的网络配置方法、装置及电子设备 |
CN115202820A (zh) * | 2022-07-19 | 2022-10-18 | 中国电信股份有限公司 | Pod单元的创建方法、装置、设备及存储介质 |
US11481243B1 (en) * | 2021-08-25 | 2022-10-25 | International Business Machines Corporation | Service access across Kubernetes clusters |
CN115277701A (zh) * | 2022-07-25 | 2022-11-01 | 明阳产业技术研究院(沈阳)有限公司 | 一种集群系统的网络管理方法、装置、介质、电子设备 |
CN115391006A (zh) * | 2022-08-15 | 2022-11-25 | 鹏城实验室 | 一种异构多集群的数据处理方法、装置、介质及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11777790B2 (en) * | 2020-04-16 | 2023-10-03 | Ribbon Communications Operating Company, Inc. | Communications methods and apparatus for migrating a network interface and/or IP address from one Pod to another Pod in a Kubernetes system |
-
2022
- 2022-12-09 CN CN202211612457.9A patent/CN116016028B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371696A (zh) * | 2020-03-24 | 2020-07-03 | 广西梯度科技有限公司 | 一种在Kubernetes中实现Pod网络流控的方法 |
CN113220422A (zh) * | 2021-06-03 | 2021-08-06 | 上海天旦网络科技发展有限公司 | 基于K8s中CNI插件的运行时修改Pod网络接口的方法及系统 |
US11481243B1 (en) * | 2021-08-25 | 2022-10-25 | International Business Machines Corporation | Service access across Kubernetes clusters |
CN114237812A (zh) * | 2021-11-10 | 2022-03-25 | 上海浦东发展银行股份有限公司 | 容器网络管理系统 |
CN114650223A (zh) * | 2022-04-01 | 2022-06-21 | 明阳产业技术研究院(沈阳)有限公司 | 一种Kubernetes集群的网络配置方法、装置及电子设备 |
CN115202820A (zh) * | 2022-07-19 | 2022-10-18 | 中国电信股份有限公司 | Pod单元的创建方法、装置、设备及存储介质 |
CN115277701A (zh) * | 2022-07-25 | 2022-11-01 | 明阳产业技术研究院(沈阳)有限公司 | 一种集群系统的网络管理方法、装置、介质、电子设备 |
CN115391006A (zh) * | 2022-08-15 | 2022-11-25 | 鹏城实验室 | 一种异构多集群的数据处理方法、装置、介质及终端 |
Non-Patent Citations (2)
Title |
---|
"云原生5GC关键技术研究";王卫斌等;《信息通信技术》;20210815;全文 * |
"基于动态服务拓扑的自适应Kubernetes网络性能监控系统";侯传杰;《中国优秀硕士学位论文全文数据库-信息科技辑》;20221115(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116016028A (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mayer et al. | Fogstore: Toward a distributed data store for fog computing | |
EP3200393B1 (en) | Method and device for virtual network function management | |
CN106059791B (zh) | 一种存储系统中业务的链路切换方法和存储设备 | |
CN111400112B (zh) | 分布式集群的存储系统的写入方法、装置及可读存储介质 | |
CN103248667B (zh) | 一种分布式系统的资源访问方法和系统 | |
CN112866333A (zh) | 基于云原生的微服务场景优化方法、系统、设备和介质 | |
CN107209686A (zh) | 网络功能虚拟化管理和编排方法、设备和程序 | |
CN112714018B (zh) | 基于网关的ElasticSearch搜索服务方法、系统、介质及终端 | |
CN104468150A (zh) | 一种虚拟主机实现故障迁移的方法及虚拟主机业务装置 | |
CN116016028B (zh) | 基于IPVlan为Pod创建多个网络接口的方法、系统、介质及设备 | |
CN109873714B (zh) | 云计算节点配置更新方法及终端设备 | |
US20120159021A1 (en) | Storage topology manager | |
CN105635310A (zh) | 一种存储资源的访问方法及装置 | |
CN111246397A (zh) | 集群系统、服务访问方法、装置及服务器 | |
CN108829422A (zh) | 一种动态部署方法及装置 | |
CN113220235B (zh) | 读写请求的处理方法、装置、设备及存储介质 | |
US11956313B2 (en) | Dynamic storage sharing across network devices | |
CN108733477B (zh) | 数据集群化处理的方法、装置及设备 | |
CN103019847A (zh) | 对虚拟机数据进行迁移的方法及系统 | |
CN110795209B (zh) | 一种控制方法和装置 | |
CN108089968A (zh) | 一种宿主机监控虚拟机数据库状态的方法 | |
US10904327B2 (en) | Method, electronic device and computer program product for searching for node | |
CN110008006B (zh) | 基于容器的大数据工具部署方法及系统 | |
CN109981697B (zh) | 一种文件转存方法、系统、服务器及存储介质 | |
CN115277701A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |