一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种插件配置方法及装置与流程

2022-05-18 06:00:28 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其涉及一种插件配置方法及装置。


背景技术:

2.库伯内特斯(kubernetes,k8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用,是目前paas业务的主要承载平台。容器网络接口(container network interface,cni)机制能够提供容器网络的配置功能。因此,cni方案可以为kubernetes平台容器提供相关的网络服务,实现集群内容器网络互通,其中,cni方案例如卡里科(calico)、法兰诺(flannel)、介质访问控制虚拟局域网(media access control virtual local area network,macvlan)、单根输入输出(input/output,i/o)虚拟化(single root i/o virtualization,sriov)等。但是,kubernetes仅支持部署一种cni方案,无法提供多种cni插件备份功能,因此,可以通过穆图斯(multus)可以配置多种cni插件,为容器配置多网卡。
3.然而,当网络状态出现异常时,多种cni插件无法完成自动切换,就会导致kubernetes平台网络瘫痪,管理人员需要长时间监控网络状态,如果发现网络状态异常,则需要手动修复故障的cni插件或者重装cni插件,该修复或重装的操作复杂且容易出错,因此产生的人力成本较高,并且该修复或重装过程需要中断kubernetes平台的容器服务,因此会影响业务功能。


技术实现要素:

4.本技术提供了一种插件配置方法及装置,用以实现多个插件自动切换,降低人工成本,提供执行效率和可靠性。
5.第一方面,本技术提供了一种插件配置方法,该方法包括:获取用户配置的多个容器网络接口cni插件的信息,多个cni插件包括主cni插件和至少一个备cni插件;在多个节点配置第一配置文件,其中第一配置文件包括主cni插件对应的配置信息;响应于第一指令,将目标节点对应的第一配置文件中的主cni插件的配置信息替换为目标备cni插件的配置信息,目标节点为多个节点中的一个,目标备cni插件为备cni插件中的一个。
6.基于以上方法,可以实现多个插件自动切换,降低人工成本,提供执行效率和可靠性。
7.在一种可能的设计中,方法还包括:根据多个cni插件的信息规划容器网段。
8.在一种可能的设计中,方法还包括:监控每个节点的主cni插件的运行状态;确定目标节点的主cni插件的运行状态为异常状态,触发第一指令。
9.在一种可能的设计中,根据目标备cni插件分配的网络信息进行配置。
10.在一种可能的设计中,第一配置文件为multus.conf配置文件。
11.第二方面,本技术还提供了一种插件配置装置,该装置包括获取模块和处理模块。该获取模块用于获取用户配置的多个容器网络接口cni插件的信息,多个cni插件包括主cni插件和至少一个备cni插件;该处理模块用于在多个节点配置第一配置文件,其中第一
配置文件包括主cni插件对应的配置信息;该处理模块还用于响应于第一指令,将目标节点对应的第一配置文件中的主cni插件的配置信息替换为目标备cni插件的配置信息,目标节点为多个节点中的一个,目标备cni插件为备cni插件中的一个。
12.在一种可能的设计中,该处理模块还用于:根据多个cni插件的信息规划容器网段。
13.在一种可能的设计中,该处理模块还用于:监控每个节点的主cni插件的运行状态;确定目标节点的主cni插件的运行状态为异常状态,触发第一指令。
14.在一种可能的设计中,该处理模块还用于:根据目标备cni插件分配的网络信息进行配置。
15.在一种可能的设计中,第一配置文件为multus.conf配置文件。
16.第三方面,本技术还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述第一方面及其任一可能的设计所述插件配置方法的步骤。
17.第四方面,本技术还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面及其任一可能的设计所述插件配置方法的步骤。
18.第五方面,本技术还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如第一方面及其任一可能的设计所述插件配置方法的步骤。
19.另外,第二方面至第五方面所带来的技术效果可参见上述第一方面的描述,此处不再赘述。
附图说明
20.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为一种提供网络服务的流程示意图;
22.图2为另一种提供网络服务的流程示意图;
23.图3为一种切换cni插件的流程示意图;
24.图4为本技术实施例提供的一种插件配置的方法;
25.图5为本技术实施例提供的一种主cni插件的配置流程示意图;
26.图6为本技术实施例提供的另一种切换cni插件的流程示意图;
27.图7为本技术实施例提供的另一种切换cni插件的流程示意图;
28.图8为本技术实施例提供的一种插件配置装置的模块化结构示意图;
29.图9为本技术实施例提供的另一种插件配置装置的结构示意图。
具体实施方式
30.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进
一步地详细描述,显然,所描述的实施例仅仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
31.图1为一种通过单个cni方案为kubernetes平台容器提供相关的网络服务的流程示意图,其中,kubernetes平台可以存在于kubernetes簇(k8s cluster)中,库贝莱(kubelet)是kubernetes工作节点(node)上的一个代理组件,运行在kubernetes平台的每个节点上,当数据结构(plain old data,pod)对象进行创建、更新或删除时,kubelet可以调用cni插件完成pod网络相关配置。
32.具体的,该方案具体包括以下步骤:1、用户通过kubernetes平台的应用程序接口服务器(application program interface-server,api-server)接收pod对象对应的操作事件,例如创建(add)、更新(update)或删除(del)。2、部署在kubernetes平台的kubelet可以监控pod事件,接收pod对象对应的操作事件以及其他相关信息。3、kubelet还可以从cni配置文件中获取cni插件相关配置,具体来说,kubelet只能获取/etc/cni/net.d目录下第一个可用配置文件(例如/etc/cni/net.d/xxxnet.conf)。4、kubelet还可以调用cni可执行文件(cni插件二进制,例如/opt/cni/bin/xxxnet)。5、kubelet还可以根据上述可执行文件配置pod网络。举例来说,当pod对象对应的操作事件为创建pod时,kubelet可以接收pod信息,并发送给cni可执行文件,由cni可执行文件分配互联网协议(internet protocol,ip)地址和网卡的局域网(media access control,mac)地址,从而完成pod网络配置;当pod对象对应的操作事件为删除pod时,cni可执行文件可以回收该pod对应的ip和mac。
33.因此,kubelet只能获取对应目录下第一个可用配置文件,故kubernetes平台只能配置一种cni插件,也就只能为容器配置单个网卡和单个ip。
34.图2为另一种通过多个cni方案为kubernetes平台容器提供相关的网络服务的流程示意图,该方法可以通过multus配置多种cni插件,其中,multus可以使kubernetes平台同时配置多种cni插件,其功能是为容器配置多张网卡和/或多个ip。
35.具体的,该方案具体包括以下步骤:1、用户通过kubernetes平台的api-server接收pod对象对应的操作事件,例如创建(add)、更新(update)或删除(del)。2、部署在kubernetes平台的kubelet可以监控pod事件,接收pod对象对应的操作事件以及其他相关信息。3、kubelet可以从cni配置文件(包括multus配置文件)中获取cni插件相关配置,具体来说,kubelet可以读取multus配置文件(/etc/cni/net.d/目录下的至少一个配置文件,例如/etc/cni/net.d/multus.conf,其中包括macvlan、flannel、calico
……
)。4、kubelet还可以依次调用multus配置的cni可执行文件(cni插件二进制,例如/opt/cni/bin/xxxnet)。5、kubelet还可以根据上述可执行文件配置pod网络。举例来说,当pod对象对应的操作事件为创建pod时,kubelet可以接收pod信息,依次调用响应的cni可执行文件,从而完成pod网络配置;当pod对象对应的操作事件为删除pod时,多个cni插件可以回收该pod对应的ip和mac。
36.因此,该方案能够为容器分配单个或多个网卡,并配置网络信息。然而,k8s cluster的cni插件功能异常会导致cni无法为k8s cluster提供网络服务,导致k8s cluster网络瘫痪。
37.图3为一种切换cni插件为kubernetes平台容器提供相关的网络服务的流程示意图,该方案具体包括以下步骤:用户配置容器网络;编排工具根据用户配置信息生成容器网络;判断该网络是否正常运行。如果该网络不能正常运行,则需要用户重新配置容器网络。如果该网络可以正常运行,则判断用户是否切换网络方案,其中,如果用户已切换网络方案,则再次判断该网络是否正常运行,如果用户没有切换网络方案,则需要用户重新配置容器网络。
38.可见,该方案要求管理人员定期检查cni插件健康状态,增加了人力成本。同时,由于管理人员在重新部署网络时,作业难度大,耗费时间长,还需要中断服务,因此可能会因为业务中断导致业务处理的错误。
39.为了实现多个插件自动切换,降低人工成本,提供执行效率和可靠性,本技术实施例提供一种插件配置方法。通过为多个插件配置优先级,实现多个插件的自动切换,以解决前述技术问题。
40.具体的,本方案提出了一种基于kubernetes平台的高可靠性的网络实现方法,具体包括:用户可同时部署多种网络插件,并选择其中一个网络插件作为主cni,为容器配置网络。其他网络插件作为备cni,并配置优先级。当主cni功能异常时,kubernetes平台将自动切换cni插件,确保网络功能正常。
41.下面结合附图,对本技术实施例提供的插件配置方法进行说明。图4为本技术实施例提供的一种插件配置的方法,该方法可包括以下步骤:
42.s101:插件配置装置可以获取用户配置的多个cni插件的信息,多个cni插件包括主cni插件和至少一个备cni插件。
43.具体的,插件配置装置可以获取用户(或管理人员)配置的多个cni插件的信息,其中,用户可以根据按照场景需求确定多个cni插件的信息,多个cni插件包括一个主cni插件和至少一个备cni插件,主cni用于为k8s cluster提供网络服务,备cni用于在网络故障时切换为新的主cni为k8s cluster提供网络服务。应理解,同一时刻在kubernetes平台中只能配置一个主cni,主cni插件的优先级最高,其次是备cni插件。
44.可选的,如果多个cni插件中包括两个或两个以上备cni插件,插件配置装置可以为该两个或两个以上备cni插件确定优先级。应理解,该优先级可以用于插件配置装置在网络故障时选择新的插件。
45.s102:插件配置装置在多个节点配置第一配置文件,其中第一配置文件包括主cni插件对应的配置信息。具体的,插件配置装置可以通过脚本配置第一配置文件,配置成功则cni插件可以为k8s cluster中每一个节点提供网络服务。
46.可选的,第一配置文件为multus.conf配置文件。举例来说,插件配置装置可以通过脚本在每个节点配置multus.conf文件,其中multus.conf只用于配置主cni,因此可以保证主cni插件被配置在k8s cluster中,为每一个节点提供网络服务。
47.可选的,每个节点的主cni插件可以相同或不同,每个节点的多个cni可以相同或不同。
48.在一种可能的设计中,插件配置装置可以根据多个cni插件的信息规划容器网段。其中,该容器网段能够适用于主cni插件,也能够适用于备cni插件。具体的,管理人员可以合理规划容器网段,使得容器ip适用于主cni插件和备cni插件。
49.采用该设计,在需要cni插件切换时,切换后的cni插件仍然能够为k8s cluster提供网络服务。
50.在一种可能的设计中,插件配置装置可以在主cni插件和所有备cni插件中生成网络信息;或者,插件配置装置可以在主cni插件和目标备cni插件中生成网络信息。其中,目标备cni插件可以是多个备cni插件中随机选择的一个备cni插件,也可以是多个备cni插件中优先级最高的一个备cni插件。
51.具体的,kubelet监控获得pod对象对应的相关信息后,通过主cni插件为k8s cluster提供网络服务的过程中,会产生为容器分配的网络信息。举例来说,该过程中可能会创建、删除或更新pod时,每个节点上的kubelet接收到pod事件后,调用主cni的可执行文件,完成pod网络配置,因此产生至少一个网络信息。
52.其中,完成pod网络配置的具体过程可以包括:当pod对象对应的操作事件为创建pod时,kubelet可以接收pod信息,依次调用响应的cni可执行文件,从而完成pod网络配置;当pod对象对应的操作事件为删除pod时,多个cni插件可以回收该pod对应的ip和mac。
53.插件配置装置可以根据所有备cni插件(或者目标备cni插件)分别确定网络信息。具体的,插件配置装置还可以在获得pod对象对应的相关信息后,通过该备cni插件产生与上述网络信息相同的网络信息(例如ip),将该网络信息存储在该备cni插件对应的存储模块或者存储在插件配置装置中。举例来说,插件配置装置可以将上述网络信息发送给该备cni插件,或者,通过该备cni插件根据pod对象对应的相关信息确定网络信息。需要注意的是,该网络信息与上述主cni插件所确定的网络信息应该保持一致。
54.采用该设计,能够保证主cni插件和目标备cni插件中的网络信息保持一致,在需要cni插件切换时,切换后的cni插件仍然保留与原cni插件一致的网络信息,从而避免因为业务中断导致业务处理的错误。
55.s103:插件配置装置响应于第一指令,将目标节点对应的第一配置文件中的主cni插件的配置信息替换为目标备cni插件的配置信息,目标节点为多个节点中的一个,目标备cni插件为备cni插件中的一个。
56.具体的,插件配置装置响应于第一指令,将目标节点对应的第一配置文件中的主cni插件的配置信息替换为目标备cni插件的配置信息,目标节点为多个节点中的一个。仍以第一配置文件为multus.conf配置文件为例,插件配置装置可以通过脚本在目标节点中更新multus.conf配置文件,更新后的配置文件只配置该目标备cni插件,该目标备cni插件也就是新的主cni插件。
57.采用该方法,能够通过更新配置文件实现cni插件的切换,降低人工成本,提供执行效率和可靠性。
58.在一种可能的设计中,插件配置装置监控每个节点的主cni插件的运行状态;插件配置装置确定目标节点的主cni插件的运行状态为异常状态,触发第一指令。
59.可选的,管理人员在根据当前网络运行状态确定主cni插件故障或者确定需要切换cni插件时,触发第一指令。
60.在一种可能的设计中,插件配置装置可以根据目标备cni插件分配的网络信息进行配置。其中,目标备cni插件可以是多个备cni插件中随机选择的一个备cni插件,也可以是多个备cni插件中优先级最高的一个备cni插件。示例性的,在完成cni插件切换之后,插
件配置装置主动触发第二指令,第二指令用于根据更新后的cni插件的网络信息进行配置。
61.可选的,插件配置装置还可以根据所有备cni插件分配的网络信息进行配置。
62.示例性的,插件配置装置可以根据目标备cni插件(即新的主cni插件)分配的网络信息进行配置。
63.采用该设计,因为主cni插件和目标备cni插件中的网络信息保持一致,切换后的cni插件仍然保留与原cni插件一致的网络信息,从而避免因为业务中断导致业务处理的错误。
64.图5为本技术实施例提供的一种主cni插件的配置流程示意图,该方案包括以下步骤:1、插件配置装置获取用户按需配置的主cni网络和至少一个备cni插件的信息。2、插件配置装置在每个节点配置multus.conf文件,其中multus.conf只用于配置主cni。3、用户通过kubernetes平台的api-server接收pod对象对应的操作事件,例如创建(add)、更新(update)或删除(del)。4、部署在kubernetes平台的kubelet可以监控pod事件,接收pod对象对应的操作事件以及其他相关信息。5、kubelet可以从cni配置文件(包括multus配置文件)中获取cni插件相关配置,例如/etc/cni/net.d/multus.conf,其中包括macvlan、flannel、calico
……
)。6、kubelet还可以依次调用multus配置的cni可执行文件(cni插件二进制,例如/opt/cni/bin/xxxnet)。kubelet还可以根据上述可执行文件配置pod网络。
65.图6为本技术实施例提供的一种cni插件切换的流程示意图,该方案包括以下步骤:1、插件配置装置触发第一指令,第一指令用于指示切换cni插件。2、插件配置装置响应于第一指令,在节点中更新multus.conf配置文件从而切换cni插件。3、插件配置装置主动触发第二指令(例如pod update操作指令),第二指令用于指示根据更新后的cni插件的网络信息进行配置。4、部署在kubernetes平台的kubelet可以监控pod事件,接收pod对象对应的操作事件以及其他相关信息。5、kubelet可以从cni配置文件(包括multus配置文件)中获取cni插件相关配置,例如/etc/cni/net.d/multus.conf,其中包括macvlan、flannel、calico
……
)。6、kubelet还可以依次调用multus配置的cni可执行文件(cni插件二进制,例如/opt/cni/bin/xxxnet)。kubelet还可以根据上述可执行文件配置pod网络。
66.图7为本技术提供的一种cni插件切换的流程示意图,该方案具体包括以下步骤:插件配置装置获取用户按需配置的主cni网络和至少一个备cni插件的信息。插件配置装置根据管理人员确定的多个cni插件的信息规划容器网段。插件配置装置可以在主cni插件和所有备cni插件中生成网络信息并存储在插件配置装置中。插件配置装置判断当前主cni插件配置的网络是否正常运行。如果该网络可以正常运行,则插件配置装置判断用户是否切换网络方案,如果用户没有切换网络方案,则插件配置装置再次判断当前主cni插件配置的网络是否正常运行。如果该网络不能正常运行,或者,该网络可以正常运行但用户提供切换网络方案,则插件配置装置执行cni插件切换,cni插件切换的方法可参加图4的相关描述,此处不再赘述。
67.基于与上述认证方法的同一构思,本技术实施例还提供一种插件配置装置,用于实现上述由插件配置装置执行的方法。
68.图8所示为本技术实施例提供的一种插件配置装置的模块化结构示意图。
69.其中,获取模块801可用于执行s101和本技术描述的插件配置装置的其他通信动作,处理模块802可用于执行s102和s103或实现本技术描述的插件配置装置的其他处理动
作。具体执行的动作和功能这里不再具体展开,可参照前述方法实施例部分的说明。
70.图9示出了本技术实施例提供的一种插件配置装置的结构示意图。
71.本技术实施例中的电子设备可包括处理器901。处理器901是该插件配置装置的控制中心,可以利用各种接口和线路连接该插件配置装置的各个部分,通过运行或执行存储在存储器902内的指令以及调用存储在存储器902内的数据。可选的,处理器901可包括一个或多个处理单元,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。在一些实施例中,处理器901和存储器902可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
72.处理器901可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的插件配置装置所执行的步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
73.在本技术实施例中,存储器902存储有可被至少一个处理器901执行的指令,至少一个处理器901通过执行存储器902存储的指令,可以用于执行前述由插件配置装置执行的通信过程。
74.存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器902可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
75.本技术实施例中,该网络设备还可以包括通信接口903,插件配置装置可以通过该通信接口903传输数据。例如插件配置装置为服务器,通信接口903可用于获取用户配置的多个容器网络接口cni插件的信息。
76.可选的,可由图9所示处理器901(或处理器901和存储器902)实现图8所示的处理模块802,和/或,由通信接口903实现图8所示的获取模块801。
77.基于相同的发明构思,本技术实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图9所示的存储器902。
78.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产
品的形式。
79.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
80.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
81.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
82.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献