CN115314376A - 集群中网络插件部署方法和装置、电子设备和存储介质 - Google Patents

集群中网络插件部署方法和装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115314376A
CN115314376A CN202210920019.2A CN202210920019A CN115314376A CN 115314376 A CN115314376 A CN 115314376A CN 202210920019 A CN202210920019 A CN 202210920019A CN 115314376 A CN115314376 A CN 115314376A
Authority
CN
China
Prior art keywords
network
cluster
plug
target
middleware
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
CN202210920019.2A
Other languages
English (en)
Other versions
CN115314376B (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202210920019.2A priority Critical patent/CN115314376B/zh
Publication of CN115314376A publication Critical patent/CN115314376A/zh
Application granted granted Critical
Publication of CN115314376B publication Critical patent/CN115314376B/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/0803Configuration setting
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种集群中网络插件部署方法和装置、电子设备和存储介质,其中,方法包括:按照集群支持的目标网络,在集群中部署集群网络中间件,其中,集群网络中间件用于为集群提供网络服务;根据目标网络,确定通过集群网络中间件代理的至少两个代理网络插件,其中,代理网络插件用于为集群网络中间件提供网络服务;部署至少两个代理网络插件。本申请通过设置集群网络中间件,并使集群网络中间件代理至少两个代理网络插件,可以使后期用户可以部署至少两个代理网络插件,进而解决了相关技术中在集群中只能够部署一种网络插件,对集群的容器网络的性能造成了极大的限制的技术问题。

Description

集群中网络插件部署方法和装置、电子设备和存储介质
技术领域
本申请涉及云计算技术领域,尤其涉及一种集群中网络插件部署方法和装置、电子设备和存储介质。
背景技术
目前,随着云计算的发展,越来越多的用户采用云计算进行应用服务的部署。
在相关技术中,云计算集群只能使用单一的网络插件,但是单一的网络插件已经不满足一些实际的应用场景,比如pod支持独占弹性网卡和绑定弹性IP的需求在单一的flannel/calico容器网络(即,通过部署flannel网络插件/calico网络插件得到的容器网络)下是不支持的,而如果通过部署vpc-cni网络插件得到支持上述两种特性的容器网络,则集群单个节点可调度的pod非常有限,不支持大规模的pod部署。因此,在集群中只能够部署一种网络插件,对集群的容器网络的性能造成了极大的限制。
因此,相关技术中存在无法在集群中部署两种及以上的网络插件的问题。
发明内容
本申请提供了一种集群中网络插件部署方法和装置、电子设备和存储介质,以至少解决相关技术中存在无法在集群中部署两种及以上的网络插件的问题。
根据本申请实施例的一个方面,提供了一种集群中网络插件部署方法,包括:
按照集群支持的目标网络,在所述集群中部署集群网络中间件,其中,所述集群网络中间件用于为所述集群提供网络服务;
根据所述目标网络,确定通过所述集群网络中间件代理的至少两个代理网络插件,其中,所述代理网络插件用于为所述集群网络中间件提供网络服务;
部署所述至少两个代理网络插件。
可选地,如前述的方法,所述按照集群支持的目标网络,在所述集群中部署集群网络中间件,包括:
确定用于实现所述目标网络的目标网络插件;
在所述集群中的至少一个节点中部署所述集群网络中间件;
在所述集群网络中间件中添加与所述目标网络插件对应的配置文件,其中,所述配置文件用于在所述集群网络中间件运行后启动所述目标网络插件。
可选地,如前述的方法,所述集群网络中间件采用multus-cni插件;所述在所述集群中的至少一个节点中部署所述集群网络中间件,包括:
通过预设工具将所述multus-cni插件下载至所述集群;
部署所述multus-cni插件;
在所述目标网络对应的目标网络插件为第一flannel网络插件的情况下,所述在所述集群网络中间件中添加与所述目标网络插件对应的配置文件,包括:在所述multus-cni插件中添加第一配置文件,其中,所述第一配置文件用于在所述集群网络中间件运行后启动第一flannel网络插件;
在所述目标网络对应的目标网络插件为第一calico网络插件的情况下,所述在所述集群网络中间件中添加与所述目标网络插件对应的配置文件,包括:在所述multus-cni插件中添加第二配置文件,其中,所述第二配置文件用于在所述集群网络中间件运行后启动第一calico网络插件。
可选地,如前述的方法,所述根据所述目标网络,确定通过所述集群网络中间件代理的至少两个代理网络插件,包括:
在所述目标网络对应的目标网络插件为第一flannel网络插件或第一calico网络插件的情况下,确定的所述至少两个代理网络插件包括:与所述目标网络插件类型一致的插件,以及vpc-cni网络插件。
可选地,如前述的方法,在所述部署所述至少两个代理网络插件之后,所述方法还包括:
在确定用户在所述集群中新建的目标容器的情况下,接受用户在所有候选网络中选择的至少一个指定网络,其中,所述指定网络为所述目标容器提供代理网络服务;
在所有所述代理网络插件中启动所述指定网络对应的指定网络插件。
可选地,如前述的方法,所述部署所述至少两个代理网络插件,包括:
确定各个所述代理网络插件的运行顺序;
按照所述运行顺序部署所有所述代理网络插件。
可选地,如前述的方法,所述按照所述运行顺序部署所有所述代理网络插件,包括:
确定目标目录,其中,所述目标目录存储有用于指示所述代理网络插件运行的目标文件,且所述代理网络插件与所述目标文件一一对应;
在确定所述目标目录中存在第一目标文件或第二目标文件的情况下,部署vpc-cni网络插件,其中,所述第一目标文件为第二flannel网络插件对应的所述目标文件,所述第二目标文件为第二calico网络插件对应的目标文件。
根据本申请实施例的另一个方面,还提供了一种集群中网络插件部署装置,包括:
第一部署模块,用于按照集群支持的目标网络,在所述集群中部署集群网络中间件,其中,所述集群网络中间件用于为所述集群提供网络服务;
确定模块,用于根据所述目标网络,确定通过所述集群网络中间件代理的至少两个代理网络插件,其中,所述代理网络插件用于为所述集群网络中间件提供网络服务;
第二部署模块,用于部署所述至少两个代理网络插件。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中的一种集群中网络插件部署方法和装置、电子设备和存储介质,其中,方法包括:按照集群支持的目标网络,在所述集群中部署集群网络中间件,其中,所述集群网络中间件用于为所述集群提供网络服务;根据所述目标网络,确定通过所述集群网络中间件代理的至少两个代理网络插件,其中,所述代理网络插件用于为所述集群网络中间件提供网络服务;部署所述至少两个代理网络插件。本申请通过设置集群网络中间件,并使集群网络中间件代理至少两个代理网络插件,可以使后期用户可以部署至少两个代理网络插件,以至少可以通过两个网络对集群网络中间件进行访问,进而解决了相关技术中在集群中只能够部署一种网络插件,对集群的容器网络的性能造成了极大的限制的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请一个实施例的一种可选的集群中网络插件部署方法的流程示意图;
图2是根据本申请另一个实施例的一种可选的集群中网络插件部署方法的流程示意图;
图3是根据本申请一个应用例中的集群中网络插件部署方法的示意图;
图4是根据本申请实施例的一种可选的集群中网络插件部署装置的结构框图;
图5是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种集群中网络插件部署方法。可选地,在本实施例中,上述集群中网络插件部署方法可以应用于由终端和服务器所构成的硬件环境中。服务器通过网络与终端进行连接,可用于为终端或终端上安装的客户端提供服务(如云计算服务、云存储服务等),可在服务器上或独立于服务器设置数据库,用于为服务器提供数据存储服务。
上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端可以并不限定于为PC、手机、平板电脑等。
本申请实施例的集群中网络插件部署方法可以由服务器来执行,也可以由终端来执行,还可以是由服务器和终端共同执行。其中,终端执行本申请实施例的集群中网络插件部署方法也可以是由安装在其上的客户端来执行。
以由服务器来执行本实施例中的集群中网络插件部署方法为例,图1为本申请实施例提供的一种集群中网络插件部署方法,包括如下所述步骤:
步骤S101,按照集群支持的目标网络,在集群中部署集群网络中间件,其中,集群网络中间件用于为集群提供网络服务。
本实施例中的集群中网络插件部署方法可以应用于需要在集群中部署多个不同的网络插件的场景,例如:在云计算集群中部署至少两个网络插件的场景、在云计算集群中部署三个网络插件的场景等,也可以是在云计算集群中部署更多的网络插件的场景。本申请实施例中以在云计算集群中部署至少两个网络插件的为例说明上述的集群中网络插件部署方法,对于其他类型的场景,在不矛盾的情况下,上述的集群中网络插件部署方法同样适用。
以在云计算集群中部署至少两个网络插件的场景为例,通过集群网络中间件代理网络插件,实现在集群中部署多个不同网络插件的目的。
为了使用户感知可以在集群中部署多个不同的网络插件,可以通过在集群中部署集群网络中间件,进而通过该集群网络中间件作为该集群的默认网络插件,进而实现通过部署该集群网络中间件在集群中实现集群本身支持的目标网络。集群网络中间件可以是作为其他网络插件与Kubernetes(一种高可用集群)的中间件。
作为一种可选的实施例,如前述的方法,所述步骤S101按照集群支持的目标网络,在集群中部署集群网络中间件,包括如下所述步骤:
步骤S201,确定用于实现目标网络的目标网络插件。
在集群中,不同的网络与网络插件之间存在一一对应关系,因此,基于集群支持的目标网络,可以在确定出与目标网络对应的目标网络插件。
例如,当目标网络是flannel容器网络时,则对应的目标网络插件为flannel网络插件;当目标网络是calico容器网络时,则对应的目标网络插件为calico网络插件。
步骤S202,在集群中的至少一个节点中部署集群网络中间件。
一般情况下,集群中会包括多个节点,在所有节点中,可以任意选择一个节点部署该集群网络中间件,以使用户可以通过包括但不限于集群对应的目标网络插件对该用户在该集群中的VPC(全称是Virtual Private Cloud,虚拟私有云)进行网络部署。
步骤S203,在集群网络中间件中添加与目标网络插件对应的配置文件,其中,配置文件用于在集群网络中间件运行后启动目标网络插件。
为了使集群仍然可以正常使用网络服务,因此,集群网络中间件中需要添加与目标网络插件对应的配置文件,以使集群网络中间件运行后,能够启动目标网络插件,进而使集群的各个节点仍然通过目标网络进行通信。
通过本实施例中的方法,可以在集群网络在部署集群网络中间件之后,仍然可以部署目标网络插件,以实现原集群支持的目标网络。
步骤S102,根据目标网络,确定通过集群网络中间件代理的至少两个代理网络插件,其中,代理网络插件用于为集群网络中间件提供网络服务。
在确定出目标网络之后,为了使在集群中部署有VPC的用户可以选择不同模式的网络插件,因此,集群网络中间件需要代理至少两个代理网络插件。
可选地,代理网络插件可以包括但不限于以下至少两个:flannel网络插件、calico网络插件、Terway网络插件、vpc-cni网络插件。
步骤S103,部署至少两个代理网络插件。
在确定出所有代理网络插件之后,即可对上述的至少两个代理网络插件进行部署,以使用户可以通过代理网络插件对应的网络模式对集群网络中间件进行访问。
例如,当用户在集群的VPC中部署pod时,即可通过代理网络插件所支持的网络对集群网络中间件进行访问,因此,对于用户来说,即可达到多种网络插件共存的目的。
通过本实施例中的方法,通过设置集群网络中间件,并使集群网络中间件代理至少两个代理网络插件,可以使后期用户可以部署至少两个代理网络插件,以至少可以通过两个网络对集群网络中间件进行访问,克服了相关技术中在集群中只能够部署一种网络插件,对集群的容器网络的性能造成了极大的限制的技术问题。
作为一种可选的实施例,如前述的方法,集群网络中间件采用multus-cni插件;所述步骤S202在集群中的至少一个节点中部署集群网络中间件,包括如下所述步骤:
步骤S301,通过预设工具将multus-cni插件下载至集群;
步骤S302,部署multus-cni插件;
可选地,可以通过使用git工具将开源网络插件multus-cni插件下载到集群;并通过cubectl部署该multus-cni插件。
在目标网络对应的目标网络插件为第一flannel网络插件的情况下,步骤S203在集群网络中间件中添加与目标网络插件对应的配置文件,包括:在multus-cni插件中添加第一配置文件,其中,第一配置文件用于在集群网络中间件运行后启动第一flannel网络插件;
在目标网络对应的目标网络插件为第一flannel网络插件的情况下,可以通过添加启动参数“--multus-master-cni-file”对应值为flannel的配置文件:10-flannel.conflist。并将该10-flannel.conflist配置文件作为第一配置文件。以在集群网络中间件运行后启动第一flannel网络插件。
在目标网络对应的目标网络插件为第一calico网络插件的情况下,步骤S203在集群网络中间件中添加与目标网络插件对应的配置文件,包括:在multus-cni插件中添加第二配置文件,其中,第二配置文件用于在集群网络中间件运行后启动第一calico网络插件;
在目标网络对应的目标网络插件为第一calico网络插件的情况下,可以通过添加启动参数“--multus-master-cni-file”对应值为calico的配置文件:10-calico.conflist。并将该10-calico.conflist配置文件作为第一配置文件。以在集群网络中间件运行后启动第一calico网络插件。
通过本实施例中的方法,可以基于目标网络对应的目标网络插件,在部署multus-cni插件作为集群网络中间件之后,仍然可以启动目标网络插件,以使集群的网络环境仍然为目标网络。
作为一种可选的实施例,如前述的方法,所述步骤S102根据目标网络,确定通过集群网络中间件代理的至少两个代理网络插件,包括如下所述步骤:
步骤S401,在目标网络对应的目标网络插件为第一flannel网络插件或第一calico网络插件的情况下,确定的至少两个代理网络插件包括:与目标网络插件类型一致的插件,以及vpc-cni网络插件。
在目标网络对应的目标网络插件为第一flannel网络插件或第一calico网络插件的情况下,通过确定启动一个网络插件为与目标网络插件类型一致的插件,即,其中一个网络插件为第一flannel网络插件或第一calico网络插件,可以达到在集群中单个节点可调度大量的pod,支持大规模的pod部署;并且使代理网络插件包括vpc-cni网络插件,可以使部署的pod可以支持独占弹性网卡和绑定弹性IP的需求,进而可以使容器网络与宿主机(即,pod与该pod所在的节点)不在一个网段上,可以出外网。
通过本实施例中的方法,通过设置代理网络插件包括与目标网络插件类型一致的插件(第一flannel网络插件或第一calico网络插件),以及vpc-cni网络插件,可以使集群中部署的pod即可以满足大规模的pod部署的需求,也可以使部署的pod可以支持独占弹性网卡和绑定弹性IP。
如图2所示,作为一种可选的实施例,如前述的方法,在所述步骤部署至少两个代理网络插件之后,方法还包括如下所述步骤:
步骤S501,在确定用户在集群中新建的目标容器的情况下,接受用户在所有候选网络中选择的至少一个指定网络,其中,指定网络为目标容器提供代理网络服务。
步骤S502,在所有代理网络插件中启动指定网络对应的指定网络插件。
当确定用户在所述集群中新建的目标容器时,即需要对该目标容器所使用的网络进行配置,此时,用户可以在所有候选网络中选择至少一个指定网络,其中,每个代理网络插件可以对应有一个候选网络。
可选的,可以对所有候选网络的进行展示,例如,展示候选网络对应的描述信息。用户可以基于描述信息在所有候选网络选择出供目标容器使用的指定网络。
在确定出指定网络之后,即可在所有代理网络中启动该指定网络对应的指定网络插件,进而部署得到该目标容器的容器网络。
例如:
用户通过YAML(一种可读性高,用来表达数据序列化的格式)中annotation字段来声明选择使用哪个网络作为pod的容器网络。
新建的目标容器默认使用的容器网络插件为flannel/calico,通过在YAML配置文件中声明annotations:“k8s.v1.cni.cncf.io/networks:vpc-cn”选择使用两种网络插件共存的模式(Flannel网络插件+vpc-cni网络插件或者calico网络插件+vpc-cni网络插件);声明annotations:v1.multus-cni.io/default-network:vpc-cni使用vpc-cni模式,即容器网络通过弹性网卡与VPC网络联通。
通过本实施例中的方法,用户可以在所有候选网络中选择出所需部署的指定网络,进而在代理网络插件包括多个的情况下,可以同时部署有分别与每个网络插件对应的容器网络。作为一种可选的实施例,如前述的方法,所述步骤S103,部署至少两个代理网络插件,包括如下所述步骤:
步骤S601,确定各个代理网络插件的运行顺序;
步骤S602,按照运行顺序部署所有代理网络插件。
在确定各个代理网络插件之后,则需要对各个代理网络插件进行部署。由于在集群新增节点时,存量daemonset会再新增节点创建pod,如果vpc-cni网络插件先行启动,则multus-cni网络插件会将vpc-cni作为代理的默认master网络,这样会导致与预期不符,即没有声明annotation的pod也使用了vpc-cni。因此,不同的网络插件的部署顺序各不相同,因此,需要确定各个代理网络插件的运行顺序。
在确定运行顺序之后,即可按照该运行顺序,依次对各个代理网络插件进行部署。
作为一种可选的实施例,如前述的方法,所述步骤S602按照运行顺序部署所有代理网络插件,包括如下所述步骤:
步骤S701,确定目标目录,其中,目标目录存储有用于指示代理网络插件运行的目标文件,且代理网络插件与目标文件一一对应。
在代理网络插件完成部署之后,会在目标目录中生成与代理网络插件对应的文件。因此,当目标目录中存储有用于指示代理网络插件对应的目标文件的情况下,则指示该目标文件对应的代理网络插件已完成部署。
步骤S702,在确定目标目录中存在第一目标文件或第二目标文件的情况下,部署vpc-cni网络插件,其中,第一目标文件为第二flannel网络插件对应的目标文件,第二目标文件为第二calico网络插件对应的目标文件。
当确定目标目录中已创建第二flannel网络插件对应的目标文件或第二calico网络插件对应的目标文件的情况下,即,第二flannel网络插件或第二calico网络插件已完成部署之后,即可对vpc-cni网络插件进行部署。
可选地,可以在vpc-cniDaemonSet工作负载中添加initContainer,增加脚本文件,通过该脚本文件以保证flannel网络插件/calico网络插件先行创建,循环刷新目标目录/etc/cni/net.d下是否创建了10-flannel.conflist(即,第一目标文件)或者10-calico.conflist文件(即,第二目标文件);在确定创建了10-flannel.conflist或者10-calico.conflist文件之后,再部署vpc-cni网络插件。进一步的,在部署vpc-cni网络插件之后,可以通过确认目标目录/etc/cni/net.d下是否创建了vpc-cni网络插件对应的文件,以判断vpc-cni网络插件是否完成部署。
通过本实施例中的方法,可以保证不同的代理网络插件可以按照预设的运行顺序进行部署,以保证各个代理网络插件都能够顺利完成部署。
如图3所示,还提供一种应用前述任一实施例的应用例:
当用户通过kubernetes提供的客户端工具发出创建pod的请求后,集群的APIserver组件接收到客户端发出的创建pod请求(即,request),然后通过调度器调度到集群的某个节点(Node)上,节点上的kubelet组件监听到有pod创建到当前节点,通过docker创建sandbox容器来维持住各种namespace,然后通过Multus-cni发起GRPC(一种开源RPC框架)请求调用Multus-Daemon(一种传输协议)来获取网络资源,Multus-Daemon结合pod描述中annotation选用pod期望的网络模式,调用网络插件配置网络和联通网络。
具体为:
(1)部署Multus-cni作为集群默认网路
使用git工具(即,预设工具)将开源插件Multus-cni网络插件(即,集群网络中间件)下载到本地(即,集群),集群部署Multus-cni网络插件,添加启动参数“--Multus-master-cni-file”对应值为flannel或者calico的配置文件:10-flannel.conflist(对应于flannel)或10-calico.conflist(对应于calico)。
(2)选择flannel/calico网络插件作为Multus-cni代理的默认网络插件(即,其中一种代理网络插件),vpc-cni为可选的代理网络插件(即,另一种代理网络插件);
创建两个名为NetworkAttachmentDefinition的用户自定义资源(CRD),分别添加vpc-cni和flannel/calico的配置文件的内容写入到YAML文件的spec.config字段中。
(3)编写脚本文件,部署vpc-cni网络插件
在vpc-cni的部署YAML的DaemonSet工作负载中添加initContainer,initContainer中运行脚本文件,保证flannel/calico网络插件先于vpc-cni创建,通过循环刷新目录/etc/cni/net.d下是否创建了10-flannel/calico.conflist文件,在确认创建了10-flannel/calico.conflist文件之后,再部署vpc-cni网络插件。
(4)用户通过YAML中annotation字段来声明选择使用哪个网络作为pod的容器网络
新建的pod默认使用的容器网络插件为flannel网络插件/calico网络插件,通过在YAML配置文件中声明annotations:“k8s.v1.cni.cncf.io/networks:vpc-cn”选择使用两种网络插件共存(即,Flannel网络插件与vpc-cni网络插件共存或者calico网络插件与vpc-cni网络插件共存)的模式;声明annotations:v1.Multus-cni.io/default-network:vpc-cni使用vpc-cni模式,即pod容器网络使用vpc-cni作为当前pod的默认容器网络。通过使用vpc-cni模式,pod不仅可通过Multus-cni网络插件作为中间件与集群网络互通,还可通过弹性网卡与弹性网卡所属VPC网络互通。
方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述集群中网络插件部署方法的集群中网络插件部署装置。图4是根据本申请实施例的一种可选的集群中网络插件部署装置的结构框图,如图4所示,该装置可以包括:
第一部署模块1,用于按照集群支持的目标网络,在集群中部署集群网络中间件,其中,集群网络中间件用于为集群提供网络服务;
确定模块2,用于根据目标网络,确定通过集群网络中间件代理的至少两个代理网络插件,其中,代理网络插件用于为集群网络中间件提供网络服务;
第二部署模块3,用于部署至少两个代理网络插件。
需要说明的是,该实施例中的第一部署模块1可以用于执行上述步骤S101,该实施例中的确定模块2可以用于执行上述步骤S102,该实施例中的第二部署模块3可以用于执行上述步骤S103。
通过上述模块,采用设置集群网络中间件,并使集群网络中间件代理至少两个代理网络插件,可以使后期用户可以部署至少两个代理网络插件,以至少可以通过两个网络对集群网络中间件进行访问,克服了相关技术中在集群中只能够部署一种网络插件,对集群的容器网络的性能造成了极大的限制的技术问题。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实现如图1所示方法的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述集群中网络插件部署方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
根据本申请的另一个实施例,还提供一种电子设备,包括:如图5所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现如下步骤:
步骤S101,按照集群支持的目标网络,在集群中部署集群网络中间件,其中,集群网络中间件用于为集群提供网络服务。
步骤S102,根据目标网络,确定通过集群网络中间件代理的至少两个代理网络插件,其中,代理网络插件用于为集群网络中间件提供网络服务。
步骤S103,部署至少两个代理网络插件。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processor,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种计算机可读存储介质,存储介质包括存储的程序,其中,程序运行时执行上述方法实施例的方法步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种集群中网络插件部署方法,其特征在于,包括:
按照集群支持的目标网络,在所述集群中部署集群网络中间件,其中,所述集群网络中间件用于为所述集群提供网络服务;
根据所述目标网络,确定通过所述集群网络中间件代理的至少两个代理网络插件,其中,所述代理网络插件用于为所述集群网络中间件提供网络服务;
部署所述至少两个代理网络插件。
2.根据权利要求1所述的方法,其特征在于,所述按照集群支持的目标网络,在所述集群中部署集群网络中间件,包括:
确定用于实现所述目标网络的目标网络插件;
在所述集群中的至少一个节点中部署所述集群网络中间件;
在所述集群网络中间件中添加与所述目标网络插件对应的配置文件,其中,所述配置文件用于在所述集群网络中间件运行后启动所述目标网络插件。
3.根据权利要求2所述的方法,其特征在于,所述集群网络中间件采用multus-cni插件;所述在所述集群中的至少一个节点中部署所述集群网络中间件,包括:
通过预设工具将所述multus-cni插件下载至所述集群;
部署所述multus-cni插件;
在所述目标网络对应的目标网络插件为第一flannel网络插件的情况下,所述在所述集群网络中间件中添加与所述目标网络插件对应的配置文件,包括:在所述multus-cni插件中添加第一配置文件,其中,所述第一配置文件用于在所述集群网络中间件运行后启动第一flannel网络插件;
在所述目标网络对应的目标网络插件为第一calico网络插件的情况下,所述在所述集群网络中间件中添加与所述目标网络插件对应的配置文件,包括:在所述multus-cni插件中添加第二配置文件,其中,所述第二配置文件用于在所述集群网络中间件运行后启动第一calico网络插件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标网络,确定通过所述集群网络中间件代理的至少两个代理网络插件,包括:
在所述目标网络对应的目标网络插件为第一flannel网络插件或第一calico网络插件的情况下,确定的所述至少两个代理网络插件包括:与所述目标网络插件类型一致的插件,以及vpc-cni网络插件。
5.根据权利要求1所述的方法,其特征在于,在所述部署所述至少两个代理网络插件之后,所述方法还包括:
在确定用户在所述集群中新建的目标容器的情况下,接受用户在所有候选网络中选择的至少一个指定网络,其中,所述指定网络为所述目标容器提供代理网络服务;
在所有所述代理网络插件中启动所述指定网络对应的指定网络插件。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述部署所述至少两个代理网络插件,包括:
确定各个所述代理网络插件的运行顺序;
按照所述运行顺序部署所有所述代理网络插件。
7.根据权利要求6所述的方法,其特征在于,所述按照所述运行顺序部署所有所述代理网络插件,包括:
确定目标目录,其中,所述目标目录存储有用于指示所述代理网络插件运行的目标文件,且所述代理网络插件与所述目标文件一一对应;
在确定所述目标目录中存在第一目标文件或第二目标文件的情况下,部署vpc-cni网络插件,其中,所述第一目标文件为第二flannel网络插件对应的所述目标文件,所述第二目标文件为第二calico网络插件对应的目标文件。
8.一种集群中网络插件部署装置,其特征在于,包括:
第一部署模块,用于按照集群支持的目标网络,在所述集群中部署集群网络中间件,其中,所述集群网络中间件用于为所述集群提供网络服务;
确定模块,用于根据所述目标网络,确定通过所述集群网络中间件代理的至少两个代理网络插件,其中,所述代理网络插件用于为所述集群网络中间件提供网络服务;
第二部署模块,用于部署所述至少两个代理网络插件。
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至7中任一项所述的方法步骤。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项中所述的方法步骤。
CN202210920019.2A 2022-08-01 2022-08-01 集群中网络插件部署方法和装置、电子设备和存储介质 Active CN115314376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210920019.2A CN115314376B (zh) 2022-08-01 2022-08-01 集群中网络插件部署方法和装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210920019.2A CN115314376B (zh) 2022-08-01 2022-08-01 集群中网络插件部署方法和装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN115314376A true CN115314376A (zh) 2022-11-08
CN115314376B CN115314376B (zh) 2024-01-19

Family

ID=83858704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210920019.2A Active CN115314376B (zh) 2022-08-01 2022-08-01 集群中网络插件部署方法和装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115314376B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880902A (zh) * 2020-07-29 2020-11-03 北京浪潮数据技术有限公司 一种pod创建方法、装置、设备及可读存储介质
CN112202615A (zh) * 2020-09-30 2021-01-08 上海道客网络科技有限公司 一种多cni协同工作系统与方法
EP3771148A1 (de) * 2019-07-25 2021-01-27 Siemens Aktiengesellschaft Verfahren zum automatischen konfigurieren, cluster-arbeitsknoten, cluster, netzwerk, computerprogramm und computerlesbares medium
CN112398936A (zh) * 2020-11-06 2021-02-23 浪潮云信息技术股份公司 一种基于Kubernetes的多网卡容器实现方法及系统
CN113127152A (zh) * 2021-04-09 2021-07-16 浪潮软件科技有限公司 实现kubernetes容器多网络平面的方法及装置
CN113810230A (zh) * 2021-09-16 2021-12-17 广州虎牙科技有限公司 对容器集群中的容器进行网络配置的方法、装置及系统
CN114448978A (zh) * 2021-12-20 2022-05-06 深信服科技股份有限公司 一种网络接入方法、装置、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3771148A1 (de) * 2019-07-25 2021-01-27 Siemens Aktiengesellschaft Verfahren zum automatischen konfigurieren, cluster-arbeitsknoten, cluster, netzwerk, computerprogramm und computerlesbares medium
CN111880902A (zh) * 2020-07-29 2020-11-03 北京浪潮数据技术有限公司 一种pod创建方法、装置、设备及可读存储介质
CN112202615A (zh) * 2020-09-30 2021-01-08 上海道客网络科技有限公司 一种多cni协同工作系统与方法
CN112398936A (zh) * 2020-11-06 2021-02-23 浪潮云信息技术股份公司 一种基于Kubernetes的多网卡容器实现方法及系统
CN113127152A (zh) * 2021-04-09 2021-07-16 浪潮软件科技有限公司 实现kubernetes容器多网络平面的方法及装置
CN113810230A (zh) * 2021-09-16 2021-12-17 广州虎牙科技有限公司 对容器集群中的容器进行网络配置的方法、装置及系统
CN114448978A (zh) * 2021-12-20 2022-05-06 深信服科技股份有限公司 一种网络接入方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
运维君莫笑: "Kubernetes Pod 多网卡方案 Multus", pages 1 - 4, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/532639964?utm_id=0> *

Also Published As

Publication number Publication date
CN115314376B (zh) 2024-01-19

Similar Documents

Publication Publication Date Title
CN106843828B (zh) 界面显示、加载方法及装置
US9519654B2 (en) Method, device, processing center and system for desktop synchronization
US8645672B2 (en) Configuring a computer system for a software package installation
US9942087B2 (en) Application resiliency using APIs
US11030079B2 (en) Service virtualization platform
CN110543327B (zh) 业务组件复用方法、装置、计算机设备及存储介质
CN112867988A (zh) 由移动设备实现合规设置以遵循配置场景
US20170168807A1 (en) Method and electronic device for updating application program
US9507748B2 (en) Platform runtime abstraction
US10404568B2 (en) Agent manager for distributed transaction monitoring system
CN110795343B (zh) 测试系统、测试方法和计算设备
US20170163787A1 (en) Method and electronic device for upgrading or downgrading system
CN110968331A (zh) 应用程序运行的方法和装置
US20210248056A1 (en) Method for evaluating application deployment, apparatus, computer program product, and readable medium
CN112115056A (zh) 一种项目部署方法和装置、服务器、存储介质
CN115314376A (zh) 集群中网络插件部署方法和装置、电子设备和存储介质
CN115080109A (zh) 基于混合开发的多云端环境联调方法、装置、系统和设备
CN115016862A (zh) 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质
CN114461424A (zh) 单元化部署架构下的单元间服务发现方法、装置及系统
CN103501324A (zh) 主题打包方法、装置和服务器
CN115469961A (zh) 容器组的创建方法和装置、电子设备和存储介质
US10679391B1 (en) Mobile phone notification format adaptation
CN112988176A (zh) 渠道包的生成方法和装置、存储介质及电子设备
CN113722538B (zh) 一种界面动态渲染方法及装置
CN114615150B (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