CN114448937A - 访问请求的响应方法和装置、存储介质 - Google Patents

访问请求的响应方法和装置、存储介质 Download PDF

Info

Publication number
CN114448937A
CN114448937A CN202210109420.8A CN202210109420A CN114448937A CN 114448937 A CN114448937 A CN 114448937A CN 202210109420 A CN202210109420 A CN 202210109420A CN 114448937 A CN114448937 A CN 114448937A
Authority
CN
China
Prior art keywords
pod
address
target
external network
node
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.)
Pending
Application number
CN202210109420.8A
Other languages
English (en)
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202210109420.8A priority Critical patent/CN114448937A/zh
Publication of CN114448937A publication Critical patent/CN114448937A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种访问请求的响应方法和装置、存储介质,其中,上述方法包括:获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;将所述目标网段中的待分配的外网IP地址分配给所述目标节点;在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求,采用上述技术方案,解决了使用macvlan或ipvlan cni分配IP到POD的主网络,会造成IP地址的浪费等问题。

Description

访问请求的响应方法和装置、存储介质
技术领域
本发明涉及通信领域,具体而言,涉及一种访问请求的响应方法和装置、存储介质。
背景技术
容器云平台的网络是平台的基石,POD是应用对外提供服务的基础,在现有的Kubernetes原生容器云网络解决方案中,通用的方案如下:
1)使用EIP方式,如图1所示:
阿里云、AWS等公有云厂商都支持了弹性公网IP(EIP),可以用来应对有的场景中Pod需要独立的公网地址的情况。以阿里云为例,为Pod挂载独立公网EIP,只需要修改其网络插件terway相关权限后,在模板中为Pod指定EIP即可:k8s.aliyun.com/POD-with-eip:"true";Pod创建时会自动找到该地域未被使用的EIP并与该POD内网网卡关联,需要注意的是,实际上EIP并不会直接分配到Pod对应的网卡上,而是通过NAT的方式将流量转发到对应的POD。
2)使用单网卡macvlan/ipvlan,如图2所示:
使用macvlan或ipvlan cni分配IP到POD的主网络(eth0),作为Kubernetes集群内IP。底层需要由二三层设备保证这些POD网卡的互通。
3)使用multus分配多网卡,如图3所示:
multus可以为运行在kubernetes的POD提供多个网络接口,它可以将多个CNI插件组合在一起为POD配置不同类型的网络。multus使用"delegates"的概念将多个CNI插件组合起来,并且指定一个master plugin来作为POD的主网络(eth0)作为Kubernetes集群内IP。
相关技术中,使用单网卡macvlan/ipvlan的方案会造成IP地址的浪费。
针对相关技术中,使用macvlan或ipvlan cni分配IP到POD的主网络,会造成IP地址的浪费等问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种访问请求的响应方法和装置、存储介质,以至少解决相关技术中,使用macvlan或ipvlan cni分配IP到POD的主网络,会造成IP地址的浪费等问题。
根据本发明实施例的一个实施例,提供了一种访问请求的响应方法,包括:获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;将所述目标网段中的待分配的外网IP地址分配给所述目标节点;在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
在一个示例性实施例中,根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段,包括:确定所述节点IP地址对应的第一掩码;将所述节点IP地址和第一掩码进行与操作,得到第一结果,以及将外网网段中的IP地址和第一掩码进行与操作,得到第二结果;在第二结果中确定与所述第一结果一致的第三结果,并将所述第三结果对应的外网网段作为与所述节点IP地址位于同网段的目标网段。
在一个示例性实施例中,将所述目标网段中的待分配的外网IP地址分配给所述目标节点,包括:通过预设方式将所述目标网段注解到所述目标节点;在成功将所述目标网段注解到所述目标节点的情况下,确定所述目标网段中的待分配的外网IP地址为所述目标节点可用的IP地址。
在一个示例性实施例中,将所述目标网段中的多个待分配的外网IP地址分配给所述目标节点之后,所述方法还包括:确定容器云中的任意两个节点之间是否需要交互,所述容器云中包括所述目标节点;在确定容器云中的任意两个节点之间需要交互的情况下,通知目标服务器在所述容器云中创建所述第一POD,以及创建所述第一POD的注解信息,其中,所述注解信息用于指示所述第一POD是否需要外网IP地址;在所述目标服务器成功创建所述第一POD和所述第一POD的注解信息的情况下,根据所述第一POD的注解信息确定是否将所述第一POD分配到容器云中的节点。
在一个示例性实施例中,根据所述第一POD的注解信息确定是否将所述第一POD分配到容器云中的节点,包括:在根据所述第一POD的注解信息确定所述第一POD需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的有待分配的外网IP地址的节点;在根据所述第一POD的注解信息确定所述第一POD不需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的所有节点中的任一节点中。
在一个示例性实施例中,将所述目标网段中的待分配的外网IP地址分配给所述目标节点之后,所述方法还包括:根据所述第一POD的注解信息返回对所述第一POD的分配结果,其中,所述分配结果至少指示以下之一:为所述第一POD分配的目标IP地址、空值;在所述分配结果指示为所述第一POD分配的目标IP地址的情况下,设置所述第一POD的外网网卡,其中,所述外网网卡的IP地址为所述目标IP地址;根据所述第一POD的外网网卡创建所述第一POD的外网路由表,以使在外网网络向第一POD发送访问请求的情况下,根据所述外网路由表响应所述访问请求。
在一个示例性实施例中,根据所述第一POD的外网网卡创建所述第一POD的外网路由表,包括:匹配所述外网路由表的源IP为外网网卡的IP地址;设置所述外网路由表中的默认路由为所述外网网卡,以及在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,并通过所述外网网卡响应所述访问请求。
在一个示例性实施例中,根据所述第一POD的外网网卡创建所述第一POD的外网路由表之后,所述方法还包括:为所述第一POD分配目标内网IP地址;设置所述第一POD的内网网卡,其中,所述内网网卡的IP地址为所述目标内网IP地址;根据所述第一POD的内网网卡创建所述第一POD的内网路由表,以使所述目标节点中的第一POD访问内网节点中的其他POD的情况下,根据所述内网路由表发送目标报文,其中,所述内网路由表的源IP地址为所述内网网卡的IP地址。
根据本发明实施例的另一个实施例,还提供了一种访问请求的响应装置,包括:获取模块,用于获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;确定模块,用于根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;分配模块,用于将所述目标网段中的待分配的外网IP地址分配给所述目标节点;响应模块,用于在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述访问请求的响应方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的访问请求的响应方法。
在本发明实施例中,获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;将所述目标网段中的待分配的外网IP地址分配给所述目标节点;在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求;采用上述技术方案,解决了使用macvlan或ipvlan cni分配IP到POD的主网络,会造成IP地址的浪费等问题,进而通过本发明的技术方案做到了IP地址的按需分配,减少不必要的IP资源的浪费。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明的现有技术中EIP方式的内外网互联互通示意图;
图2是本发明的现有技术中单网卡方式的内外网互联互通示意图;
图3是本发明的现有技术中分配多网卡方式的内外网互联互通示意图;
图4是本发明实施例的一种访问请求的响应方法的计算机终端的硬件结构框图;
图5是根据本发明实施例的访问请求的响应方法的流程图;
图6是根据本发明可选实施例的访问请求的响应方法的示意图(一);
图7是根据本发明可选实施例的访问请求的响应方法的示意图(二);
图8是根据本发明可选实施例的访问请求的响应方法的示意图(三);
图9是根据本发明可选实施例的访问请求的响应方法的时序图;
图10是根据本发明可选实施例的访问请求的响应方法的示意图(四);
图11是根据本发明实施例的一种访问请求的响应装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图4是本发明实施例的一种访问请求的响应方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的访问请求的响应方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种访问请求的响应方法,应用于上述计算机终端,图5是根据本发明实施例的访问请求的响应方法的流程图,该流程包括如下步骤:
步骤S502,获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;
步骤S504,根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;
步骤S506,将所述目标网段中的待分配的外网IP地址分配给所述目标节点;
步骤S508,在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
通过上述步骤,获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;将所述目标网段中的待分配的外网IP地址分配给所述目标节点;在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求,解决了相关技术中,使用macvlan或ipvlan cni分配IP到POD的主网络,会造成IP地址的浪费等问题,进而通过本发明的技术方案做到了IP地址的按需分配,减少不必要的IP资源的浪费。
在一个示例性实施例中,根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段,包括:确定所述节点IP地址对应的第一掩码;将所述节点IP地址和第一掩码进行与操作,得到第一结果,以及将外网网段中的IP地址和第一掩码进行与操作,得到第二结果;在第二结果中确定与所述第一结果一致的第三结果,并将所述第三结果对应的外网网段作为与所述节点IP地址位于同网段的目标网段。
需要说明的是,上述实施例记载了一种在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段的方式,具体的:计算节点IP地址的第一掩码和多个网段的分别对应的第二掩码,根据第一掩码的在多个第二掩码中确定一致的第三掩码,将第三掩码对应的网段分配给目标节点,也就是目标网段所有IP都与目标节点同网段;举例来讲,节点1的IP为:10.37.0.12/24,网段1为:10.37.0.200-10.37.0.220,则在节点1注解中记录支持网段1;节点2的IP为:10.45.0.12/24,网段1为:10.32.0.200-10.32.0.220,则节点2没有网段支持,也就是说,节点2没有IP资源,需要说明的是,上述IP地址和网段仅是为了更好的理解本发明实施例,本发明实施例对此不做限定。
在一个示例性实施例中,将所述目标网段中的待分配的外网IP地址分配给所述目标节点,包括:通过预设方式将所述目标网段注解到所述目标节点;在成功将所述目标网段注解到所述目标节点的情况下,确定所述目标网段中的待分配的外网IP地址为所述目标节点可用的IP地址。
通过预设方式,例如,annotation的方式,将目标网段注解到目标节点上,标记为该目标网段为目标节点可用的ip资源,并通过crd方式写到存储系统etcd中。
在一个示例性实施例中,将所述目标网段中的多个待分配的外网IP地址分配给所述目标节点之后,确定容器云中的任意两个节点之间是否需要交互,所述容器云中包括所述目标节点;在确定容器云中的任意两个节点之间需要交互的情况下,通知目标服务器在所述容器云中创建所述第一POD,以及创建所述第一POD的注解信息,其中,所述注解信息用于指示所述第一POD是否需要外网IP地址;在所述目标服务器成功创建所述第一POD和所述第一POD的注解信息的情况下,根据所述第一POD的注解信息确定是否将所述第一POD分配到容器云中的节点。
具体地,在模板中填写容器云中的任意两个节点之间是否需要联网互通,然后通知api-server创建第一Pod,以及确定第一POD是否需要外网IP地址,根据第一POD是否需要外网IP地址确定对第一POD的分配。
在一个示例性实施例中,根据所述第一POD的注解信息确定是否将所述第一POD分配到容器云中的节点,包括:在根据所述第一POD的注解信息确定所述第一POD需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的有待分配的外网IP地址的节点;在根据所述第一POD的注解信息确定所述第一POD不需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的所有节点中的任一节点中。
需要说明的是,调度器新增调度ip资源调度模块,如果第一POD需要外网IP地址,只有当节点上存在ip资源时,才可以将第一节点才能分配到该节点,但是如果POD不需要外网IP地址时,直接将所述第一POD分配到该节点。
举例来讲,在创建第一POD和第二POD:第一POD不需要配置外网IP,则node1和node2都会通过调度器过滤,最终可以被被调度到node1和node22。而第二POD需要配置外网,在过滤阶段,node2由于没有外网IP资源,无法运行第二POD,经过IP资源过滤,第二POD只能调度到node1上。
在一个示例性实施例中,将所述目标网段中的待分配的外网IP地址分配给所述目标节点之后,根据所述第一POD的注解信息返回对所述第一POD的分配结果,其中,所述分配结果至少指示以下之一:为所述第一POD分配的目标IP地址、空值;在所述分配结果指示为所述第一POD分配的目标IP地址的情况下,设置所述第一POD的外网网卡,其中,所述外网网卡的IP地址为所述目标IP地址;根据所述第一POD的外网网卡创建所述第一POD的外网路由表,以使在外网网络向第一POD发送访问请求的情况下,根据所述外网路由表响应所述访问请求。
在将目标网段中的待分配的外网IP地址分配给所述目标节点,以及将所述第一POD分配给目标节点之后,在第一POD需要外网IP地址的情况下,向第一POD分配目标IP地址;在第一POD不需要外网IP地址的情况下,向第一POD分配空值;在为所述第一POD分配的目标IP地址的情况下,将目标IP地址作为外网路由表的源IP地址,以建立外网路由表。
在一个实施例中,根据所述第一POD的外网网卡创建所述第一POD的外网路由表,包括:匹配所述外网路由表的源IP为外网网卡的IP地址;设置所述外网路由表中的默认路由为所述外网网卡,以及在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,并通过所述外网网卡响应所述访问请求。
举例来讲,假设将外网网卡命名为net0,配置一张新的路由表,路由表ID小于系统创建路由表ID,匹配源IP地址为外网网卡IP地址。然后设置外网路由表的默认路由全部走net0,从而通过所述外网网卡的IP地址向所述第二POD发送目标报文,本发明实施例与使用multus分配多网卡相比,本发明实施例使用策略路由解决POD多网卡出现的非对称路由;且本发明实施例基于云原生的chained CNI机制,与multus机制相比,chained CNI机制下CNI之间更加耦合松散,方便根据业务需要灵活替换。
在一个示例性实施例中,根据所述第一POD的外网网卡创建所述第一POD的外网路由表之后,为所述第一POD分配目标内网IP地址;设置所述第一POD的内网网卡,其中,所述内网网卡的IP地址为所述目标内网IP地址;根据所述第一POD的内网网卡创建所述第一POD的内网路由表,以使所述目标节点中的第一POD访问内网节点中的其他POD的情况下,根据所述内网路由表发送目标报文,其中,所述内网路由表的源IP地址为所述内网网卡的IP地址。容器云的集群内通信不经过隧道,容器云的集群外访问外网IP后不需要通过容器云。
通过calico-ipam插件为第一POD分配内网IP地址,calico插件创建了内网网卡并设置第一POD的内网路由表以及默认的内网路由。
进一步的,在确定删除所述第一POD的情况下,将所述目标IP地址对应的资源项标记为空闲状态,以及删除所述外网网卡和外网路由表,以禁止所述目标节点中的其他POD访问外网的其他节点的情况下,根据所述外网路由表发送目标报文。
为了更好的理解上述访问请求的响应方法的过程,以下再结合可选实施例对上述访问请求的响应的实现方法流程进行说明,但不用于限定本发明实施例的技术方案。
在本实施例中提供了一种访问请求的响应方法,本发明实施例使用macvlan网卡作为POD的外网网卡,calico分配的网卡作为POD的内网网卡,图6是根据本发明可选实施例的访问请求的响应方法的示意图(一),如图6所示,容器云中的节点可以通过二三层网络相互访问的前提下,各个节点可以跨网段。
下面具体阐述多网卡POD启动的过程,具体步骤如下:
步骤1:管理员收集可用的外网网段信息(相当于上述是实施例中的待分配的外网网段),通过crd的方式保存至集群存储系统etcd。如果节点可以支持某个网段,所谓支持,也就是网段所有IP都与节点同网段(也可以理解为,都使用节点的掩码),并通过annotation的方式将网段注解到对应的节点上,标记为该节点可用的ip资源。图7是根据本发明可选实施例的访问请求的响应方法的示意图(二),如图7所示,管理员提前规划好3个可用的外网网段信息,并通过crd方式写到etcd中。此时,需要在node1注解中记录支持seg1,node2注解中记录支持seg2,而seg3则没有节点可以支持,而node3没有网段可以支持。也就是说,node1和node2都有IP资源,node3没有IP资源。
步骤2:在模板中填写各个节点是否需要联网互通,然后通知api-server创建Pod(相当于上述实施例中的第一POD);
步骤3:调度器新增调度ip资源调度模块,如果POD需要外网IP地址,只有当节点上存在ip资源时该节点才能通过过滤。如果POD不需要外网IP值,直接通过该过滤。
图8是根据本发明可选实施例的访问请求的响应方法的示意图(三),如图8所示,用户创建POD1和POD2,其中,POD1不需要配置外网IP地址,则node1和node2都会通过调度器过滤(也就是filter阶段),可能还有其他调度过程(可以是其他filter或者是score等等),最终假设被调度到node2。而POD2需要配置外网,在过滤阶段,node2由于没有外网IP资源,无法运行POD2,经过IP资源过滤,POD2只能调度到node1上。
步骤4:调度器将POD分配到指定节点后,kubelet将为POD创建容器运行环境。此过程中会调用cni创建网络(具体是调用这些cni中的cmdAdd方法),如图9所示,具体步骤如下:
步骤S401:cni runtime向dhc-ipam发送添加网络的请求;
步骤S402:dhc-ipam根据POD注解,确认是否需要外网IP地址。如果需要外网IP地址,则确定一个可用的外网IP地址,并记录到其返回结果中,并在该IP地址对应的资源项中标记为已使用;如不需要外网IP地址,直接返回空值;
步骤S403:cni runtime向dhc-macvlan发送添加网络的请求;
步骤S404:dhc-macvlan根据dhc-ipam的返回结果,如果该结果为空值,直接返回;如果该结果不为空值,需要设置macvlan网卡(相当于上述实施例中的外网网卡),IP地址取自dhc-ipam返回结果,网卡名和配置取自网络配置文件(网卡名不能是eth0)。除了macvlan网卡生成的系统路由之外,该插件会进行策略路由设置。举例来讲,macvlan网卡名为net0,配置一张新的路由表,ID小于系统创建路由表,匹配源IP地址为net0网卡IP地址。然后填入这个路由表的默认路由全部走net0,从而让源IP地址为该net0网卡IP地址,全部走通过net0网卡响应来自外网网络的访问请求。
步骤S405:calico与calico-ipam完全使用calico原生镜像。calico-ipam插件为POD分配内网IP,
步骤S406:calico插件创建了veth pair网卡(相当于上述实施例中的内网网卡)并设置相关规则,包括POD的默认路由。
多网卡POD创建完成后,多网卡POD之间内外网互联互通情况如图10所示。需要说明的是,当源ip为macvlan网卡IP时,macvlan作为其默认路由;其余情况下,calico设置的默认路由作为其默认路由;当Pod主动访问外网时,默认路由会指向calico路由,进入集群内,此时的路径需要通过宿主机,但是返回路径仍然是calico网卡,不会产生非对称路由。集群内访问Pod,走calico的BGP路由是underlay路径,性能更优且网络更简单,所以集群内访问应当使用内网访问。
步骤5:当Pod删除时,依次调用步骤4中的cni删除网络。
具体为,dhc-ipam如果使用了外网网卡,需要在该IP对应的资源项中标记为空闲;dhc-macvlan如果有macvlan网卡,则销毁macvlan网卡与相关规则;calico与calico-ipam销毁内网网卡与相关规则。
本发明实施例与使用multus分配多网卡相比,本发明实施例使用策略路由解决POD多网卡出现的非对称路由;且本发明实施例基于云原生的chained CNI机制,与multus机制相比,chained CNI机制下CNI之间更加耦合松散,方便根据业务需要灵活替换。与使用单网卡macvlan/ipvlan方案相比,本发明实施例完美支持容器云多网段节点管理与IP按需分配,集群arp广播报文更少。与使用EIP方式相比,本发明实施例集群内通过内网IP通信不使用overlay,集群外访问外网IP之后不需要再经过NAT,相同物理机与内核配置下性能更优。在私有云场景下,本发明实施例还进一步提供了使用已规划的私网可用IP地址资源的方式,不需要再加上如账户IP绑定等操作,更方便使用。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了访问请求的响应装置,该访问请求的响应装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图11是根据本发明实施例的一种访问请求的响应装置的结构框图;如图11所示,包括:
获取模块1102,用于获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;
确定模块1104,用于根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;
分配模块1106,用于将所述目标网段中的待分配的外网IP地址分配给所述目标节点;
响应模块1108,用于在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
通过上述装置,获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;将所述目标网段中的待分配的外网IP地址分配给所述目标节点;在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求,解决了相关技术中,使用macvlan或ipvlan cni分配IP到POD的主网络,会造成IP地址的浪费等问题,进而通过本发明的技术方案做到了IP地址的按需分配,减少不必要的IP资源的浪费。
在一个示例性实施例中,确定模块,还用于确定所述节点IP地址对应的第一掩码和所述待分配的外网网段对应的第二掩码;在第二掩码中确定与所述第一掩码一致的第三掩码,并将所述第三掩码对应的外网网段作为与所述节点IP地址位于同网段的目标网段。
在一个示例性实施例中,分配模块,还用于通过预设方式将所述目标网段注解到所述目标节点;在成功将所述目标网段注解到所述目标节点的情况下,确定所述目标网段中的待分配的外网IP地址为所述目标节点可用的IP地址。
在一个示例性实施例中,确定模块,还用于确定容器云中的任意两个节点之间是否需要交互,所述容器云中包括所述目标节点;在确定容器云中的任意两个节点之间需要交互的情况下,通知目标服务器在所述容器云中创建所述第一POD,以及创建所述第一POD的注解信息,其中,所述注解信息用于指示所述第一POD是否需要外网IP地址;在所述目标服务器成功创建所述第一POD和所述第一POD的注解信息的情况下,根据所述第一POD的注解信息确定是否将所述第一POD分配到容器云中的节点。
在一个示例性实施例中,确定模块,还用于在根据所述第一POD的注解信息确定所述第一POD需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的有待分配的外网IP地址的节点;在根据所述第一POD的注解信息确定所述第一POD不需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的所有节点中的任一节点中。
在一个示例性实施例中,分配模块,还用于根据所述第一POD的注解信息返回对所述第一POD的分配结果,其中,所述分配结果至少指示以下之一:为所述第一POD分配的目标IP地址、空值;在所述分配结果指示为所述第一POD分配的目标IP地址的情况下,设置所述第一POD的外网网卡,其中,所述外网网卡的IP地址为所述目标IP地址;根据所述第一POD的外网网卡创建所述第一POD的外网路由表,以使在外网网络向第一POD发送访问请求的情况下,根据所述外网路由表响应所述访问请求。
在一个示例性实施例中,确定模块,还用于匹配所述外网路由表的源IP为外网网卡的IP地址;设置所述外网路由表中的默认路由为所述外网网卡,以及在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,并通过所述外网网卡响应所述访问请求。
在一个示例性实施例中,分配模块,还用于为所述第一POD分配目标内网IP地址;设置所述第一POD的内网网卡,其中,所述内网网卡的IP地址为所述目标内网IP地址;根据所述第一POD的内网网卡创建所述第一POD的内网路由表,以使所述目标节点中的第一POD访问内网节点中的其他POD的情况下,根据所述内网路由表发送目标报文,其中,所述内网路由表的源IP地址为所述内网网卡的IP地址。
本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;
S2,根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;
S3,将所述目标网段中的待分配的外网IP地址分配给所述目标节点;
S4,在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;
S2,根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;
S3,将所述目标网段中的待分配的外网IP地址分配给所述目标节点;
S4,在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种访问请求的响应方法,其特征在于,包括:
获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;
根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;
将所述目标网段中的待分配的外网IP地址分配给所述目标节点;
在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
2.根据权利要求1所述的访问请求的响应方法,其特征在于,根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段,包括:
确定所述节点IP地址对应的第一掩码;
将所述节点IP地址和第一掩码进行与操作,得到第一结果,以及将外网网段中的IP地址和第一掩码进行与操作,得到第二结果;
在第二结果中确定与所述第一结果一致的第三结果,并将所述第三结果对应的外网网段作为与所述节点IP地址位于同网段的目标网段。
3.根据权利要求1所述的访问请求的响应方法,其特征在于,将所述目标网段中的待分配的外网IP地址分配给所述目标节点,包括:
通过预设方式将所述目标网段注解到所述目标节点;
在成功将所述目标网段注解到所述目标节点的情况下,确定所述目标网段中的待分配的外网IP地址为所述目标节点可用的IP地址。
4.根据权利要求1所述的访问请求的响应方法,其特征在于,将所述目标网段中的多个待分配的外网IP地址分配给所述目标节点之后,所述方法还包括:
确定容器云中的任意两个节点之间是否需要交互,所述容器云中包括所述目标节点;
在确定容器云中的任意两个节点之间需要交互的情况下,通知目标服务器在所述容器云中创建所述第一POD,以及创建所述第一POD的注解信息,其中,所述注解信息用于指示所述第一POD是否需要外网IP地址;
在所述目标服务器成功创建所述第一POD和所述第一POD的注解信息的情况下,根据所述第一POD的注解信息确定是否将所述第一POD分配到容器云中的节点。
5.根据权利要求4所述的访问请求的响应方法,其特征在于,根据所述第一POD的注解信息确定是否将所述第一POD分配到容器云中的节点,包括:
在根据所述第一POD的注解信息确定所述第一POD需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的有待分配的外网IP地址的节点;
在根据所述第一POD的注解信息确定所述第一POD不需要外网IP地址的情况下,确定将所述第一POD分配到所述容器云中的所有节点中的任一节点中。
6.根据权利要求1所述的访问请求的响应方法,其特征在于,将所述目标网段中的待分配的外网IP地址分配给所述目标节点之后,所述方法还包括:
根据所述第一POD的注解信息返回对所述第一POD的分配结果,其中,所述分配结果至少指示以下之一:为所述第一POD分配的目标IP地址、空值;
在所述分配结果指示为所述第一POD分配的目标IP地址的情况下,设置所述第一POD的外网网卡,其中,所述外网网卡的IP地址为所述目标IP地址;
根据所述第一POD的外网网卡创建所述第一POD的外网路由表,以使在外网网络向第一POD发送访问请求的情况下,根据所述外网路由表响应所述访问请求。
7.根据权利要求6所述的访问请求的响应方法,其特征在于,根据所述第一POD的外网网卡创建所述第一POD的外网路由表,包括:
匹配所述外网路由表的源IP为外网网卡的IP地址;
设置所述外网路由表中的默认路由为所述外网网卡,以及在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,并通过所述外网网卡响应所述访问请求。
8.根据权利要求6所述的访问请求的响应方法,其特征在于,根据所述第一POD的外网网卡创建所述第一POD的外网路由表之后,所述方法还包括:
为所述第一POD分配目标内网IP地址;
设置所述第一POD的内网网卡,其中,所述内网网卡的IP地址为所述目标内网IP地址;
根据所述第一POD的内网网卡创建所述第一POD的内网路由表,以使所述目标节点中的第一POD访问内网节点中的其他POD的情况下,根据所述内网路由表发送目标报文,其中,所述内网路由表的源IP地址为所述内网网卡的IP地址。
9.一种访问请求的响应装置,其特征在于,包括:
获取模块,用于获取容器云对应的待分配的外网网段,其中,所述待分配的外网网段包括:多个待分配的外网IP地址;
确定模块,用于根据目标节点的节点IP地址在所述待分配的外网网段中确定与所述节点IP地址位于同网段的目标网段;
分配模块,用于将所述目标网段中的待分配的外网IP地址分配给所述目标节点;
响应模块,用于在所述目标节点中的第一POD接收到外网网络发送的访问请求的情况下,从所述目标网段中的多个待分配的外网IP地址选择目标IP地址,并通过所述目标IP地址响应所述访问请求。
10.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至8任一项中所述的方法。
CN202210109420.8A 2022-01-28 2022-01-28 访问请求的响应方法和装置、存储介质 Pending CN114448937A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210109420.8A CN114448937A (zh) 2022-01-28 2022-01-28 访问请求的响应方法和装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210109420.8A CN114448937A (zh) 2022-01-28 2022-01-28 访问请求的响应方法和装置、存储介质

Publications (1)

Publication Number Publication Date
CN114448937A true CN114448937A (zh) 2022-05-06

Family

ID=81371004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210109420.8A Pending CN114448937A (zh) 2022-01-28 2022-01-28 访问请求的响应方法和装置、存储介质

Country Status (1)

Country Link
CN (1) CN114448937A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115426313A (zh) * 2022-08-31 2022-12-02 中电云数智科技有限公司 一种基于ovn虚机网络的nat优化装置和方法
CN116016438A (zh) * 2022-12-12 2023-04-25 上海道客网络科技有限公司 基于容器云平台的多子网统一分配ip地址的方法和系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395781A (zh) * 2017-06-29 2017-11-24 北京小度信息科技有限公司 网络通信方法及装置
CN107580083A (zh) * 2017-09-20 2018-01-12 北京京东尚科信息技术有限公司 一种容器ip地址分配的方法和系统
CN109343963A (zh) * 2018-10-30 2019-02-15 杭州数梦工场科技有限公司 一种容器集群的应用访问方法、装置及相关设备
CN111049796A (zh) * 2019-10-25 2020-04-21 中国通信服务股份有限公司 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法
CN111654559A (zh) * 2020-05-29 2020-09-11 深圳前海微众银行股份有限公司 一种容器数据传输方法及装置
CN111885075A (zh) * 2020-07-30 2020-11-03 广州华多网络科技有限公司 容器通信方法、装置、网络设备及存储介质
CN112153167A (zh) * 2020-08-06 2020-12-29 北京百度网讯科技有限公司 网际互连协议管理方法、装置、电子设备及存储介质
CN113037522A (zh) * 2019-12-24 2021-06-25 华为数字技术(苏州)有限公司 一种容器单元管理方法及相关设备
US20210328858A1 (en) * 2020-04-16 2021-10-21 Ribbon Communications Operating Company, Inc. Communications methods and apparatus for migrating a network interface and/or ip address from one pod to another pod in a kubernetes system
CN113760452A (zh) * 2021-08-02 2021-12-07 阿里巴巴新加坡控股有限公司 一种容器调度方法、系统、设备及存储介质
CN113766043A (zh) * 2021-05-11 2021-12-07 腾讯科技(深圳)有限公司 配置目标容器的方法、装置、计算机设备及存储介质
CN113810230A (zh) * 2021-09-16 2021-12-17 广州虎牙科技有限公司 对容器集群中的容器进行网络配置的方法、装置及系统
CN113886011A (zh) * 2021-09-29 2022-01-04 苏州浪潮智能科技有限公司 容器组pod的部署配置方法、装置、设备及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395781A (zh) * 2017-06-29 2017-11-24 北京小度信息科技有限公司 网络通信方法及装置
CN107580083A (zh) * 2017-09-20 2018-01-12 北京京东尚科信息技术有限公司 一种容器ip地址分配的方法和系统
CN109343963A (zh) * 2018-10-30 2019-02-15 杭州数梦工场科技有限公司 一种容器集群的应用访问方法、装置及相关设备
CN111049796A (zh) * 2019-10-25 2020-04-21 中国通信服务股份有限公司 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法
CN113037522A (zh) * 2019-12-24 2021-06-25 华为数字技术(苏州)有限公司 一种容器单元管理方法及相关设备
US20210328858A1 (en) * 2020-04-16 2021-10-21 Ribbon Communications Operating Company, Inc. Communications methods and apparatus for migrating a network interface and/or ip address from one pod to another pod in a kubernetes system
CN111654559A (zh) * 2020-05-29 2020-09-11 深圳前海微众银行股份有限公司 一种容器数据传输方法及装置
CN111885075A (zh) * 2020-07-30 2020-11-03 广州华多网络科技有限公司 容器通信方法、装置、网络设备及存储介质
CN112153167A (zh) * 2020-08-06 2020-12-29 北京百度网讯科技有限公司 网际互连协议管理方法、装置、电子设备及存储介质
CN113766043A (zh) * 2021-05-11 2021-12-07 腾讯科技(深圳)有限公司 配置目标容器的方法、装置、计算机设备及存储介质
CN113760452A (zh) * 2021-08-02 2021-12-07 阿里巴巴新加坡控股有限公司 一种容器调度方法、系统、设备及存储介质
CN113810230A (zh) * 2021-09-16 2021-12-17 广州虎牙科技有限公司 对容器集群中的容器进行网络配置的方法、装置及系统
CN113886011A (zh) * 2021-09-29 2022-01-04 苏州浪潮智能科技有限公司 容器组pod的部署配置方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115426313A (zh) * 2022-08-31 2022-12-02 中电云数智科技有限公司 一种基于ovn虚机网络的nat优化装置和方法
CN115426313B (zh) * 2022-08-31 2023-08-18 中电云数智科技有限公司 一种基于ovn虚机网络的nat优化装置和方法
CN116016438A (zh) * 2022-12-12 2023-04-25 上海道客网络科技有限公司 基于容器云平台的多子网统一分配ip地址的方法和系统
CN116016438B (zh) * 2022-12-12 2023-08-15 上海道客网络科技有限公司 基于容器云平台的多子网统一分配ip地址的方法和系统

Similar Documents

Publication Publication Date Title
CN111371627B (zh) 一种在Kubernetes中Pod设置多IP的方法
CN111224821B (zh) 安全服务部署系统、方法及装置
CN109995641B (zh) 一种信息处理方法、计算节点和存储介质
CN113810230B (zh) 对容器集群中的容器进行网络配置的方法、装置及系统
CN111510515B (zh) 一种区分混合应用环境的容器的方法及装置
US10785158B1 (en) System and method for provisioning both IPV4 and IPV6 internet service and load balancer service
CN114448937A (zh) 访问请求的响应方法和装置、存储介质
CN109150638A (zh) 一种路由管理方法及装置
CN115314353B (zh) 一种基于kubernetes实现单pod多网卡的装置和方法
CN107809495B (zh) 地址管理方法及装置
CN114172753B (zh) 地址预留的方法、网络设备和系统
CN110636149B (zh) 远程访问方法、装置、路由器及存储介质
CN117221110A (zh) 容器网络创建方法、装置、设备及存储介质
CN110247778B (zh) 操作系统安装方法、装置、电子设备及存储介质
CN109617720B (zh) 一种网络资源的分配方法和装置
CN107534678B (zh) 建立vnfm与vim之间的连接的方法、装置及系统
CN116566830A (zh) 一种网络配置方法、装置、系统、边缘设备及存储介质
CN104468159A (zh) 动态主机配置协议服务器、中继的管理方法及装置
CN107493181B (zh) 虚拟扩展端口的指示方法和装置
CN115334018A (zh) 基于Openstack的IaaS云架构的容器控制方法、装置及容器
CN114911577A (zh) 网络隔离规则的设置方法、装置、设备及存储介质
CN116418724A (zh) 服务访问方法、装置及负载均衡系统
CN114390101A (zh) 一种基于BGP组网的Kubernetes负载均衡方法
CN110365742B (zh) 多活负载均衡应用创建方法、装置、计算机设备及存储介质
CN115208857A (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