CN117519911B - 自动注入系统、方法、设备、集群以及介质 - Google Patents
自动注入系统、方法、设备、集群以及介质 Download PDFInfo
- Publication number
- CN117519911B CN117519911B CN202410010703.6A CN202410010703A CN117519911B CN 117519911 B CN117519911 B CN 117519911B CN 202410010703 A CN202410010703 A CN 202410010703A CN 117519911 B CN117519911 B CN 117519911B
- Authority
- CN
- China
- Prior art keywords
- network
- automatic injection
- creation request
- container
- container creation
- 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
- 238000002347 injection Methods 0.000 title claims abstract description 128
- 239000007924 injection Substances 0.000 title claims abstract description 128
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 24
- 238000012545 processing Methods 0.000 claims description 30
- 230000001960 triggered effect Effects 0.000 claims description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 26
- 230000006870 function Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 229940090047 auto-injector Drugs 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
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)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种自动注入系统、方法、设备、集群以及介质。所述系统包括主节点、从节点以及数据处理器,主节点和从节点之间能够进行通讯,数据处理器和从节点之间通过外部设备快速互联接口进行连接,主节点用于接收用户输入的容器创建请求,将网络注解以及设备资源添加到容器创建请求中,得到修改后的容器创建请求;数据处理器用于提供容器进行通信的硬件逻辑;从节点用于接收主节点发送的修改后的容器创建请求,并根据修改后的容器创建请求在从节点中创建容器,容器使用所述数据处理器的网络接口进行网络通讯,所述网络接口是从节点根据网络注解以及设备资源插入到容器中的。上述方案能够自动注入相关信息,用户并不感知。
Description
技术领域
本发明涉及容器领域,尤其涉及一种自动注入系统、方法、设备、集群以及介质。
背景技术
容器是一种轻量级的虚拟化技术,用于将应用程序及运行时环境、系统工具、系统库和依赖项等打包在一个独立的、可移植的运行环境中。与传统的虚拟机相比,容器具有以下几个特点:利用底层操作系统的资源,与宿主机共享操作系统内核,因此它们比虚拟机更轻量化,启动更快,占用更少的资源;可以在不同的计算环境中运行,而不需要担心环境差异的问题;快速部署和启动,使应用程序的交付变得更加高效和可靠;可以轻松地扩展应用程序,通过简单地复制和启动更多的容器实例来处理更大的负载。为了实现容器技术,需要运行容器系统。如图1所示,容器系统包括:主节点110以及从节点120。
主节点110可以是一个服务器或者多个服务器组成的服务器组,可以是一组虚拟机,甚至可以是云服务商提供的托管服务。主节点110通常需要具备足够的计算能力、存储能力和网络带宽,以支持容器集群的管理和调度任务。主节点110功能包括但不限于:根据容器编排策略,调度和管理容器的创建、部署和销毁等操作;存储和维护容器集群的元数据和状态信息,确保集群的稳定运行和高可用性;监控容器集群中的资源使用情况,进行资源分配和调度,确保容器的性能和可用性;负责容器网络的配置和管理,包括网络策略、路由规则和负载均衡等。
从节点120是主节点110管理的工作节点,用于实际运行容器121的实例。从节点120可以是物理服务器、虚拟机或者云实例,具备足够的计算资源和存储能力,用于承载和运行容器。从节点120通过与主节点110建立连接,并接收主节点110下发的容器部署和管理指令,并根据指令在本地创建和运行相应的容器121,并将容器121的状态和健康状况汇报给主节点110。从节点120的数量可以根据需求进行扩展,以提供更好的容器121运行和承载能力。参见图2,为了实现容器和容器之间的通信,可以为容器分配虚拟网卡,该虚拟网卡与物理网卡相连,容器可以通过虚拟网卡获得唯一的IP地址以及其他网络配置信息,并通过IP地址以及其他网络配置信息实现容器之间的通信。
但是,容器之间的通信会占用从节点的大量计算资源,降低了从节点为用户提供服务的效率。
发明内容
本申请提供了一种自动注入系统、方法、设备、集群以及介质,能够利用数据处理器进行容器的网络通信,有效提高从节点的资源的利用率,并且,整个过程用户并不需要介入,因此并不感知。
第一方面,提供了一种自动注入系统,包括主节点、从节点以及数据处理器,所述主节点和所述从节点之间能够进行通讯,所述数据处理器和所述从节点之间通过外部设备快速互联接口进行连接,
所述主节点用于接收用户输入的容器创建请求,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求;
所述数据处理器用于提供容器进行通信的硬件逻辑;
所述从节点用于接收主节点发送的修改后的容器创建请求,并根据修改后的容器创建请求在所述从节点中创建容器,其中,所述容器使用所述数据处理器的网络接口进行网络通讯,所述网络接口是所述从节点根据网络注解以及设备资源插入到所述容器中的。
在一些可能的设计中,所述主节点包括应用程序接口服务以及自动注入单元,
所述应用程序接口服务用于接收用户输入的容器创建请求;
所述自动注入单元用于拦截所述容器创建请求,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求。
在一些可能的设计中,所述自动注入单元用于在监听到用户触发自动注入网络事件的情况下,创建第一自动注入网络或者第二自动注入网络,所述第一自动注入网络包括网络注解以及设备资源,并且,所述第一自动注入网络应用于名空间,第二自动注入网络包括网络注解以及设备资源,并且,所述第二自动注入网络应用于全局,所述名空间的覆盖范围小于所述全局的覆盖范围,所述第一自动注入网络的优先级别高于所述第二自动注入网络的优先级别;在监听到用户触发网络连接定义事件的情况下,创建第三自动注入网络,所述第三自动注入网络包括网络注解以及设备资源,并且,所述第三自动注入网络应用于所述全局,所述第二自动注入网络的优先级别高于所述第三自动注入网络的优先级别。
在一些可能的设计中,所述自动注入单元用于在存在所述第一自动注入网络的时候,将名第一自动注入网络添加到容器创建请求中,得到修改后的容器创建请求;在不存在所述第一自动注入网络,但是,存在所述第二自动注入网络的情况下,将所述第二自动注入网络添加到容器创建请求中,得到修改后的容器创建请求;在不存在所述第一自动注入网络以及第二自动注入网络,但是,存在所述第三自动注入网络的情况下,将所述第三自动注入网络添加到容器创建请求中,得到修改后的容器创建请求。
在一些可能的设计中,所述主节点用于接收用户输入的容器创建请求,在根据所述容器创建请求中携带的容器的网络类型确定为不使用主机网络的情况下,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求。
在一些可能的设计中,所述主节点用于接收用户输入的容器创建请求,在所述容器创建请求中没有携带网络注解以及设备资源的情况下,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求。
在一些可能的设计中,所述应用程序接口服务用于挂载所述自动注入单元的网络回调服务,其中,所述网络回调服务用于拦截所述应用程序接口服务接收到的容器创建请求,并将容器创建请求发送给所述自动注入单元进行处理。
第二方面,提供了一种自动注入方法,应用于自动注入系统,所述自动注入系统包括主节点、从节点以及数据处理器,所述主节点和所述从节点之间能够进行通讯,所述数据处理器和所述从节点之间通过外部设备快速互联接口进行连接,
所述主节点接收用户输入的容器创建请求,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求;
所述数据处理器提供容器进行通信的硬件逻辑;
所述从节点接收主节点发送的修改后的容器创建请求,并根据修改后的容器创建请求在所述从节点中创建容器,其中,所述容器使用所述数据处理器的网络接口进行网络通讯,所述网络接口是所述从节点根据网络注解以及设备资源插入到所述容器中的。
第三方面,提供了一种计算设备,包括:处理器以及存储器,其中,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如第二方面所述的方法。
第四方面,提供了一种计算集群,包括多个计算设备,其中,每个计算设备包括处理器以及存储器,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如第二方面所述的方法。
第五方面,提供了一种计算机可读存储介质,包括指令,所述指令被计算设备执行时,执行如第二方面所述的方法。
上述方案中,容器的网络通信卸载到数据处理器中进行,因此,从节点可以集中处理与业务相关事务,而不用再关注与业务无关的容器的网络传输,从而提高了从节点的有效利用率。而且,网络注解和设备资源都是自动注入到容器创建请求中的,从节点根据网络注解和设备资源创建容器,就能够就能使用数据处理器来为容器提供通信,用户全程并不感知。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1是现有技术提供的一种容器系统的结构示意图;
图2是现有技术提供的一种容器通信方式的示意图;
图3是本申请提供的一种容器系统的结构示意图
图4是本申请提供的另一种容器系统的结构示意图。
图5是本申请提供的一种自动注入单元的结构示意图;
图6是本申请提供的一种自动注入单元获得网络注解以及设备资源的示意图;
图7是本申请提供的一种自动注入方法的流程示意图;
图8是本申请提供的一种计算设备的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
参见图3,图3是本申请提供的一种容器系统的结构示意图。如图3所示,本申请的容器系统,包括:主节点110、从节点120以及数据处理器130。
主节点110可以是一个服务器或者多个服务器组成的服务器组,可以是一组虚拟机,甚至可以是云服务商提供的托管服务。主节点110通常需要具备足够的计算能力、存储能力和网络带宽,以支持容器集群的管理和调度任务。主节点110功能包括但不限于:根据容器编排策略,调度和管理容器的创建、部署和销毁等操作;存储和维护容器集群的元数据和状态信息,确保集群的稳定运行和高可用性;监控容器集群中的资源使用情况,进行资源分配和调度,确保容器的性能和可用性;负责容器网络的配置和管理,包括网络策略、路由规则和负载均衡等。
从节点120是主节点110管理的工作节点,用于实际运行容器121的实例。从节点120可以是物理服务器、虚拟机或者云实例,具备足够的计算资源和存储能力,用于承载和运行容器。从节点120通过与主节点110建立连接,并接收主节点110下发的容器部署和管理指令,并根据指令在本地创建和运行相应的容器121,并将容器121的状态和健康状况汇报给主节点110。从节点120的数量可以根据需求进行扩展,以提供更好的容器121运行和承载能力。
数据处理器230可以采用数据处理单元(Data Processing Unit,DPU)、专用集成电路(Application-Specific Integrated Circuit,ASIC)以及现场可编程门阵列(Field-Programmable Gate Array,FPGA)等等。数据处理器230可以通过外部设备快速互联(Peripheral Component Interconnect Express,PCIe)接口插入从节点120中。
数据处理器230可以作为从节点120中的容器的网络插件,实现容器与容器之间的网络通信。通过数据处理器230实现容器与容器之间的网络通信,能够把容器和容器之间的通信任务卸载到数据处理器230中,将会大大减少对从节点120的计算资源的占用,从节点120可以专注于业务相关的工作,而无须关注与业务无关的网络通信等任务,从而大大提高了从节点120的计算资源的有效利用率。
可以理解,上述方案中仅仅以一个主节点以及两个从节点,并且,每个从节点中包括两个容器,每个从节点设置一个数据处理器为例进行说明,但是,在实际应用中,主节点的数量可以是更多,从节点的数量可以更少或者更多,每个从节点的数量可以更少或者更多,每个从节点的数据处理器的数量可以更少或者更多,并且,不同的从节点的容器以及数据处理器的数量可以是相同的,也可以是不相同的,此处不作具体限定。
要使用数据处理器作为从节点中的容器的网络插件,必须在创建容器的时候,额外添加网络注解和设备资源两个信息。下面将结合容器系统创建容器的过程说明为何要额外添加网络注解和设备资源两个信息。
参见图4,图4是本申请提供的一种容器系统的结构示意图。本申请的容器系统能够利用DPU作为从节点120中的容器的网络插件。如图4所示,本申请的容器系统,包括:主节点110、从节点120以及数据处理器。
主节点110中包括应用程序接口(Application Programming Interface,API)服务311。API服务311作为主节点的入口,用于控制和管理整个容器系统,处理所有请求,并将其分发到适当的组件上。
从节点120包括容器组件321、设备插件322、多网络插件323、容器虚拟网络接口324以及容器网络接口服务325。其中,
容器组件321负责监控节点上运行的容器的状态,并确保它们处于运行状态。容器组件321根据容器信息创建和销毁容器,根据节点的资源情况,监控和管理节点上的资源使用情况,确保容器能够获得足够的资源来运行,为容器分配和设置网络等等。
设备插件322用于管理和分配从节点上的硬件设备资源的插件,它允许从节点将它们的硬件设备(如GPU、FPGA、DPDK等)注册为可用的资源,并使这些设备能够被容器使用。
多网络插件323是一个多网络插件,用于允许在单个容器中使用多个网络接口。这样,一个容器可以同时连接到多个网络,实现更灵活和复杂的网络配置。
容器虚拟网络接口324用于在底层物理网络之上创建虚拟网络,将容器连接到该虚拟网络中,它通常使用隧道技术来实现容器之间的通信,如虚拟扩展网络(VirtualExtensible LAN,VXLAN)、通用路由封装(Generic Routing Encapsulation,GRE)等。
容器网络接口服务325用于将容器与从节点的网络连接起来,使得容器可以与其他容器或外部网络进行通信。
当主节点110中的应用程序接口(Application Programming Interface,API)服务311接收到容器创建请求时,将容器创建请求发送给自动注入单元312。自动注入单元312判断容器创建请求中是否已经携带了网络注解和设备资源两个信息,如果已经携带了网络注解和设备资源两个信息,则通知API服务311直接将容器创建请求发送给从节点120。如果没有携带网络注解和设备资源两个信息,则在容器创建请求中增加网络注解和设备资源两个信息,并将修改后的容器创建请求发送给API服务311。API服务311将修改后的容器创建请求发送给从节点120。从节点120的容器组件(例如,Kubelet)321接收到容器创建请求之后,会将容器创建请求中的设备资源发送给设备插件322,设备插件322根据设备资源管理和分配数据处理器的资源以实现网络的功能。之后,容器组件321将容器创建请求中的网络注解发送给多网络插件323。如果对网络注解解析出需要使用的容器虚拟网络接口324(例如,ovn-k8s-cni-overlay),那么,容器组件321会将设备资源中的信息作为参数,向容器网络接口服务325(例如,OVN-Kubernetes CNI Server)发起请求。之后,容器网络接口服务325会将容器与从节点的网络连接起来,使得容器可以与其他容器或外部网络进行通信。
从上述可以看出,容器要使用数据处理器的网络接口进行网络通讯,必须在创建容器的时候,额外添加网络注解和设备资源等等信息,这样从节点才能够根据网络注解以及设备资源将数据处理器的网络接口插入到容器中。下面将详细介绍主节点110如何自动在容器创建请求中添加网络注解和设备资源等等信息。
为了使得主节点能够自动在容器创建请求中添加网络注解和设备资源两个信息,可以在主节点中增加自动注入单元。如图5所示,自动注入单元312可以包括四个单元:服务单元313、信息注入单元314、控制单元315和存储单元316。
服务单元313负责证书的创建与维护,对外提供HTTPS服务,是供API服务311调用的Webhook。
信息注入单元314负责判断是否需要为容器创建请求注入网络注解以及设备资源等等信息,在需要注入网络注解以及设备资源等等信息的情况下,通过计算为容器创建请求设置网络注解和设备资源。
控制单元315负责监听并处理自动注入网络(Automatic Inject Network,AIN)事件或者网络连接定义(NetworkAttachmentDefinition,NAD)事件,以生成网络注解以及设备资源等等信息;
存储单元316用于负责存储网络注解以及设备资源等等信息。
可以理解,自动注入单元312的划分仅仅作为一种具体的示例,在实际应用中,可以按照需要将自动注入单元312划分为更多或者更少的单元,并且,每个单元的功能也可以按照需要自由进行划分以及组合。
由于自动注入单元312是用户创建的模块,在启动之初必须进行相应的准备工作才能确保自动注入单元312能够正常工作。下面将先介绍增加的自动注入单元312是如何实现启动的。
由于API服务311是容器编排引擎(例如,Kubernetes)自带的模块,而自动注入单元312并不是容器编排引擎自带的模块,而是用户自己创建的模块,所以,API服务311和自动注入单元312之间并不是互相信任的。因此,在自动注入单元312启动时,服务单元313会创建证书,由于该证书用于API服务311调用自动注入单元312的网络回调(例如,Webhook)服务,因此,需要通过变更网络回调配置(Mutating Webhook Configuration,MWC)将证书注册到API服务311。在创建好证书后,服务单元313使用证书启动网络回调服务,挂载信息注入单元的处理函数,该处理函数用于拦截容器创建请求,并通知信息注入单元314进行处理。初始化存储单元316。控制单元315会向API服务311创建一个名为AIN的自定义资源定义(Custom Resource Definition,CRD)。在AIN资源中,定义了网络注解和设备资源。其中,AIN具备名空间(Namespace)属性,当名空间为空时,则认为是全局的AIN;当名空间为非空时,则认为是名空间范围下的AIN,名空间的范围小于全局的范围。在完成自动注入单元312的启动之后,控制单元315就会监听AIN事件或者NAD事件。
在启动完自动注入单元312之后,就可以通过监听AIN事件或者NAD事件来获得网络注解以及设备资源等等信息。下面将先对自动注入单元312是如何获得网络注解以及设备资源等等信息进行介绍。如图6所示,自动注入单元312获得网络注解以及设备资源主要是通过以下两种方式实现:
在第一种方式中,通过AIN事件来生成网络注解以及设备资源。当主节点的API服务接收到用户输入的AIN创建事件时,API服务会将AIN创建事件通知给控制单元,控制单元根据AIN是否含有名空间来判断是否是自定义的全局默认AIN,如果不包含名空间,就可以判断是自定义的全局的AIN,如果包含名空间,就可以判断是名空间的AIN,然后,将创建的AIN保存到存储单元。因此,可以通过AIN事件来创名空间的AIN或者自定义的全局的AIN。
在第二种方式中,通过NAD事件来生成网络注解以及设备资源。当主节点的API服务接收到用户输入的NAD创建事件时,API服务会将NAD创建事件通知给控制单元。由于NAD创建事件中已经包括了网络注解,所以,控制单元只需再获得设备资源即可。控制单元向API服务查询设备插件定义的配置映射(ConfigMap)数据,从配置映射中获取设备资源,将其与NAD创建事件中的网络注解组合,就能够得到AIN,然后,将创建的AIN保存到存储单元。因为,该AIN不含名空间,故只能作为NAD生成的全局的AIN。因此,可以通过NAD事件来创建NAD生成的全局的AIN。
可以理解,上述两种方式仅仅作为具体的示例,在实际应用中,还可以采用更多的方式来生成网络注解以及设备资源。
在完成生成网络注解以及设备资源等信息之后,就能够通过自动注入单元在容器创建请求中添加网络注解和设备资源等等信息。
参见图7,图7是本申请提供的一种自动注入方法的流程示意图。应用于自动注入单元,如图7所示,本申请的自动注入方法,包括:
S101:服务单元拦截API服务的容器创建请求。
在一些可能的实施例中,容器创建请求包括容器标识、容器的网络类型等等。其中,容器标识为容器的唯一标识。容器的网络类型包括使用主机网络和不使用主机网络。服务单元对容器创建请求进行解释得到容器的网络类型等等解析信息。如果解释信息中容器的网络类型为使用主机网络时,则利用主机现成的网络即可,不需要再为容器创建网络,自然也不需要为容器创建请求注入网络注解以及设备资源等等信息,则直接返回成功给API服务,API服务再按照原有的过程继续进行容器的创建。如果解释信息中容器的网络类型为不使用主机网络,并且,解释信息中包含网络注解以及设备资源等等信息时,也不需要为容器创建请求注入网络注解以及设备资源等等信息,则直接返回成功给API服务。如果解释信息中容器的网络类型为不使用主机网络,需要为容器创建网络,并且,解释信息中不包含网络注解以及设备资源等等信息时,就需要进入下一个步骤为容器创建请求注入网络注解以及设备资源等等信息从而为容器创建网络。
S102:信息注入单元判断是否存在名空间的AIN。
在一些可能的实施例中,名空间的AIN覆盖的范围最小,优先级别最高。因此,当存在名空间的AIN的时候,优先使用名空间的AIN。当不存在名空间的AIN的时候,则进入下一步骤S103。当存在名空间的AIN的时候,则进入步骤S105。
S103:信息注入单元判断是否存在自定义的全局的AIN。
在一些可能的实施例中,自定义的全局的AIN覆盖的范围比较大,优先级别比名空间的AIN的优先级别低。因此,当存在名空间的AIN的时候,优先使用名空间的AIN,当不存在名空间的AIN但是存在自定义的全局的AIN的时候,则使用自定义的全局的AIN。当不存在名空间的AIN以及自定义的全局的AIN的时候,则进入下一步骤S104。当不存在名空间的AIN但是存在自定义的全局的AIN的时候,则进入步骤S105。
S104:信息注入单元判断是否存在NAD生成的全局的AIN。
在一些可能的实施例中,NAD生成的全局的AIN覆盖的范围和自定义的全局的AIN覆盖的范围相同,都是全局的。但是,NAD生成的全局的AIN通常是初次创建的AIN,而,自定义的全局的AIN通常是后面创建的AIN,所以,NAD生成的全局的AIN的优先级别低于自定义的全局的AIN的优先级别。当存在名空间的AIN或者自定义的全局的AIN的时候,优先使用名空间的AIN或者自定义的全局的AIN,当不存在名空间的AIN以及自定义的全局的AIN的时候,才会使用NAD生成的全局的AIN。所以,当不存在名空间的AIN、自定义的全局的AIN、NAD生成的全局的AIN的时候,直接返回成功给API服务,API服务会用原来的容器创建请求让容器组件创建容器。当不存在名空间的AIN以及自定义的全局的AIN,但是,存在NAD生成的全局的AIN的时候,进入步骤S105。
S105:信息注入单元对容器创建请求进行修改,得到修改后的容器创建请求。
在一些可能的实施例中,信息注入单元对容器创建请求进行修改,得到修改后的容器创建请求。具体地,如果存在名空间的AIN的时候,信息注入单元将名空间的AIN添加到容器创建请求中,得到修改后的容器创建请求,并将修改后的容器创建请求返回给API服务。如果不存在名空间的AIN,但是,存在自定义的AIN的时候,信息注入单元将自定义的AIN添加到容器创建请求中,得到修改后的容器创建请求,并将修改后的容器创建请求返回给API服务。如果不存在名空间的AIN以及自定义的AIN,但是,存在NAD生成的全局的AIN的时候,信息注入单元将NAD生成的全局的AIN添加到容器创建请求中,得到修改后的容器创建请求,并将修改后的容器创建请求返回给API服务。
上述方案中,容器的网络通信卸载到数据处理器中进行,因此,从节点可以集中处理与业务相关事务,而不用再关注与业务无关的容器的网络传输,从而提高了从节点的有效利用率。而且,网络注解和设备资源都是自动注入到容器创建请求中的,从节点根据网络注解和设备资源创建容器,就能够就能使用数据处理器来为容器提供通信,用户全程并不感知。
参见图8,图8是本申请提供的一种计算设备的结构示意图。如图8所示,该计算设备400包括:一个或者多个处理单元410、通信接口420以及存储器430。
所述处理单元410、通信接口420以及存储器430通过总线440相互连接。可选地,该计算设备400还可以包括输入/输出接口450,输入/输出接口450连接有输入/输出设备,用于接收用户设置的参数等。该计算设备400能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理单元410还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备400执行各种操作的具体实现可参照上述实施例中的具体细节,如处理单元410用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备400可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口420具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理单元410具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图8的计算设备400可以包括一个或者多个处理单元410,并且多个处理单元410可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理单元410可以构成处理器序列或者处理器阵列,或者多个处理单元410之间可以分成主处理器和辅助处理器,或者多个处理单元410之间可以具有不同的架构如采用异构计算架构。另外,图8所示的计算设备400,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备400可以包括比图8所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理单元410可以有多种具体实现形式,例如处理单元410可以包括中央处理器(central processingunit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-networkprocessing unit,NPU)、张量处理器(tensor processing unit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理单元410还可以是单核处理器或多核处理器。处理单元410可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,ASIC),可编程逻辑器件(programmable logicdevice,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理单元410也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口420可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器430可以是非易失性存储器,例如,只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。存储器430也可以是易失性存储器,易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledatarate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器430也可用于存储程序代码和数据,以便于处理单元410调用存储器430中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备400可能包含相比于图8展示的更多或者更少的组件,或者有不同的组件配置方式。
总线440可以是快捷外设部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherentinterconnect for accelerators,CCIX)等。总线440可以分为地址总线、数据总线、控制总线等。总线440除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行上述方法实施例中的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网络站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、微波等)方式向另一个网络站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,也可以是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD等)、或者半导体介质(例如固态硬盘)等等。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
Claims (9)
1.一种自动注入系统,其特征在于,包括主节点、从节点以及数据处理器,所述主节点和所述从节点之间能够进行通讯,所述数据处理器和所述从节点之间通过外部设备快速互联接口进行连接,
所述主节点用于接收用户输入的容器创建请求,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求;
所述数据处理器用于提供容器进行通信的硬件逻辑;
所述从节点用于接收主节点发送的修改后的容器创建请求,并根据修改后的容器创建请求在所述从节点中创建容器,其中,所述容器使用所述数据处理器的网络接口进行网络通讯,所述网络接口是所述从节点根据网络注解以及设备资源插入到所述容器中的;
所述主节点包括应用程序接口服务以及自动注入单元,
所述应用程序接口服务用于接收用户输入的容器创建请求;
所述自动注入单元用于拦截所述容器创建请求,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求;
所述自动注入单元用于在监听到用户触发自动注入网络事件的情况下,创建第一自动注入网络或者第二自动注入网络,所述第一自动注入网络包括网络注解以及设备资源,并且,所述第一自动注入网络应用于名空间,第二自动注入网络包括网络注解以及设备资源,并且,所述第二自动注入网络应用于全局,所述名空间的覆盖范围小于所述全局的覆盖范围,所述第一自动注入网络的优先级别高于所述第二自动注入网络的优先级别;在监听到用户触发网络连接定义事件的情况下,创建第三自动注入网络,所述第三自动注入网络包括网络注解以及设备资源,并且,所述第三自动注入网络应用于所述全局,所述第二自动注入网络的优先级别高于所述第三自动注入网络的优先级别。
2.根据权利要求1所述的系统,其特征在于,
所述自动注入单元用于在存在所述第一自动注入网络的时候,将名第一自动注入网络添加到容器创建请求中,得到修改后的容器创建请求;在不存在所述第一自动注入网络,但是,存在所述第二自动注入网络的情况下,将所述第二自动注入网络添加到容器创建请求中,得到修改后的容器创建请求;在不存在所述第一自动注入网络以及第二自动注入网络,但是,存在所述第三自动注入网络的情况下,将所述第三自动注入网络添加到容器创建请求中,得到修改后的容器创建请求。
3.根据权利要求1所述的系统,其特征在于,
所述主节点用于接收用户输入的容器创建请求,在根据所述容器创建请求中携带的容器的网络类型确定为不使用主机网络的情况下,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求。
4.根据权利要求1所述的系统,其特征在于,
所述主节点用于接收用户输入的容器创建请求,在所述容器创建请求中没有携带网络注解以及设备资源的情况下,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求。
5.根据权利要求1或2所述的系统,其特征在于,
所述应用程序接口服务用于挂载所述自动注入单元的网络回调服务,其中,所述网络回调服务用于拦截所述应用程序接口服务接收到的容器创建请求,并将容器创建请求发送给所述自动注入单元进行处理。
6.一种自动注入方法,其特征在于,应用于自动注入系统,所述自动注入系统包括主节点、从节点以及数据处理器,所述主节点和所述从节点之间能够进行通讯,所述数据处理器和所述从节点之间通过外部设备快速互联接口进行连接,
所述主节点接收用户输入的容器创建请求,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求;
所述数据处理器提供容器进行通信的硬件逻辑;
所述从节点接收主节点发送的修改后的容器创建请求,并根据修改后的容器创建请求在所述从节点中创建容器,其中,所述容器使用所述数据处理器的网络接口进行网络通讯,所述网络接口是所述从节点根据网络注解以及设备资源插入到所述容器中的;
所述主节点接收用户输入的容器创建请求,拦截所述容器创建请求,将网络注解以及设备资源添加到所述容器创建请求中,得到修改后的容器创建请求,在监听到用户触发自动注入网络事件的情况下,创建第一自动注入网络或者第二自动注入网络,所述第一自动注入网络包括网络注解以及设备资源,并且,所述第一自动注入网络应用于名空间,第二自动注入网络包括网络注解以及设备资源,并且,所述第二自动注入网络应用于全局,所述名空间的覆盖范围小于所述全局的覆盖范围,所述第一自动注入网络的优先级别高于所述第二自动注入网络的优先级别;在监听到用户触发网络连接定义事件的情况下,创建第三自动注入网络,所述第三自动注入网络包括网络注解以及设备资源,并且,所述第三自动注入网络应用于所述全局,所述第二自动注入网络的优先级别高于所述第三自动注入网络的优先级别。
7.一种计算设备,其特征在于,包括:处理器以及存储器,其中,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如权利要求6所述的方法。
8.一种计算集群,其特征在于,包括多个计算设备,其中,每个计算设备包括处理器以及存储器,所述存储器用于存储指令,所述处理器用于运行所述存储器中的指令,以执行如权利要求6所述的方法。
9.一种计算机可读存储介质,其特征在于,包括指令,所述指令被计算设备执行时,执行如权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010703.6A CN117519911B (zh) | 2024-01-04 | 2024-01-04 | 自动注入系统、方法、设备、集群以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010703.6A CN117519911B (zh) | 2024-01-04 | 2024-01-04 | 自动注入系统、方法、设备、集群以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117519911A CN117519911A (zh) | 2024-02-06 |
CN117519911B true CN117519911B (zh) | 2024-04-19 |
Family
ID=89753429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410010703.6A Active CN117519911B (zh) | 2024-01-04 | 2024-01-04 | 自动注入系统、方法、设备、集群以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519911B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577538A (zh) * | 2017-10-23 | 2018-01-12 | 中国联合网络通信集团有限公司 | 容器资源管理方法及系统 |
WO2020233037A1 (zh) * | 2019-05-20 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置及存储介质 |
CN116800616B (zh) * | 2023-08-25 | 2023-11-03 | 珠海星云智联科技有限公司 | 虚拟化网络设备的管理方法及相关装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417065B2 (en) * | 2016-06-13 | 2019-09-17 | Dynatrace Llc | Method and system for automated agent injection in container environments |
CN113656147B (zh) * | 2021-08-20 | 2023-03-31 | 北京百度网讯科技有限公司 | 一种集群部署方法、装置、设备及存储介质 |
-
2024
- 2024-01-04 CN CN202410010703.6A patent/CN117519911B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577538A (zh) * | 2017-10-23 | 2018-01-12 | 中国联合网络通信集团有限公司 | 容器资源管理方法及系统 |
WO2020233037A1 (zh) * | 2019-05-20 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置及存储介质 |
CN116800616B (zh) * | 2023-08-25 | 2023-11-03 | 珠海星云智联科技有限公司 | 虚拟化网络设备的管理方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
微服务跨容器通信框架设计与实现;林中虎;万方数据;20230822;1-56 * |
Also Published As
Publication number | Publication date |
---|---|
CN117519911A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10292044B2 (en) | Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods | |
US6336177B1 (en) | Method, system and computer program product for managing memory in a non-uniform memory access system | |
US8881151B2 (en) | Control of Java resource runtime usage | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
KR102072727B1 (ko) | 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 시스템 및 방법 | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
KR102184512B1 (ko) | 관리 방법 및 디바이스 | |
JP6293306B2 (ja) | クラウドアプリケーション処理方法、クラウドアプリケーションデプロイメント方法、並びに関係する装置及びシステム | |
CN109614167B (zh) | 一种管理插件的方法和系统 | |
CN114374696A (zh) | 一种容器负载均衡方法、装置、设备及存储介质 | |
US8027817B2 (en) | Simulation management within a grid infrastructure | |
CN116805946A (zh) | 一种消息请求处理方法、装置、电子设备及存储介质 | |
CN117519911B (zh) | 自动注入系统、方法、设备、集群以及介质 | |
CN114615268B (zh) | 基于Kubernetes集群的服务网络、监控节点、容器节点及设备 | |
Geyer et al. | Working with Disaggregated Systems. What are the Challenges and Opportunities of RDMA and CXL? | |
CN116954810A (zh) | 容器应用实例的创建方法、系统、存储介质及程序产品 | |
CN115268909A (zh) | 一种web前端创建并运行构建任务的方法、系统和终端 | |
CN115562887A (zh) | 基于数据组包的核间数据通信方法、系统、设备及介质 | |
CN114546648A (zh) | 任务处理方法及任务处理平台 | |
Herlicq et al. | Nextgenemo: an efficient provisioning of edge-native applications | |
CN115016862A (zh) | 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质 | |
Byun et al. | DynaGrid: A dynamic service deployment and resource migration framework for WSRF-compliant applications | |
US20230315541A1 (en) | Tightly coupled parallel applications on a serverless computing system | |
US20230315543A1 (en) | Tightly coupled parallel applications on a serverless computing system | |
US20220239566A1 (en) | Method and system for optimizing placement of software components of a cloud service |
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 |