CN115277586A - Pod流量处理方法、系统、设备及存储介质 - Google Patents
Pod流量处理方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115277586A CN115277586A CN202210907776.6A CN202210907776A CN115277586A CN 115277586 A CN115277586 A CN 115277586A CN 202210907776 A CN202210907776 A CN 202210907776A CN 115277586 A CN115277586 A CN 115277586A
- Authority
- CN
- China
- Prior art keywords
- pod
- target
- address
- traffic
- service
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000003672 processing method Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000005111 flow chemistry technique Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- RJKFOVLPORLFTN-LEKSSAKUSA-N Progesterone Chemical compound C1CC2=CC(=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H](C(=O)C)[C@@]1(C)CC2 RJKFOVLPORLFTN-LEKSSAKUSA-N 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004092 self-diagnosis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了Pod流量处理方法、系统、设备及存储介质,通过探测业务容器发出的数据流量包,并从数据流量包中提取目标Service地址,根据目标Service地址在数据流量包中识别出目标流量,目标流量是对业务容器所在工作节点中的目标Pod的访问流量将数据流量包中的目标Service地址修改为目标Pod的地址,并基于修改后的目标Pod的地址进行流量发送。这样,本地工作节点内核模块检测到该流量的目的地址就是本节点内的Pod,就将流量直接导入到这些Pod中,而不会再经过iptables的DNAT处理,从而优化了同一工作节点内Pod互访的性能,提升流量处理效率,提升网络性能。
Description
技术领域
本发明涉及计算机技术领域,具体地说,涉及Pod流量处理方法、系统、设备及存储介质。
背景技术
随着云原生技术的普及,越来越多的应用都已经容器化。Kubernetes容器集群管理系统作为容器编排调度的事实标准,提供了容器化应用的完整生命周期管理。
Kubernetes的核心思想是“一切以服务为中心,一切围绕服务运转”,遵循这一思想在Kubernetes上创建的容器应用不仅可以运行在物理机、虚拟机或企业私有云上,也可以被托管到公有云上。Kubernetes的另一个特点是自动化,可以自我扩容、缩容、自我诊断,并且容易升级。Kubernetes在docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整的功能。
其中,Kubernetes系统包括控制节点(Master)和一组工作节点(Node)。Master是集群控制节点,以上运行着与集群管理相关的一组进程,负责整个集群的管理和控制,实现容器的管理面。Node是Kubernetes系统中运行容器组(Pod)的服务节点,是Pod运行的宿主机。一个容器组(Pod)可以包含一个容器或多个相关容器,是Kubernetes系统中能够创建、调度、管理的最小单元。
Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间(namespace)、互联网协议(internet protocol,IP)地址,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。Kubernetes系统对容器的管理编排功能自成体系,容器的生命周期管理闭环终结于Kubernetes系统(Master和Node之间),是一个分布式的容器管理系统。
在Kubernetes的网络模型中,容器的IP是不固定的,容器的重新调度、重启会导致IP的重新分配。由于Kubernetes中容器所属Pod的IP不固定,为了保障对应用的正常访问,在Kubernetes中引入了Service的概念,完成Pod服务发现和负载均衡的功能。
Service功能实现的核心原理是通过将目的地址转换DNAT(Destination NetworkAddress Translation)将访问Service的流量引入到真正的Pod中。在具体实现上,是由kube-proxy组件通过设置iptables实现DNAT的功能。即使是同一个工作节点上的Pod之间的访问,其也需要经过DNAT。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
针对现有技术中的问题,本发明的目的在于Pod流量处理方法、系统、设备及存储介质,克服了现有技术的困难,能够提升流量处理效率。
本发明的实施例提供一种Pod流量处理方法,其包括:
探测业务容器发出的数据流量包,并从数据流量包中提取目标Service地址;
根据目标Service地址在数据流量包中识别出目标流量,目标流量是对业务容器所在工作节点中的目标Pod的访问流量;
将数据流量包中的目标Service地址修改为目标Pod的地址,并基于修改后的目标Pod的地址进行流量发送。
可选地,探测业务容器发出的数据流量包,包括:
基于Sidecar容器探测所属工作节点内的业务容器发出的数据流量包。
可选地,根据目标Service地址在数据流量包中识别出目标流量,包括:
调用API-Server,根据目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表及业务容器所在工作节点的网址段;
将Endpoint地址列表与网址段进行比对,以获得落入网址段的目标Pod的地址,并基于目标Pod的地址在数据流量包中选取目标流量。
可选地,调用API-Server,根据目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表,包括:
调用API-Server,根据目标Service地址查询对应的Service标识,并根据Service标识查询提供对应服务的候选Pod的Endpoint地址列表。
可选地,获得落入网址段的目标Pod的地址,包括:
获取Endpoint地址列表中的地址总数,并获得Endpoint地址列表中落入网址段的候选Pod地址数量,以计算分配到工作节点的流量比例;
基于流量比例,在落入网址段的候选Pod地址中确定目标Pod的地址。
本发明实施例还提供一种Pod流量处理系统,其包括:
探测模块,探测业务容器发出的数据流量包,并从数据流量包中提取目标Service地址;
流量识别模块,根据目标Service地址在数据流量包中识别出目标流量,目标流量是对业务容器所在工作节点中的目标Pod的访问流量;
地址修改模块,将数据流量包中的目标Service地址修改为目标Pod的地址,并基于修改后的目标Pod的地址进行流量发送。
可选地,探测模块具体用于:
基于Sidecar容器探测所属工作节点内的业务容器发出的数据流量包。
可选地,流量识别模块具体用于:
调用API-Server,根据目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表及业务容器所在工作节点的网址段;
将Endpoint地址列表与网址段进行比对,以获得落入网址段的目标Pod的地址,并基于目标Pod的地址在数据流量包中选取目标流量。
本发明的实施例还提供一种电子备,包括:
处理器;
存储器,其中存储有处理器的可执行指令;
其中,处理器配置为经由执行可执行指令来执行上述Pod流量处理方法的步骤。
本发明的实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述Pod流量处理方法的步骤。
本发明的目的在于提供Pod流量处理方法、系统、设备及存储介质,通过探测业务容器发出的数据流量包,并从数据流量包中提取目标Service地址,根据目标Service地址在数据流量包中识别出目标流量,目标流量是对业务容器所在工作节点中的目标Pod的访问流量将数据流量包中的目标Service地址修改为目标Pod的地址,并基于修改后的目标Pod的地址进行流量发送。
本发明实施例借助同POD内容器间共享网络命名空间的特性,从工作节点本地发出的数据流量包中识别出对本地工作节点的访问流量,进而将访问目的地址修改为本地Pod地址,这样本地工作节点内核模块检测到该流量的目的地址就是本节点内的Pod,就将流量直接导入到这些Pod中,而不会再经过iptables的DNAT处理,从而优化了同一工作节点内Pod互访的性能,提升流量处理效率,提升网络性能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明的Pod流量处理方法的实施例之一的流程图;
图2是本发明的Pod流量处理系统的模块结构示意图;
图3是本发明的Pod流量处理方法的实施例之二的流程图;
图4是本发明的Pod流量处理方法的实施例的模块结构示意图;
图5是本发明的电子设备运行的示意图;
图6示出了根据本公开实施方式的存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使本发明全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件转发模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
此外,附图中所示的流程仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤可以分解,有的步骤可以合并或部分合并,且实际执行的顺序有可能根据实际情况改变。具体描述时使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。需要说明的是,在不冲突的情况下,本发明的实施例及不同实施例中的特征可以相互组合。
本案发明人在实践中发现如下问题,在Kubernetes中,Pod之间的流量分为两种。一种是同一工作节点的Pod之间的流量;另一种是不同工作节点之间的Pod流量。这两种都需要经过Service负载均衡。在实际使用中,在Pod数量变多后,即使是同一工作节点上的Pod之间访问的网络性能也很差。
本案发明人经过研究发现导致上述问题的原因是,Iptables的DANT性能本来就比较差,在Pod数量变多后,iptables规则变得更多更复杂,进一步对性能造成影响,进而给同一个工作节点上Pod之间的访问带来严重网络性能问题。
本公开实施例提供一种Pod流量处理方法,其发明思想是,借助同POD内容器间共享网络命名空间的特性,从工作节点本地发出的数据流量包中识别出对本地工作节点的访问流量,进而将访问目的地址修改为本地Pod地址,这样本地工作节点内核模块检测到该流量的目的地址就是本节点内的Pod,就将流量直接导入到这些Pod中,而不会再经过iptables的DNAT处理,从而优化了同一工作节点内Pod互访的性能,提升流量处理效率,提升网络性能。
图1为本公开实施例提供的Pod流量处理方法的流程图,该Pod流量处理方法的执行主体为Sidecar容器或在相应Pod中部署的流量处理系统,在此不做限定。
其中,Sidecar容器和业务容器(非Sidecar容器)部署在同一个Pod里,共享相同的生命周期,为业务容器提供辅助功能。在Pod流量处理方法的执行主体为Sidecar容器的情况下,Sidecar容器与业务容器共享网络命名空间,因此能够探测业务容器发出的数据流量包。
如图1所示,Pod流量处理方法包括如下步骤:
步骤110:探测业务容器发出的数据流量包,并从数据流量包中提取目标Service地址;
步骤120:根据目标Service地址在数据流量包中识别出目标流量,目标流量是对业务容器所在工作节点中的目标Pod的访问流量;
步骤130:将数据流量包中的目标Service地址修改为目标Pod的地址,并基于修改后的目标Pod的地址进行流量发送。
其中,Service是可以从服务器获取什么样的服务,目标Service地址是服务器所提供相应服务的IP地址,而目标Pod是具体提供服务并最终要访问的Pod。
其中,Service是为解决Pod地址不固定的问题提供的解决方案,对相应Pod构建Service,Service地址是不变的,并在Pod地址变更的情况下,更新Service地址与Pod地址之间的对应关系,从而能够根据目标Service地址获取待访问的目的Pod的地址。
同一工作节点内Pod是可达的,因此可以对访问本地Pod的流量数据进行修改,将其Service的IP地址修改为所在本工作节点的Pod的IP地址。修改了目的地址的流量出了业务容器所在Pod以后,其所属工作节点内核模块检测到该流量的目的地址就是本节点内其他Pod,从而将流量直接导入到这些Pod中,而不会再经过iptables的DNAT处理,从而优化了同一工作节点内Pod互访的性能,提升其网络性能。
在本公开实施例中,根据目标Service地址在数据流量包中识别出目标流量,具体包括如下步骤:
调用API-Server,根据目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表及业务容器所在工作节点的网址段;
将Endpoint地址列表与网址段进行比对,以获得落入网址段的目标Pod的地址,并基于目标Pod的地址在数据流量包中选取目标流量。
其中,由于同一工作节点内Pod的IP地址一般属于同一个网址段,所以基于网络地址比对,能够获取到最终的目标Pod地址。
其中,Endpoint的地址列表是指一个服务的ip地址和端口port的列表。如果说Service是可以从服务器获取什么样的服务,那么Endpoint则是服务位于哪个访问点,也就是哪个Pod的IP地址。因此,根据目标Service地址能够获得所有具体候选Pod的地址列表,即为Endpoint地址列表。
在本公开实施例中,在将Endpoint地址列表与网址段进行比对,未获得落入网址段的目标Pod的地址时,那么对Endpoint地址列表所对应候选Pod的流量地址不做任何修改,基于原始的目标Service地址进行流量发送。
在本公开实施例中,调用API-Server,根据目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表,可以包括:
调用API-Server,根据目标Service地址查询对应的Service标识,并根据Service标识查询提供对应服务的候选Pod的Endpoint地址列表。
其中,Service标识可以是Service名称。
在本公开实施例中,考虑Kubernetes所提供Service负责均衡策略选取目标流量。具体地,获得落入网址段的目标Pod的地址,包括:
获取Endpoint地址列表中的地址总数,并获得Endpoint地址列表中落入网址段的候选Pod地址数量,以计算分配到工作节点的流量比例;
基于流量比例,在落入网址段的候选Pod地址中确定目标Pod的地址。
根据本实施例,考虑负载均衡策略,可以确定数据流量包中目标Service地址所对应1个或多个目的Pod地址,可以获得流量处理效率。
图2为本公开实施例所提供Pod流量处理系统的模块结构图,如图2所示,该Pod流量处理系统具体包括如下功能模块:
数据包探测模块21,在Sidecar容器中探测本地Pod发出的数据流量包,并获得该Pod发出的数据流量包的目的Service地址;
目标Service获取模块22:通过前一步探测到的目的Service地址,并通过调用API-Server,查询出该地址对应的Service名称;
Service查询模块23:在上一步获取到Service名称后,就可以通过API-Server查询到该Service名称对应的Endpoint地址列表;
本地流量判定模块24:查询API-Server,获取本工作节点的CIDR地址段,然后和上一步获取的Endpoint地址列表进行比对,进而确定是否有到本工作节点其他Pod的流量。如果没有,那么流量不做任何修改,按照原始流程进行处理。如果有,则需要对部分流量数据包进行修改。
本地流量比例计算模块25:由于在Kubernetes环境,很多应用都是多副本部署的,目标Pod不一定都在本工作节点,这里计算访问本节点上POD的流量比例。Kubernetes原始Service负载均衡策略下流量是按副本数均分的,因此该模块根据Endpoint总数,以及在该节点的Endpoint数量,计算出到该节点流量的比例。
数据包修改模块26:按照上一步计算出的比例,修改数据包的目的IP地址,将其由Service的IP地址修改为所在本节点的POD的IP地址,修改了目标地址的流量出了POD以后,该节点内核模块确定其目的地址就是本节点其他POD,进而将流量直接导入到这些POD中,而不会再经过iptables的DNAT处理。
Iptables修改模块27:由于到本节点POD的流量不再经过iptables,故在iptables中去掉相关规则,并按比例调整到其他节点POD的流量比例。
其中,在iptables中去掉相关规则是可选项,也可以不删除相应规则。
本专利方案提出基于SideCar模式的本地流量优化方法,其核心思想是对于出POD的流量进行监控,对于访问本节点其他POD的流量进行处理,使其直接进行IP访问,这部分流量不再进入iptables的DNAT流程,进而提升这部分网络流量的性能。
在一种具体场景中,如图3所示,相应的Pod流量处理方法具体包括如下步骤310-360。
步骤310:Sidecar容器探测业务容器发出的数据流量包的目的地址。
原有业务容器发出数据流量包,Sidecar容器与该业务容器位于同一工作节点,共享网络命名空间,因此探测业务容器发出的数据流量包,这里主要用于探测业务容器发出的数据包的目的地址。
步骤320:获取目的地址对应的Service名称。
对于Kubernetes集群内POD之间互访的流量,业务容器发出的数据流量包的原始目的地址就是Service的地址,即上一步获取到Service地址,这一步通过查询KubernetesAPI-Server进而反向查询出该地址对应的Service名称。
步骤330:获取Service地址所对应的Endpoint列表。
在获取Service名称以后,通过调用API-Server就能查询到该Service对应的Endpoint地址列表。
步骤340:根据Endpoint地址列表判定是否有到本工作节点其他POD的流量。
通过查询API-Server可以获取到本工作节点的无类别域间路由CIDR(全称:Classless Inter-Domain Routing)网址段,将Endpoint地址列表和该CIDR对比,判定是否存在到本工作节点其他POD的流量。
如果没有,此处对数据流量包不做任何处理,由Kubernetes原始方式进行处理即可。如果有,对到本工作节点其他POD的流量进行修改。
其中,CIDR是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。
步骤350:计算到本地工作节点中其他POD流量的比例。
在Kubernetes环境,很多应用都是多副本部署的,目标POD不一定都在本工作节点,这里计算出访问本工作节点上POD的流量比例。在Kubernetes原始Service负载均衡策略下流量是按副本数均分的,因此根据Endpoint地址列表中的地址总数以及在该工作节点的Endpoint数量,计算出到本工作节点流量的比例。
步骤360:按照上一步计算出的比例,修改流量数据包的目的IP地址。
按照上一步计算出的比例,修改流量数据包的目的IP地址,将其由Service的IP地址修改为所在本工作节点的POD的IP地址。修改了目标地址的流量出了POD以后,将直接导入到这些POD中,而不会再经过iptables的DNAT处理。
可选地,对Iptables进行修改,由于到本节点POD的流量不再经过iptables,故在iptables中去掉相关规则,并按比例调整到其他节点POD的流量比例,保证所有流量都能被处理。
因此,本公开实施例基于sidecar的设计模式,借助位于同POD内的容器间共享网络命名空间的特性,对于原始业务报文进行了分类,并针对识别出的本地流量进行了报文修改,进而提升了这部分报文的处理效率。
图4是本公开提供的Pod流量处理系统的一种实施例的模块示意图,如图4所示,Pod流量处理系统包括但不限于如下模块:
探测模块410,探测业务容器发出的数据流量包,并从数据流量包中提取目标Service地址;
流量识别模块420,根据目标Service地址在数据流量包中识别出目标流量,目标流量是对业务容器所在工作节点中的目标Pod的访问流量;
地址修改模块430,将数据流量包中的目标Service地址修改为目标Pod的地址,并基于修改后的目标Pod的地址进行流量发送。
使用本公开实施例的Pod流量处理系统,借助同POD内容器间共享网络命名空间的特性,从工作节点本地发出的数据流量包中识别出对本地的访问流量,进而将访问目的地址修改为本地Pod地址,这样本地工作节点内核模块检测到该流量的目的地址就是本节点内的Pod,就将流量直接导入到这些Pod中,而不会再经过iptables的DNAT处理,从而优化了同一工作节点内Pod互访的性能,提升流量处理效率,提升网络性能。
上述模块的实现原理参见Pod流量处理方法中的相关介绍,此处不再赘述。
可选地,探测模块410具体用于:
基于Sidecar容器探测所属工作节点内的业务容器发出的数据流量包。
可选地,流量识别模块420具体用于:
调用API-Server,根据目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表及业务容器所在工作节点的网址段;
将Endpoint地址列表与网址段进行比对,以获得落入网址段的目标Pod的地址,并基于目标Pod的地址在数据流量包中选取目标流量。
可选地,流量识别模块420具体用于:
调用API-Server,根据目标Service地址查询对应的Service标识,并根据Service标识查询提供对应服务的候选Pod的Endpoint地址列表。
可选地,流量识别模块430具体用于:
获取Endpoint地址列表中的地址总数,并获得Endpoint地址列表中落入网址段的候选Pod地址数量,以计算分配到工作节点的流量比例;
基于流量比例,在落入网址段的候选Pod地址中确定目标Pod的地址。
本发明实施例还提供一种电子设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的Pod流量处理方法的步骤。
如上所示,本公开实施例的电子设备通过借助同POD内容器间共享网络命名空间的特性,从工作节点本地发出的数据流量包中识别出对本地的访问流量,进而将访问目的地址修改为本地Pod地址,这样本地工作节点内核模块检测到该流量的目的地址就是本节点内的Pod,就将流量直接导入到这些Pod中,而不会再经过iptables的DNAT处理,从而优化了同一工作节点内Pod互访的性能,提升流量处理效率,提升网络性能。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
图5本发明的电子设备的结构示意图。下面参照图5来描述根据本发明的这种实施方式的电子设备500。图5显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:至少一个处理单元510、至少一个存储单元520、连接不同平台组件(包括存储单元520和处理单元510)的总线530、显示单元540等。
其中,存储单元存储有程序代码,程序代码可以被处理单元510执行,使得处理单元510执行本说明书Pod流量处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元510可以执行如图1所示的步骤。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)521和/或高速缓存存储单元522,还可以进一步包括只读存储单元(ROM)523。
存储单元520还可以包括具有一组(至少一个)程序模块525的程序/实用工具524,这样的程序模块525包括但不限于:处理系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备500也可以与一个或多个外部设备570(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。
并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器560可以通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的Pod流量处理方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述明书Pod流量方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图6所示,描述了根据本公开实施方式的用于实现上述方法的程序产品600。根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明处理的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上,本发明的目的在于提供Pod流量处理方法、系统、设备及存储介质,借助同POD内容器间共享网络命名空间的特性,从工作节点本地发出的数据流量包中识别出对本地的访问流量,进而将访问目的地址修改为本地Pod地址,这样本地工作节点内核模块检测到该流量的目的地址就是本节点内的Pod,就将流量直接导入到这些Pod中,而不会再经过iptables的DNAT处理,从而优化了同一工作节点内Pod互访的性能,提升流量处理效率,提升网络性能。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种Pod流量处理方法,其特征在于,包括:
探测业务容器发出的数据流量包,并从所述数据流量包中提取目标Service地址;
根据所述目标Service地址在所述数据流量包中识别出目标流量,所述目标流量是对所述业务容器所在工作节点中的目标Pod的访问流量;
将所述数据流量包中的所述目标Service地址修改为所述目标Pod的地址,并基于修改后的所述目标Pod的地址进行流量发送。
2.根据权利要求1所述的Pod流量处理方法,其特征在于,探测业务容器发出的数据流量包,包括:
基于Sidecar容器探测所属工作节点内的业务容器发出的数据流量包。
3.根据权利要求2所述的Pod流量处理方法,其特征在于,根据所述目标Service地址在所述数据流量包中识别出目标流量,包括:
调用API-Server,根据所述目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表及所述业务容器所在工作节点的网址段;
将所述Endpoint地址列表与所述网址段进行比对,以获得落入所述网址段的所述目标Pod的地址,并基于所述目标Pod的地址在所述数据流量包中选取目标流量。
4.根据权利要求3所述的Pod流量处理方法,其特征在于,调用API-Server,根据所述目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表,包括:
调用API-Server,根据所述目标Service地址查询对应的Service标识,并根据所述Service标识查询提供对应服务的候选Pod的Endpoint地址列表。
5.根据权利要求3所述的Pod流量处理方法,其特征在于,获得落入所述网址段的所述目标Pod的地址,包括:
获取所述Endpoint地址列表中的地址总数,并获得所述Endpoint地址列表中落入所述网址段的候选Pod地址数量,以计算分配到所述工作节点的流量比例;
基于所述流量比例,在落入所述网址段的候选Pod地址中确定所述目标Pod的地址。
6.一种Pod流量处理系统,其特征在于,包括:
探测模块,探测业务容器发出的数据流量包,并从所述数据流量包中提取目标Service地址;
流量识别模块,根据所述目标Service地址在所述数据流量包中识别出目标流量,所述目标流量是对所述业务容器所在工作节点中的目标Pod的访问流量;
地址修改模块,将所述数据流量包中的所述目标Service地址修改为所述目标Pod的地址,并基于修改后的所述目标Pod的地址进行流量发送。
7.根据权利要求6所述的Pod流量处理系统,其特征在于,所述探测模块具体用于:
基于Sidecar容器探测所属工作节点内的业务容器发出的数据流量包。
8.根据权利要求7所述的Pod流量处理系统,其特征在于,所述流量识别模块具体用于:
调用API-Server,根据所述目标Service地址查询提供对应服务的候选Pod的Endpoint地址列表及所述业务容器所在工作节点的网址段;
将所述Endpoint地址列表与所述网址段进行比对,以获得落入所述网址段的所述目标Pod的地址,并基于所述目标Pod的地址在所述数据流量包中选取目标流量。
9.一种电子设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至5任意一项所述Pod流量处理方法的步骤。
10.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现权利要求1至5任意一项所述Pod流量处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210907776.6A CN115277586B (zh) | 2022-07-29 | 2022-07-29 | Pod流量处理方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210907776.6A CN115277586B (zh) | 2022-07-29 | 2022-07-29 | Pod流量处理方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115277586A true CN115277586A (zh) | 2022-11-01 |
CN115277586B CN115277586B (zh) | 2024-07-23 |
Family
ID=83771452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210907776.6A Active CN115277586B (zh) | 2022-07-29 | 2022-07-29 | Pod流量处理方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115277586B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150138985A1 (en) * | 2013-11-18 | 2015-05-21 | Arbor Networks, Inc. | Managing data traffic on a cellular network |
CN106817411A (zh) * | 2016-12-28 | 2017-06-09 | 华为技术有限公司 | 业务访问请求的处理方法和相关设备 |
CN108390812A (zh) * | 2018-05-30 | 2018-08-10 | 新华三技术有限公司 | 报文转发方法及装置 |
US20190173796A1 (en) * | 2017-12-01 | 2019-06-06 | International Business Machines Corporation | Load balancing in data hosting systems |
CN110262899A (zh) * | 2019-06-20 | 2019-09-20 | 无锡华云数据技术服务有限公司 | 基于Kubernetes集群的监控组件弹性伸缩方法、装置及受控终端 |
CN112153143A (zh) * | 2020-09-24 | 2020-12-29 | 新浪网技术(中国)有限公司 | Kubernetes集群的流量调度方法、装置及电子设备 |
CN112243045A (zh) * | 2019-07-16 | 2021-01-19 | 北京东土科技股份有限公司 | 服务数据处理方法、装置、节点结构及电子设备 |
CN114095430A (zh) * | 2021-10-14 | 2022-02-25 | 网宿科技股份有限公司 | 一种访问报文的处理方法、系统及工作节点 |
-
2022
- 2022-07-29 CN CN202210907776.6A patent/CN115277586B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150138985A1 (en) * | 2013-11-18 | 2015-05-21 | Arbor Networks, Inc. | Managing data traffic on a cellular network |
CN106817411A (zh) * | 2016-12-28 | 2017-06-09 | 华为技术有限公司 | 业务访问请求的处理方法和相关设备 |
US20190173796A1 (en) * | 2017-12-01 | 2019-06-06 | International Business Machines Corporation | Load balancing in data hosting systems |
CN108390812A (zh) * | 2018-05-30 | 2018-08-10 | 新华三技术有限公司 | 报文转发方法及装置 |
CN110262899A (zh) * | 2019-06-20 | 2019-09-20 | 无锡华云数据技术服务有限公司 | 基于Kubernetes集群的监控组件弹性伸缩方法、装置及受控终端 |
CN112243045A (zh) * | 2019-07-16 | 2021-01-19 | 北京东土科技股份有限公司 | 服务数据处理方法、装置、节点结构及电子设备 |
CN112153143A (zh) * | 2020-09-24 | 2020-12-29 | 新浪网技术(中国)有限公司 | Kubernetes集群的流量调度方法、装置及电子设备 |
CN114095430A (zh) * | 2021-10-14 | 2022-02-25 | 网宿科技股份有限公司 | 一种访问报文的处理方法、系统及工作节点 |
Also Published As
Publication number | Publication date |
---|---|
CN115277586B (zh) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110710168B (zh) | 跨隔离的网络堆栈的智能线程管理 | |
US11088944B2 (en) | Serverless packet processing service with isolated virtual network integration | |
KR20230125180A (ko) | 클라우드 네이티브 애플리케이션을 위한 동적으로 확장 가능한 애플리케이션 방화벽 배포 | |
US9378060B2 (en) | Runtime co-location of executing logic and frequently-accessed application data | |
US8825750B2 (en) | Application server management system, application server management method, management apparatus, application server and computer program | |
US9910687B2 (en) | Data flow affinity for heterogenous virtual machines | |
EP4068725B1 (en) | Topology-based load balancing for task allocation | |
CN103455363B (zh) | 一种虚拟机的指令处理方法、装置及物理主机 | |
CN113709810B (zh) | 一种网络服务质量的配置方法、设备和介质 | |
JP5541292B2 (ja) | 分散システム、通信手段選択方法および通信手段選択プログラム | |
US10715424B2 (en) | Network traffic management with queues affinitized to one or more cores | |
CN106817236A (zh) | 虚拟网络功能的配置方法和装置 | |
CN110213365B (zh) | 基于用户分区的用户访问请求处理方法及电子设备 | |
CN103618778A (zh) | 利用Linux虚拟主机实现数据高并发的系统及方法 | |
US20150095530A1 (en) | Dynamic port naming in a chassis | |
CN111865868A (zh) | 跨网络区域服务调用方法及系统 | |
CN115277586B (zh) | Pod流量处理方法、系统、设备及存储介质 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN116016448A (zh) | 一种服务网络访问方法、装置、设备及存储介质 | |
CN113079128A (zh) | 信息封堵方法、装置、计算设备及计算机存储介质 | |
US20240097983A1 (en) | Translation of a source intent policy model to a target intent policy model | |
EP4340312A1 (en) | Translation of a source intent policy model to a target intent policy model | |
CN115988080B (zh) | 一种基于代理中间件的微服务资源调用方法和系统 | |
CN116029380B (zh) | 量子算法处理方法、装置、设备、存储介质及程序产品 | |
CN111741097B (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 |