CN114826906A - 流量控制方法、装置、电子设备及存储介质 - Google Patents
流量控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114826906A CN114826906A CN202210384282.4A CN202210384282A CN114826906A CN 114826906 A CN114826906 A CN 114826906A CN 202210384282 A CN202210384282 A CN 202210384282A CN 114826906 A CN114826906 A CN 114826906A
- Authority
- CN
- China
- Prior art keywords
- container
- sidecar
- service
- network space
- identifier
- 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
Links
Images
Classifications
-
- 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
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种流量控制方法、装置、电子设备及存储介质,属于流量处理技术领域。流量控制方法应用于Sidecar容器所在的宿主机,包括:接收针对所述Sidecar容器的流量停止接管信息,所述流量停止接管信息为检测设备在检测到所述Sidecar容器不可用的情况下向所述宿主机发送;删除所述Sidecar容器的网络空间内的防火墙规则。
Description
技术领域
本发明涉及流量处理技术领域,特别是涉及一种流量控制方法、装置、电子设备及存储介质。
背景技术
近年来,服务网络(Service Mesh)作为新一代微服务架构逐渐兴起。ServiceMesh体系为容器应用模式,其包括多个运行于宿主机的服务容器以及Sidecar容器。其中,服务容器用于提供一种或多种微服务。每个服务容器均对应一个Sidecar容器,且服务容器与其对应的Sidecar容器共享网络空间(Network Namespace)。sidecar容器用于接管与其对应的服务容器的所有进出流量。
然而,由于服务容器和其对应的Sidecar容器运行于两个不同的进程。因此,若Sidecar容器不可用,则即使服务容器可用也会因Sidecar容器拦截了访问服务容器的流量,导致服务容器无法向外提供服务,也无法访问服务容器可调用的其他服务容器,进而导致服务调用失败。
目前在Sidecar容器不可用时,通常采用人为操作控制Sidecar容器停止运行的方式,以避免Sidecar容器拦截访问服务容器的流量,保障服务调用。但这种人为操作的方式效率较低。
发明内容
本发明实施例的目的在于提供一种流量控制方法、装置、电子设备及存储介质,以避免了运行的Sidecar容器利用网络空间内的防火墙规则对进出服务容器的流量进行拦截,清除了sidecar容器对进出服务容器的流量的拦截功能,更为高效地保障了服务容器所提供服务的调用稳定性和调用可靠性。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种流量控制方法,应用于Sidecar容器所在的宿主机,所述方法包括:
接收针对所述Sidecar容器的流量停止接管信息,所述流量停止接管信息为检测设备在检测到所述Sidecar容器不可用的情况下向所述宿主机发送;
删除所述Sidecar容器的网络空间内的防火墙规则。
可选的,所述流量停止接管信息包括:所述Sidecar容器对应的服务容器的容器标识;在所述删除所述Sidecar容器的网络空间内的防火墙规则之前,所述方法还包括:
基于所述容器标识,查询所述服务容器所在进程的进程身份标识PID;
所述删除所述Sidecar容器的网络空间内的防火墙规则,包括:
基于所述PID,查询所述网络空间的第一地址标识;
删除在所述第一地址标识指示的网络空间内的防火墙规则。
可选的,所述流量停止接管信息包括:所述服务容器的部分容器标识;所述基于所述容器标识,查询所述服务容器所在进程的进程身份标识PID,包括:
获取所述宿主机运行的所有服务容器的容器标识;
将所述所有服务容器的容器标识中,内容包括所述部分容器标识的容器标识作为目标容器标识;
查询所述目标容器标识所在进程的PID。
可选的,所述删除在所述第一地址标识指示的网络空间内的防火墙规则,包括:
执行针对所述第一地址标识的进入命令;
获取当前进程所进入的网络空间的第二地址标识;
在确定所述第二地址标识与所述第一地址标识相同的情况下,执行所述防火墙规则的清除指令。
可选的,所述防火墙规则包括iptables规则,所述防火墙规则的清除指令,包括:
所述iptables规则的各功能表格的清除指令,以及针对自定义数据包过滤规则的清除指令。
可选的,所述方法还包括:
接收针对所述Sidecar容器的流量接管信息,所述流量接管信息为所述检测设备在检测到所述Sidecar容器恢复可用的情况下向所述宿主机发送;
重启所述Sidecar容器以及对应的服务容器,以在所述网络空间中重新加载所述防火墙规则。
可选的,所述Sidecar容器不可用,包括:
所述Sidecar容器的内存的剩余容量小于设定容量阈值;
所述Sidecar容器的中央处理器满载;
上游设备接收到的响应信息为指示Sidecar容器不可用的信息,所述上游设备调用所述Sidecar容器对应的服务容器所提供的服务。
在本发明实施的第二方面,还提供了一种流量控制装置,应用于Sidecar容器所在的宿主机,所述装置包括:
接收模块,用于接收针对所述Sidecar容器的流量停止接管信息,所述流量停止接管信息为检测设备在检测到所述Sidecar容器不可用的情况下向所述宿主机发送;
删除模块,用于删除所述Sidecar容器的网络空间内的防火墙规则。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的流量控制方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的流量控制方法。
本申请实施例提供的流量控制方法、装置、电子设备及存储介质,在接收到检测设备针对Sidecar容器不可用的情况下发送的流量停止接管信息后,通过删除Sidecar容器的网络空间内的防火墙规则,避免了运行的Sidecar容器利用网络空间内的防火墙规则对进出服务容器的流量进行拦截,清除了sidecar容器对进出服务容器的流量的拦截功能,保障了服务调用,实现了流量降级。相较于相关技术中,需要人为操作控制Sidecar容器停止运行,以避免Sidecar容器拦截访问服务容器的流量的方式,更为高效地保障了服务容器所提供服务的调用稳定性和调用可靠性。并且,避免了人为为了可修改Sidecar容器的防火墙规则,而强制开放Sidecar容器的防火墙规则的修改权限所引入的Sidecar容器运行安全的问题,进一步保障了服务容器所提供服务的安全调用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种流量控制方法的流程图。
图2为本申请实施例提供的另一种流量控制方法的流程图。
图3为本申请实施例提供的一种流量控制装置的框图。
图4为本申请实施例提供的一种电子设备的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
近年来,服务网络(Service Mesh)作为新一代微服务架构逐渐兴起。ServiceMesh体系为容器应用模式,其包括多个运行于宿主机的服务容器以及Sidecar容器。其中,服务容器用于提供一种或多种微服务。每个服务容器均对应一个Sidecar容器,且服务容器与其对应的Sidecar容器共享网络空间。sidecar容器用于接管与其对应的服务容器的所有进出流量。
在对Sidecar容器进行初始化的过程中会在Sidecar容器的网络空间内写入防火墙规则,以便于通过Sidecar容器运行防火墙规则,实现针对进入服务容器的流量的监测、过滤拦截等功能。
请参考图1,其示出了本申请实施例提供的一种流量控制方法的流程图。该流量控制方法可以应用于Sidecar容器所在的宿主机。可选的,宿主机可以为服务器、个人电脑、手机或者可穿戴设备等电子设备。其中,宿主机运行的系统可以为安卓系统或者IOS系统。如图1所示,流量控制方法包括:
步骤101、接收针对Sidecar容器的流量停止接管信息,流量停止接管信息为检测设备在检测到Sidecar容器不可用的情况下向宿主机发送。
本申请实施例中,检测设备在检测到Sidecar容器不可用的情况下可以向Sidecar容器所在的宿主机发送流量停止接管信息。其中,检测设备可以为宿主机,或者,检测设备可以为用于检测Sidecar容器运行状态的第三方设备。可选的,在检测设备为第三方设备的情况下,检测设备可以为服务器、个人电脑或者手机等电子设备。
可选的,Sidecar容器不可用可以包括但不限于以下几种情况:Sidecar容器的内存的剩余容量小于设定容量阈值。或者,Sidecar容器的中央处理器(central processingunit,CPU)满载。或者,上游设备接收到的响应信息为指示Sidecar容器不可用的信息,上游设备调用Sidecar容器对应的服务容器所提供的服务。
基于此,检测设备可以执行以下至少一种检测处理,以在确定Sidecar容器不可用的情况下,向宿主机发送针对Sidecar容器的流量停止接管信息。其中,检测处理包括:检测设备检测Sidecar容器所在宿主机中,Sidecar容器的网络空间的剩余容量,在剩余容量小于设定容量阈值的情况下,确定Sidecar容器不可用;检测设备检测Sidecar容器所在宿主机的CPU的运行情况,在CPU处于满载时,确定Sidecar容器不可用;检测设备可以在检测到Sidecar容器对应的服务容器被调用时,检测上游设备接收到的响应信息。在该响应信息的内容为指示Sidecar容器不可用的情况下,确定Sidecar容器不可用。
步骤102、删除Sidecar容器的网络空间内的防火墙规则。
可选的,宿主机可以获取Sidecar容器的网络空间的地址标识,从地址标识指示的存储空间中删除防火墙规则。防火墙规则为Sidecar容器进行初始化的过程中在Sidecar容器的网络空间内写入的。Sidecar容器运行防火墙规则,可以实现针对进入与Sidecar容器对应的服务容器的流量进行监测、过滤拦截等功能。
综上所述,本申请实施例提供的流量控制方法,在接收到检测设备针对Sidecar容器不可用的情况下发送的流量停止接管信息后,通过删除Sidecar容器的网络空间内的防火墙规则,避免了运行的Sidecar容器利用网络空间内的防火墙规则对进出服务容器的流量进行拦截,清除了sidecar容器对进出服务容器的流量的拦截功能,保障了服务调用,实现了流量降级。相较于相关技术中,需要人为操作控制Sidecar容器停止运行,以避免Sidecar容器拦截访问服务容器的流量的方式,更为高效地保障了服务容器所提供服务的调用稳定性和调用可靠性。并且,避免了人为为了可修改Sidecar容器的防火墙规则,而强制开放Sidecar容器的防火墙规则的修改权限所引入的Sidecar容器运行安全的问题,进一步保障了服务容器所提供服务的安全调用。
请参考图2,其示出了本申请实施例提供的另一种流量控制方法的流程图。该流量控制方法可以应用于Sidecar容器所在的宿主机。可选的,宿主机可以为服务器、个人电脑、手机或者可穿戴设备等电子设备。其中,宿主机运行的系统可以为安卓系统或者IOS系统。如图2所示,流量控制方法包括:
步骤201、接收针对Sidecar容器的流量停止接管信息,流量停止接管信息为检测设备在检测到Sidecar容器不可用的情况下向宿主机发送。
本申请实施例中,检测设备在检测到Sidecar容器不可用的情况下可以向Sidecar容器所在的宿主机发送流量停止接管信息。其中,检测设备可以为宿主机,或者,检测设备可以为用于检测Sidecar容器运行状态的第三方设备。可选的,在检测设备为第三方设备的情况下,检测设备可以为服务器、个人电脑或者手机等电子设备。
可选的,Sidecar容器不可用可以包括但不限于以下几种情况:Sidecar容器的内存的剩余容量小于设定容量阈值。或者,Sidecar容器的CPU满载。或者,上游设备接收到的响应信息为指示Sidecar容器不可用的信息,上游设备调用Sidecar容器对应的服务容器所提供的服务。
基于此,检测设备可以执行以下至少一种检测处理,以在确定Sidecar容器不可用的情况下,向宿主机发送针对Sidecar容器的流量停止接管信息。其中,检测处理包括:检测设备检测Sidecar容器所在宿主机中,Sidecar容器的网络空间的剩余容量,在剩余容量小于设定容量阈值的情况下,确定Sidecar容器不可用;检测设备检测Sidecar容器所在宿主机的CPU的运行情况,在CPU处于满载时,确定Sidecar容器不可用;检测设备可以在检测到Sidecar容器对应的服务容器被调用时,检测上游设备接收到的响应信息。在该响应信息的内容为指示Sidecar容器不可用的情况下,确定Sidecar容器不可用。
本申请实施例中,检测设备检测的Sidecar容器的数量可以为多个。可选的,流量停止接管信息可以包括:与不可用的Sidecar容器对应的服务容器的容器标识。其中,容器标识可以包括容器身份标识号(Identity document,id)和/或容器名称(NAMES)。示例的,服务容器的容器标识可以为服务容器的容器标识的至少部分内容。例如,服务容器的容器标识的全部内容,即完整容器标识。或者,服务容器的容器标识的部分内容,即部分容器标识。
步骤202、基于容器标识,查询服务容器所在进程的进程身份标识。
在一种可选的实现方式中,宿主机可以存储有服务容器的容器标识与服务容器所在进程的进程身份标识(Process Identification,PID)的对应关系。宿主机可以根据服务容器的容器标识,从该对应关系中查找与容器标识对应的PID。在另一种可选的实现方式中,宿主机可以执行针对容器标识的进程身份标识查询指令,以查询到服务容器所在进程的PID。示例的,假设服务容器的容器标识为web。针对容器标识的进程身份标识查询指令可以为dockerinspect-f'{{.State.Pid}}'web.。宿主机在执行完成针对容器标识的进程身份标识查询指令后得到服务容器所在进程的PID为9834。
需要说明的是,在流量停止接管信息包括服务容器的部分容器标识的情况下,即流量停止接管信息包括服务容器的容器标识的部分内容的情况下,宿主机基于容器标识,查询服务容器所在进程的进程身份标识PID的过程可以包括以下步骤S2021至步骤S2023。
步骤2021、获取宿主机运行的所有服务容器的容器标识。
可选的,宿主机可以执行所有容器的容器标识的查询指令,该查询指令用于获取宿主机当前运行的所有服务容器的容器标识。示例的,在容器标识包括容器ID和容器名称的情况下,假设宿主机运行的所有服务容器包括:第一服务容器和第二服务容器。查询指令可以为docker ps--format'{{.ID}}{{.Names}}'.,即按照容器标识为容器ID和容器名称的格式,获取所有服务容器的容器标识。宿主机在执行查询指令后得到第一服务容器的容器ID和容器名称依次为:1201281cb959、web;第二服务容器的容器ID和容器名称依次为:425a6234df74、db。
步骤2022、将所有服务容器的容器标识中,内容包括部分容器标识的容器标识作为目标容器标识。
本申请实施例中,宿主机可以遍历所有服务容器的容器标识,并将各服务容器的容器标识与该部分容器标识进行匹配处理,得到内容包括部分容器标识的容器标识。将该内容包括部分容器标识的容器标识作为目标容器标识。继续以步骤2021所示的示例为例,假设流量停止接管信息包括的部分容器标识为web。宿主机分别将第一服务容器和第二服务容器的容器标识与部分容器标识进行匹配处理,将第一服务容器的容器标识(web)作为目标容器标识。
步骤2023、查询目标容器标识所在进程的PID。
在一种可选的实现方式中,宿主机可以存储有服务容器的容器标识与服务容器所在进程的PID的对应关系。宿主机可以根据目标容器标识,从该对应关系中查找与目标容器标识对应的PID。在另一种可选的实现方式中,宿主机可以执行针对目标容器标识的进程身份标识查询指令,以查询到目标容器标识指示的服务容器所在进程的PID。示例的,假设目标容器标识为web。针对目标容器标识的进程身份标识查询指令可以为docker inspect-f'{{.State.Pid}}'web.。宿主机在执行完成针对目标容器标识的进程身份标识查询指令后得到服务容器所在进程的PID为9834。
步骤203、基于进程身份标识,查询网络空间的第一地址标识。
在一种可选的实现方式中,宿主机可以存储有PID和网络空间的第一地址标识的对应关系。宿主机可以根据PID从该对应关系中查找到与PID对应的第一地址标识。在另一种可选的实现方式中,宿主机可以执行针对PID对应的网络空间的第一地址标识的地址查询指令,以查询到PID对应的网络空间的第一地址标识。示例的,假设不可用的服务容器的容器标识为web,web所指示服务容器所在的进程的PID为9834。针对PID对应的网络空间的第一地址标识的地址查询指令可以为ls/proc/9834/ns/net-l。宿主机在执行完成针对PID对应的网络空间的第一地址标识的地址查询指令后,得到响应信息:lrwxrwxrwx 1rootroot 0Jul 1414:01/proc/9834/ns/net->net:[4026532243],获取PID对应的网络空间的第一地址标识为4026532243。
步骤204、删除在第一地址标识指示的网络空间内的防火墙规则。
可选的,宿主机删除在第一地址标识指示的网络空间内的防火墙规则的过程可以包括以下步骤2041至步骤2043。
步骤2041、执行针对第一地址标识的进入命令。
本申请实施例中,针对第一地址标识的进入命令可以为基于PID的进入命令。该进入命令用于宿主机打开PID对应的网络空间,即不可用的Sidecar容器和服务容器共享的网络空间。示例的,假设PID为9834,进入命令可以为nsenter-t 9834-n/bin/sh。宿主机在执行完成针对第一地址标识的进入命令后打开PID对应的网络空间。
步骤2042、获取当前进程所进入的网络空间的第二地址标识。
可选的,宿主机可以执行当前进程对应的网络空间的第二地址标识的地址查询指令,以查询到当前进程对应的网络空间的第二地址标识。示例的,当前进程对应的网络空间的第二地址标识的地址查询指令可以为ls/proc/$$/ns/net-l。宿主机执行完成该地址查询指令后得到响应信息:lrwxrwxrwx 1rootroot 0Jul 1415:11/proc/2425/ns/net->mnt:[4026532243],获取第二地址标识为4026532243。
步骤2043、在确定第二地址标识与第一地址标识相同的情况下,执行防火墙规则的清除指令。
本申请实施例中,宿主机可以比较第一地址标识和第二地址标识的大小。在第一地址标识和第二地址标识相等时,确定第一地址标识和第二地址标识相同。则宿主机可以执行防火墙规则的清楚指令。在第一地址标识和第二地址标识不相等时,确定第一地址标识和第二地址标识不同。则宿主机可以不执行防火墙规则的清楚指令。这样,在执行针对第一地址标识的进入指令,以打开PID对应的网络空间后,通过比较当前进程所进入的网络空间的第二地址标识和PID对应的网络空间的第一地址标识是否相同,以验证是否进入的不可用的Sidecar容器的网络空间。保障后续删除的防火墙规则为不可用的Sidecar容器所运行的防火墙规则,提高不可用的sidecar容器对服务容器的进出流量的拦截功能的清楚效率,进一步保障服务容器的调用稳定性。
可选的,防火墙规则可以包括iptables规则。iptables规则主要用于过滤Sidecar容器传输的数据包。其中,iptables规则包括提供特定功能的四个功能表(table),该四个功能表分别为filter表、nat表、mangle表和raw表。四个功能表分别用于实现数据包过滤,数据包传输地址转换、数据包重构和数据跟踪处理。基于此,防火墙规则的清除指令可以包括:iptables规则的各功能表格的清除指令。在一种可选地实现方式中,防火墙规则还可以包括:自定义数据包过滤规则。自定义数据包过滤规则指的是指的是用户自定义地用于过滤数据包的规则。基于此,防火墙规则的清除指令可以包括:iptables规则的各功能表格的清除指令以及针对自定义数据包过滤规则的清除指令。在另一种可选地实现方式中,防火墙规则还可以包括:用户配置的自定义规则。防火墙规则的清除指令可以包括:iptables规则的各功能表格的清除指令以及所有自定义规则的清除指令。
示例的,防火墙规则的清除指令包括:开放输入端指令、开放中转端指令、开放输出端指令、清除NAT表中规则的指令、清除mangle表中规则的指令、清除所有功能表中规则的指令、清除所有用户配置的自定义规则的指令。其中,开放输入端指令为iptables-PINPUTACCEPT;开放中转端指令为iptables-P FORWARDACCEPT;开放输出端指令为iptables-P OUTPUTACCEPT;清除NAT表中规则的指令为iptables-t nat–F;清除mangle表中规则的指令为iptables-t mangle–F;清除所有功能表中规则的指令为iptables–F;清除所有用户配置的自定义规则的指令为iptables–X。
步骤205、接收针对Sidecar容器的流量接管信息,流量接管信息为检测设备在检测到Sidecar容器恢复可用的情况下向宿主机发送。
本申请实施例中,检测设备在再次检测到Sidecar容器可用的情况下向宿主机发送流量接管信息,以使得宿主机接收到针对Sidecar容器的流量接管信息,确定Sidecar容器可用。
可选的,与前述步骤201中检测设备确定Sidecar容器不可用的过程相对应的是,检测处理还包括:在剩余容量大于或者等于设定容量阈值的情况下,确定Sidecar容器恢复可用;在CPU不处于满载时,确定Sidecar容器恢复可用;在该响应信息的内容不为指示Sidecar容器不可用的情况下,确定Sidecar容器恢复可用。本申请实施例中,在检测设备检测的Sidecar容器的数量为多个的情况下,流量接管信息包括与恢复可用的Sidecar容器对应的服务容器的容器标识。
步骤206、重启Sidecar容器以及对应的服务容器,以在网络空间中重新加载防火墙规则。
本申请实施例中,宿主机分别可以执行针对Sidecar容器和对应的服务容器的重启指令,以在网络空间中重新加载防火墙规则。可选的,重启指令可以为kubectl deletepod{podName},podNam为Sidecar容器的容器名称。
本申请实施例中,在接收到检测设备针对Sidecar容器不可用的情况下发送的流量停止接管信息后,通过删除Sidecar容器的网络空间内的防火墙规则,避免了运行的Sidecar容器利用网络空间内的防火墙规则对进出服务容器的流量进行拦截,清除了sidecar容器对进出服务容器的流量的拦截功能,保障了服务调用,实现了流量降级。相较于相关技术中,需要人为操作控制Sidecar容器停止运行,以避免Sidecar容器拦截访问服务容器的流量的方式,更为高效地保障了服务容器所提供服务的调用稳定性和调用可靠性。并且,避免了人为为了可修改Sidecar容器的防火墙规则,而强制开放Sidecar容器的防火墙规则的修改权限所引入的Sidecar容器运行安全的问题,进一步保障了服务容器所提供服务的安全调用。
示例的,本申请实施例以容器标识为容器名称和容器ID,且不可用的Sidecar容器的容器名称为web为例,对本申请实施例提供的流量控制方法进行进一步示例性说明。
宿主机在接收到针对不可用的Sidecar容器的流量停止接管信息后,执行所有容器的容器标识的查询指令dockerps--format'{{.ID}}{{.Names}}'.,以获取宿主机运行的所有服务容器的容器标识:第一服务容器的容器ID1201281cb959、第一服务容器的容器名称web;第二服务容器的容器ID425a6234df74、第二服务容器的容器名称db。
宿主机确定内容包括部分容器标识的目标容器名称为web。宿主机根据目标容器名称web,执行针对目标容器名称的进程身份标识查询指令docker inspect-f'{{.State.Pid}}'web.,获取目标容器名称指示的服务容器所在进程的PID为9834。
宿主机执行当前进程对应的网络空间的第三地址标识的地址查询指令ls/proc/$$/ns/net-l,得到响应信息:lrwxrwxrwx 1root root 0Jul 1415:06/proc/3968/ns/net->net:[4026531840]。宿主机基于目标容器名称指示的服务容器所在进程的PID,执行针对PID对应的网络空间的第一地址标识的地址查询指令ls/proc/9834/ns/net-l,得到响应信息:lrwxrwxrwx 1rootroot 0Jul 1414:01/proc/9834/ns/net->net:[4026532243],获取PID对应的网络空间的第一地址标识为4026532243。宿主机基于PID执行针对第一地址标识的进入命令nsenter-t9834-n/bin/sh,以进入PID对应的网络空间。宿主机执行当前进程对应的网络空间的第二地址标识的地址查询指令ls/proc/$$/ns/net-l,得到响应信息:lrwxrwxrwx 1root root 0Jul 1415:11/proc/9834/ns/net->mnt:[4026532243],获取第二地址标识为4026532243。
宿主机可以执行针对iptables规则的查看指令iptables-tnat-L-v,该查看指令用于显示当前进入的网络空间中iptables规则。宿主机在执行完成该查看指令,得到网络空间中iptables规则。
宿主机执行开放输入端指令iptables-P INPUTACCEPT、开放中转端指令iptables-PFORWARDACCEPT、开放输出端指令iptables-P OUTPUTACCEPT、清除NAT表中规则的指令iptables-t nat–F、清除mangle表中规则的指令iptables-t mangle–F、清除所有功能表中规则的指令iptables–F以及清除所有用户配置的自定义规则的指令iptables–X。
宿主机可以再次执行针对iptables规则的查看指令iptables-tnat-L-v,以确定网络空间中是否存在iptables规则。在确定网络空间中不存在iptables规则,即成功清除网络空间中iptables规则后,不可用的Sidecar容器对应的服务容器可以直接接收到上游设备发送的针对该服务容器的服务调用请求,以为上游设备提供服务。
综上所述,本申请实施例提供的流量控制方法,在接收到检测设备针对Sidecar容器不可用的情况下发送的流量停止接管信息后,通过删除Sidecar容器的网络空间内的防火墙规则,避免了运行的Sidecar容器利用网络空间内的防火墙规则对进出服务容器的流量进行拦截,清除了sidecar容器对进出服务容器的流量的拦截功能,保障了服务调用,实现了流量降级。相较于相关技术中,需要人为操作控制Sidecar容器停止运行,以避免Sidecar容器拦截访问服务容器的流量的方式,更为高效地保障了服务容器所提供服务的调用稳定性和调用可靠性。并且,避免了人为为了可修改Sidecar容器的防火墙规则,而强制开放Sidecar容器的防火墙规则的修改权限所引入的Sidecar容器运行安全的问题,进一步保障了服务容器所提供服务的安全调用。
请参考图3,其示出了本申请实施例提供的一种流量控制装置的框图。流量控制装置可以应用于Sidecar容器所在的宿主机。如图3所示,流量控制装置300可以包括:接收模块301和删除模块302。
接收模块301,用于接收针对Sidecar容器的流量停止接管信息,流量停止接管信息为检测设备在检测到Sidecar容器不可用的情况下向宿主机发送;
删除模块302,用于删除Sidecar容器的网络空间内的防火墙规则。
可选的,流量停止接管信息包括:Sidecar容器对应的服务容器的容器标识;流量控制装置300还可以包括:查询模块,用于基于容器标识,查询服务容器所在进程的进程身份标识PID。
删除模块302,还用于:
基于PID,查询网络空间的第一地址标识;
删除在第一地址标识指示的网络空间内的防火墙规则。
可选的,流量停止接管信息包括:服务容器的部分容器标识;删除模块302,还用于:
获取宿主机运行的所有服务容器的容器标识;
将所有服务容器的容器标识中,内容包括部分容器标识的容器标识作为目标容器标识;
查询目标容器标识所在进程的PID。
可选的,删除模块302,还用于:
执行针对第一地址标识的进入命令;
获取当前进程所进入的网络空间的第二地址标识;
在确定第二地址标识与第一地址标识相同的情况下,执行防火墙规则的清除指令。
可选的,防火墙规则包括iptables规则,防火墙规则的清除指令,包括:iptables规则的各功能表格的清除指令,以及针对自定义数据包过滤规则的清除指令。
可选的,接收模块301,还用于接收针对Sidecar容器的流量接管信息,流量接管信息为检测设备在检测到Sidecar容器恢复可用的情况下向宿主机发送;
流量控制装置300还可以包括:重启模块,用于重启Sidecar容器以及对应的服务容器,以在网络空间中重新加载防火墙规则。
可选的,Sidecar容器不可用,包括:
Sidecar容器的网络空间的剩余容量小于设定容量阈值;
宿主机的中央处理器CPU满载;
上游设备接收到的响应信息为指示Sidecar容器不可用的信息,上游设备调用Sidecar容器对应的服务容器所提供的服务。
综上所述,本申请实施例提供的流量控制装置,在接收到检测设备针对Sidecar容器不可用的情况下发送的流量停止接管信息后,通过删除Sidecar容器的网络空间内的防火墙规则,避免了运行的Sidecar容器利用网络空间内的防火墙规则对进出服务容器的流量进行拦截,清除了sidecar容器对进出服务容器的流量的拦截功能,保障了服务调用,实现了流量降级。相较于相关技术中,需要人为操作控制Sidecar容器停止运行,以避免Sidecar容器拦截访问服务容器的流量的方式,更为高效地保障了服务容器所提供服务的调用稳定性和调用可靠性。并且,避免了人为为了可修改Sidecar容器的防火墙规则,而强制开放Sidecar容器的防火墙规则的修改权限所引入的Sidecar容器运行安全的问题,进一步保障了服务容器所提供服务的安全调用。
本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现如下步骤:
接收针对所述Sidecar容器的流量停止接管信息,所述流量停止接管信息为检测设备在检测到所述Sidecar容器不可用的情况下向所述宿主机发送;
删除所述Sidecar容器的网络空间内的防火墙规则。
可选的,所述流量停止接管信息包括:所述Sidecar容器对应的服务容器的容器标识;在所述删除所述Sidecar容器的网络空间内的防火墙规则之前,所述方法还包括:
基于所述容器标识,查询所述服务容器所在进程的进程身份标识PID;
所述删除所述Sidecar容器的网络空间内的防火墙规则,包括:
基于所述PID,查询所述网络空间的第一地址标识;
删除在所述第一地址标识指示的网络空间内的防火墙规则。
可选的,所述流量停止接管信息包括:所述服务容器的部分容器标识;所述基于所述容器标识,查询所述服务容器所在进程的进程身份标识PID,包括:
获取所述宿主机运行的所有服务容器的容器标识;
将所述所有服务容器的容器标识中,内容包括所述部分容器标识的容器标识作为目标容器标识;
查询所述目标容器标识所在进程的PID。
可选的,所述删除在所述第一地址标识指示的网络空间内的防火墙规则,包括:
执行针对所述第一地址标识的进入命令;
获取当前进程所进入的网络空间的第二地址标识;
在确定所述第二地址标识与所述第一地址标识相同的情况下,执行所述防火墙规则的清除指令。
可选的,所述防火墙规则包括iptables规则,所述防火墙规则的清除指令,包括:
所述iptables规则的各功能表格的清除指令,以及针对自定义数据包过滤规则的清除指令。
可选的,所述方法还包括:
接收针对所述Sidecar容器的流量接管信息,所述流量接管信息为所述检测设备在检测到所述Sidecar容器恢复可用的情况下向所述宿主机发送;
重启所述Sidecar容器以及对应的服务容器,以在所述网络空间中重新加载所述防火墙规则。
可选的,所述Sidecar容器不可用,包括:
所述Sidecar容器的内存的剩余容量小于设定容量阈值;
所述Sidecar容器的中央处理器满载;
上游设备接收到的响应信息为指示Sidecar容器不可用的信息,所述上游设备调用所述Sidecar容器对应的服务容器所提供的服务。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(RandomAccess Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的流量控制方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的流量控制方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种流量控制方法,其特征在于,应用于Sidecar容器所在的宿主机,所述方法包括:
接收针对所述Sidecar容器的流量停止接管信息,所述流量停止接管信息为检测设备在检测到所述Sidecar容器不可用的情况下向所述宿主机发送;
删除所述Sidecar容器的网络空间内的防火墙规则。
2.根据权利要求1所述的方法,其特征在于,所述流量停止接管信息包括:所述Sidecar容器对应的服务容器的容器标识;在所述删除所述Sidecar容器的网络空间内的防火墙规则之前,所述方法还包括:
基于所述容器标识,查询所述服务容器所在进程的进程身份标识PID;
所述删除所述Sidecar容器的网络空间内的防火墙规则,包括:
基于所述PID,查询所述网络空间的第一地址标识;
删除在所述第一地址标识指示的网络空间内的防火墙规则。
3.根据权利要求2所述的方法,其特征在于,所述流量停止接管信息包括:所述服务容器的部分容器标识;所述基于所述容器标识,查询所述服务容器所在进程的进程身份标识PID,包括:
获取所述宿主机运行的所有服务容器的容器标识;
将所述所有服务容器的容器标识中,内容包括所述部分容器标识的容器标识作为目标容器标识;
查询所述目标容器标识所在进程的PID。
4.根据权利要求2所述的方法,其特征在于,所述删除在所述第一地址标识指示的网络空间内的防火墙规则,包括:
执行针对所述第一地址标识的进入命令;
获取当前进程所进入的网络空间的第二地址标识;
在确定所述第二地址标识与所述第一地址标识相同的情况下,执行所述防火墙规则的清除指令。
5.根据权利要求4所述的方法,其特征在于,所述防火墙规则包括iptables规则,所述防火墙规则的清除指令,包括:
所述iptables规则的各功能表格的清除指令,以及针对自定义数据包过滤规则的清除指令。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对所述Sidecar容器的流量接管信息,所述流量接管信息为所述检测设备在检测到所述Sidecar容器恢复可用的情况下向所述宿主机发送;
重启所述Sidecar容器以及对应的服务容器,以在所述网络空间中重新加载所述防火墙规则。
7.根据权利要求1所述的方法,其特征在于,所述Sidecar容器不可用,包括:
所述Sidecar容器的内存的剩余容量小于设定容量阈值;
所述Sidecar容器的中央处理器CPU满载;
上游设备接收到的响应信息为指示Sidecar容器不可用的信息,所述上游设备调用所述Sidecar容器对应的服务容器所提供的服务。
8.一种流量控制装置,其特征在于,应用于Sidecar容器所在的宿主机,所述装置包括:
接收模块,用于接收针对所述Sidecar容器的流量停止接管信息,所述流量停止接管信息为检测设备在检测到所述Sidecar容器不可用的情况下向所述宿主机发送;
删除模块,用于删除所述Sidecar容器的网络空间内的防火墙规则。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1至7任一所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210384282.4A CN114826906B (zh) | 2022-04-13 | 2022-04-13 | 流量控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210384282.4A CN114826906B (zh) | 2022-04-13 | 2022-04-13 | 流量控制方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114826906A true CN114826906A (zh) | 2022-07-29 |
CN114826906B CN114826906B (zh) | 2023-09-22 |
Family
ID=82535336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210384282.4A Active CN114826906B (zh) | 2022-04-13 | 2022-04-13 | 流量控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114826906B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117834205A (zh) * | 2023-12-13 | 2024-04-05 | 长江信达软件技术(武汉)有限责任公司 | 一种docker容器防火墙配置方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080148382A1 (en) * | 2006-12-15 | 2008-06-19 | International Business Machines Corporation | System, method and program for managing firewalls |
US20190294779A1 (en) * | 2018-03-23 | 2019-09-26 | International Business Machines Corporation | Secure system state extraction software extensibility via plugin sandboxing |
CN111966374A (zh) * | 2020-08-11 | 2020-11-20 | 南京新联电子股份有限公司 | 一种基于容器的能源控制器终端软件部署及管理方法 |
CN112130923A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 容器的管理方法、装置、电子设备及计算机可读存储介质 |
CN113765816A (zh) * | 2021-08-02 | 2021-12-07 | 阿里巴巴新加坡控股有限公司 | 一种基于服务网格的流量控制方法、系统、设备及介质 |
CN113992428A (zh) * | 2021-11-29 | 2022-01-28 | 北京天融信网络安全技术有限公司 | 容器环境下的入侵防御方法及装置、电子设备、存储介质 |
US11245668B1 (en) * | 2019-03-06 | 2022-02-08 | Juniper Networks, Inc. | Critical firewall functionality management |
US20220060398A1 (en) * | 2020-08-24 | 2022-02-24 | T-Mobile Usa, Inc. | Continuous monitoring of containers using monitor containers configured as sidecar containers |
CN114185691A (zh) * | 2021-12-17 | 2022-03-15 | 杭州谐云科技有限公司 | 一种基于Sidecar的UDP组播方法和系统 |
CN114205150A (zh) * | 2021-12-07 | 2022-03-18 | 北京天融信网络安全技术有限公司 | 容器环境的入侵防御方法及装置、电子设备、存储介质 |
CN114254304A (zh) * | 2021-11-30 | 2022-03-29 | 深圳依时货拉拉科技有限公司 | 容器安全入侵检测方法、装置、计算机设备及存储介质 |
CN114338160A (zh) * | 2021-12-29 | 2022-04-12 | 中软信息系统工程有限公司 | 一种程序访问控制方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-13 CN CN202210384282.4A patent/CN114826906B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080148382A1 (en) * | 2006-12-15 | 2008-06-19 | International Business Machines Corporation | System, method and program for managing firewalls |
US20190294779A1 (en) * | 2018-03-23 | 2019-09-26 | International Business Machines Corporation | Secure system state extraction software extensibility via plugin sandboxing |
US11245668B1 (en) * | 2019-03-06 | 2022-02-08 | Juniper Networks, Inc. | Critical firewall functionality management |
CN111966374A (zh) * | 2020-08-11 | 2020-11-20 | 南京新联电子股份有限公司 | 一种基于容器的能源控制器终端软件部署及管理方法 |
CN112130923A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 容器的管理方法、装置、电子设备及计算机可读存储介质 |
US20220060398A1 (en) * | 2020-08-24 | 2022-02-24 | T-Mobile Usa, Inc. | Continuous monitoring of containers using monitor containers configured as sidecar containers |
CN113765816A (zh) * | 2021-08-02 | 2021-12-07 | 阿里巴巴新加坡控股有限公司 | 一种基于服务网格的流量控制方法、系统、设备及介质 |
CN113992428A (zh) * | 2021-11-29 | 2022-01-28 | 北京天融信网络安全技术有限公司 | 容器环境下的入侵防御方法及装置、电子设备、存储介质 |
CN114254304A (zh) * | 2021-11-30 | 2022-03-29 | 深圳依时货拉拉科技有限公司 | 容器安全入侵检测方法、装置、计算机设备及存储介质 |
CN114205150A (zh) * | 2021-12-07 | 2022-03-18 | 北京天融信网络安全技术有限公司 | 容器环境的入侵防御方法及装置、电子设备、存储介质 |
CN114185691A (zh) * | 2021-12-17 | 2022-03-15 | 杭州谐云科技有限公司 | 一种基于Sidecar的UDP组播方法和系统 |
CN114338160A (zh) * | 2021-12-29 | 2022-04-12 | 中软信息系统工程有限公司 | 一种程序访问控制方法、装置、电子设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117834205A (zh) * | 2023-12-13 | 2024-04-05 | 长江信达软件技术(武汉)有限责任公司 | 一种docker容器防火墙配置方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114826906B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108683604B (zh) | 并发访问控制方法、终端设备及介质 | |
CN107315825B (zh) | 一种索引更新系统、方法及装置 | |
CN108390856B (zh) | 一种DDoS攻击检测方法、装置及电子设备 | |
CN108804938B (zh) | 一种权限检测方法、装置、电子设备及可读存储介质 | |
CN110475229B (zh) | 业务数据访问的方法、装置、计算机设备和存储介质 | |
CN106034138A (zh) | 一种远程服务调用方法及装置 | |
CN111556125B (zh) | 一种访问请求分配方法、负载均衡设备及电子设备 | |
CN114826906A (zh) | 流量控制方法、装置、电子设备及存储介质 | |
CN115185777A (zh) | 一种异常检测方法、装置、可读存储介质以及电子设备 | |
CN110069217B (zh) | 一种数据存储方法及装置 | |
CN109657485B (zh) | 权限处理方法、装置、终端设备和存储介质 | |
CN111147468A (zh) | 用户接入方法、装置、电子设备及存储介质 | |
CN112637338B (zh) | 一种物联网节点服务管理方法、装置、设备及存储介质 | |
CN114244694A (zh) | 一种网络端口智能管理方法、系统、设备及可读存储介质 | |
CN111949421B (zh) | Sdk调用方法、装置、电子设备和计算机可读存储介质 | |
CN113328973A (zh) | 一种检测访问控制列表acl规则无效的方法和装置 | |
CN109976828B (zh) | 一种配置文件的方法及装置 | |
CN113590180B (zh) | 一种检测策略生成方法及装置 | |
CN111371784A (zh) | 一种分布式点对点服务被攻击自动熔断的方法 | |
CN115037693B (zh) | 一种基于令牌桶的分布式限流方法和分布式限流装置 | |
CN114270309A (zh) | 资源获取方法、装置以及电子设备 | |
CN110808967A (zh) | 挑战黑洞攻击的检测方法及相关装置 | |
CN114205150B (zh) | 容器环境的入侵防御方法及装置、电子设备、存储介质 | |
CN115955459A (zh) | 域名切换方法及装置、计算机可读存储介质 | |
CN115658368A (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 |