CN111885075A - 容器通信方法、装置、网络设备及存储介质 - Google Patents

容器通信方法、装置、网络设备及存储介质 Download PDF

Info

Publication number
CN111885075A
CN111885075A CN202010752051.5A CN202010752051A CN111885075A CN 111885075 A CN111885075 A CN 111885075A CN 202010752051 A CN202010752051 A CN 202010752051A CN 111885075 A CN111885075 A CN 111885075A
Authority
CN
China
Prior art keywords
network
container
request
address
virtual
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
Application number
CN202010752051.5A
Other languages
English (en)
Other versions
CN111885075B (zh
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.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network 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 Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN202010752051.5A priority Critical patent/CN111885075B/zh
Publication of CN111885075A publication Critical patent/CN111885075A/zh
Application granted granted Critical
Publication of CN111885075B publication Critical patent/CN111885075B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种容器通信方法、装置、网络设备及存储介质,涉及计算机技术领域,该方法包括:获取容器产生的网络请求;判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络;当所述网络请求用于访问非容器网络时,通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。本申请可使容器通过其固定绑定的公网网络地址与外部公网服务进行网络通信。

Description

容器通信方法、装置、网络设备及存储介质
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种容器通信方法、装置、网络设备及存储介质。
背景技术
容器是利用Linux(Linux是一种操作系统)内核提供的资源限制及隔离功能,以及Linux内核命名空间,来创建独立软件容器的一种技术。利用容器技术,开发者可以将应用以及依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上。容器因其轻量化、易用、启动快等特点,受到了越来越多开发、测试、运维人员的青睐。例如,在公共云上,用于提供网络、计算服务的虚拟主机上,也常常部署有容器应用,以实现该应用的相应功能。因此,如何实现部署在主机上的容器的网络通信功能,成为了一个亟待解决的问题。
发明内容
本申请实施例提出了一种容器通信方法、装置、网络设备及存储介质,能够实现部署在虚拟主机上的容器的网络通信功能。
第一方面,本申请实施例提供了一种容器通信方法,该方法包括:获取容器产生的网络请求;判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络;当所述网络请求用于访问非容器网络时,通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。
第二方面,本申请实施例提供了一种容器通信装置,该装置包括:请求获取模块,用于获取容器产生的网络请求;请求判断模块,用于判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络;网络通信模块,用于当所述网络请求用于访问非容器网络时,通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。
第三方面,本申请实施例提供了一种网络设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的容器通信方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的容器通信方法。
本申请实施例提供的一种容器通信方法、装置、网络设备及存储介质,通过获取容器产生的网络请求,并判断该网络请求是否用于访问非容器网络,非容器网络为容器所处的虚拟网络之外的公网网络,当该网络请求用于访问非容器网络时,通过容器的公网网络地址进行网络通信,其中,该公网网络地址唯一绑定于该容器。可见,本申请中的容器存在固定的公共网络地址,使得容器在访问公网网络服务时,可通过该固定的公共网络地址进行网络通信,提高了容器的可用性,优化了容器的通信能力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种容器网络通信的网络框架示意图。
图2示出了本申请一个实施例提供的容器通信方法的流程示意图。
图3示出了本申请另一个实施例提供的容器通信方法的流程示意图。
图4示出了本申请实施例提供的一种容器通信方法的网络框架示意图。
图5示出了图3中的步骤S230的一种流程示意图。
图6示出了图5中的步骤S232的一种流程示意图。
图7示出了图5中的步骤S240的一种流程示意图。
图8示出了本申请另一个实施例提供的容器通信方法的流程示意图。
图9示出了本申请一个实施例提供的容器通信装置的模块框图。
图10示出了本申请实施例提供的一种网络设备的结构框图。
图11示出了本申请实施例的用于保存或者携带实现根据本申请实施例的容器通信方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
容器技术及相关应用得到了国内外越来越多的关注度,研发和应用推广势头也非常迅猛,尤其是Kubernetes占据容器编排的统治地位后,发展的更加迅猛。其中,Kubernetes是谷歌开源的容器集群管理系统,可以实现容器在大规模集群下的调度编排。
目前容器网络一般构建在虚拟网络,Kubernetes基于CNI(Container NetworkInterface,容器网络接口)标准来给容器配置网络,实现容器的网络IP(InternetProtocol,网际互连协议)分配以及容器之间的网络互通。其中,CNI是CNCF(Cloud NativeComputing Foundation,云原生计算基金会)旗下的一个项目,由一组用于配置Linux容器的网络接口的规范和库组成,同时还包含了一些插件,CNI仅关心容器创建时的网络分配,以及当容器被删除时释放网络资源。具体地,通常会规划一个虚拟网络,基于CNI技术与上层网络交换机和网关一起,实现一套虚拟的网络,使得容器与容器之间能够互相通信。也就是说,Kubenetes的容器网络调度方案通常是采用CNI插件来实现,CNI提供了一个标准,基于该技术规范和标准实现的插件,都可以与Kubernetes集成,为容器平台提供相应的网络方案。
现在常用的CNI容器网络插件是Flannel,Flannel插件的功能是让集群中的不同的主机节点上创建的容器,在集群内具有唯一的虚拟IP地址。Flannel的实质是一种覆盖网络(Overlay Network),也就是将TCP(Transmission Control Protocol,传输控制协议)数据包包装在另一种网络包里面进行路由转发和通信,Flanne目前支持udp(User DatagramProtocol,用户数据报协议)、vxlan(Virtual eXtensible Local Area Network,虚拟扩展局域网)、host-gw(host gateway,主机网关)、aws-vpc(Amazon Web Services-VirtualPrivate Cloud,亚马逊网络服务-虚拟私有云)、gce(Google Container Engine,谷歌容器管理服务)和alloc路由等数据转发方式,最常用的就是vxlan,这是一种通过udp来封装实际网络协议(TCP或者udp),实现整个Kubernetes集群内容器间的网络联通方式。目前常用的容器虚拟网络都与这种方式类似,他们能够解决容器间的网络通信。
举例对Flannel网络在Kubernetes集群中的容器网络通信方案进行说明,请参阅图1,图1示出了一种容器网络通信的网络框架示意图。
如图1所示,在一个Kubernetes集群中有K8S节点1(101)和K8S节点2(102)两个物理主机节点,集群中使用的容器网段为10.36.0.0/16,可以为每个主机节点在容器网段中分配一个子网段,以供主机节点上的容器分配IP地址。其中,针对主机节点101的配置可以包括:
主机节点101的IP地址为172.26.31.1,也即为主机节点101的etho物理网卡1011分配并绑定的IP地址为172.26.31.1;
在容器网段中为主机节点101分配的一个容器子网段为10.36.52.0/24;
在主机节点101上启动Pod1和Pod2两个容器,基于上述容器子网段,为容器Pod1分配的IP地址可以为10.36.52.2,也即为容器Pod1对应的虚拟网络接口veth0分配并绑定的IP地址为10.36.52.2;为容器Pod2分配的IP地址可以为10.36.52.3,也即为容器Pod2对应的虚拟网络接口veth1分配并绑定的IP地址为10.36.52.3;
配置一条路由规则route add 10.36.53.0/24mask 255.255.255.0172.26.31.2,表明访问网段10.36.53.0/24时,路由的下一跳是172.26.31.2,也就是说,访问10.36.53.0/24网段的数据包全部发送到172.26.31.2地址。
针对主机节点102的配置可以包括:
主机节点102的IP地址为172.26.31.2,也即为主机节点102的etho物理网卡1021分配并绑定的IP地址为172.26.31.2;
在容器网段中为主机节点102分配的一个容器子网段为10.36.53.0/24;
在主机节点102上启动Pod3和Pod4两个容器,基于上述容器子网段,为容器Pod3分配的IP地址可以为10.36.53.2,也即为容器Pod3对应的虚拟网络接口veth0分配并绑定的IP地址为10.36.53.2;为容器Pod4分配的IP地址可以为10.36.53.3,也即为容器Pod4对应的虚拟网络接口veth1分配并绑定的IP地址为10.36.53.3。
配置一条路由规则route add 10.36.52.0/24mask 255.255.255.0172.26.31.1,表明访问网段10.36.52.0/24时,路由的下一跳是172.26.31.1,也就是说,访问10.36.52.0/24网段的数据包全部发送到172.26.31.1地址。
当主机节点101上的两个容器互相访问时,可以通过cni0网桥(10.36.52.1,连接到该cni0网桥的容器可将该网桥用作网关)来实现网络数据包的转发;同理,当主机节点102上的两个容器互相访问时,也可通过cni1网桥(10.36.53.1)来实现网络数据包的转发。
而当主机节点101中的Pod1容器(10.36.52.2)要访问主机节点102上的容器Pod3(10.36.53.2)时,网络数据包可以先经过flannel.0设备,当flannel.0设备为一个vxlan设备时,可以对接收到的网络数据包做vxlan网络封包,然后到达主机层面,可由路由确定下一跳地址是172.26.31.2,然后网络数据包到达主机节点102,主机节点102根据网络数据包中的访问地址10.36.53.2,发现该网络数据包可以被cni1网桥设备(10.36.53.1)处理,于是该网络数据包可经过flannel.1设备,进行vxlan解包还原成正常的TCP包,经过cni1网桥转发到容器Pod3。
上述的虚拟网络方案中,以Flannel举例说明了容器网络的配置方案,通过在容器中绑定一个虚拟内部网络中的一个IP地址,以通过这个IP地址在整个虚拟网络中实现容器的网络互通,其他的网络实现方案(如Calico)在容器网络的配置上基本类似,都能够解决容器间的网络通信,就不再一一说明。然而,由于容器的网络是一个虚拟网络,它们实际分配的IP是虚拟IP,如果容器要与集群外的服务甚至于外部公司之间实现网络通信,使用这个虚拟IP就会存在一些问题。
比如,目前往往会有一些较为特殊的场景,现有容器的配置并无法满足需求。示例性地,容器中部署的某些应用需要访问外部公网服务,而外部公网服务需要对访问的IP进行白名单限制,以设置能通过的访问IP。而在现有的网络技术下,容器的网络是一个虚拟网络,为容器分配的IP是一个虚拟IP,当容器需要访问公网服务时,通常是通过NAT(NetworkAddress Translation,网络地址转换)技术将容器的虚拟IP地址转换成该容器所在主机的IP地址来实现,也就是说,容器对外的IP地址均为容器所在主机的IP地址。而当容器在当前主机下处于挂掉状态,Kubernetes将该容器换到新的主机上进行运行时,容器对外的IP地址又更新为容器所在新的主机的IP地址。在这种情况下,容器对外的IP并无法固定,外部公网服务也无法通过IP白名单来限制容器的访问通信。现有容器的可用性被限制,无法满足更多场景的需求。
发明人经过长时间的研究并提出了本申请实施例中的容器通信方法、装置、网络设备以及存储介质,容器可以存在固定的公共网络地址,使得容器在访问公网网络服务时,可通过该固定的公共网络地址进行网络通信,在外部公网服务需要对访问的IP进行白名单限制时,也能通过该固定的公共网络地址进行白名单限制,满足了一些特殊场景的需求,优化了容器的通信能力。下面将通过具体实施例进行详细说明。
请参阅图2,图2示出了本申请实施例提供的一种容器通信方法的流程示意图,可应用于网络设备,该网络设备上创建有容器。在具体的实施例中,该容器通信方法也可应用于如图9所示的容器通信装置600以及图10所示的网络设备700。下面将针对图2所示的流程进行详细的阐述。该容器通信方法可以包括以下步骤:
步骤S110:获取容器产生的网络请求。
由于Pod沙箱可以是若干相关容器的组合,即一个Pod可以由一个或多个容器组成,且Pod中的所有容器共享网络命名空间、IP地址和网络接口(端口),相互之间能通过localhost来发现和通信。因此,在本申请实施例中,容器也可以理解为Pod沙箱。
在本申请实施例中,当容器需要访问其他服务时,可以生成网络请求,从而运行有该容器的网络设备可以获取到该容器产生的网络请求。其中,网络请求可以用于请求网络通信,其可以是包含有请求的目的地址的数据报文,该目的地址可以是IP地址,也可以是MAC地址,以便指示网络请求的接收方,该接收方即为容器想要访问的服务方。除此之外,报文中还可以包含有具体的、需要被发送的数据内容。网络请求的具体内容在此不作限定。
在本申请实施例中,网络设备可以是能够运行容器的实体设备或虚拟设备,其可以是实体主机,可以是在实体主机上运行的虚拟主机,具体地网络设备类型在此并不作限定,仅需其可以在容器集群中作为节点注册即可。
步骤S120:判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络。若是,则可执行步骤S230;若否,则可执行步骤S140。
步骤S130:通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。
步骤S140:不执行通过所述容器的公网网络地址进行网络通信的步骤。
由于目前为容器分配的IP是一个虚拟IP,根据该虚拟IP虽然能解决容器集群内部网络的容器通信问题,但如果要与容器集群外的服务甚至于外部公网服务之间实现网络通信,使用这个虚拟IP就会存在一些问题。因此,在本申请实施例中,为了使容器满足更多场景的需求,可以根据容器访问的目的地的不同,进行不同处理操作。
具体地,可以在获取到容器产生的网络请求后,先对该网络请求进行访问目的地的判断,以确定该网络请求是用于访问该容器所处的容器网络,还是用于访问非容器网络。其中,非容器网络可以是该容器所处的虚拟网络之外的公网网络。当判定该网络请求用于访问非容器网络时,可以通过该容器的公网网络地址进行网络通信,其中,该公网网络地址唯一绑定于该容器。当判定该网络请求不是用于访问非容器网络时,可以不执行前述通过该容器的公网网络地址进行网络通信的步骤。
可以理解的是,当容器产生的网络请求是用于访问非容器网络时,可以认为该容器想要访问容器集群外的服务甚至于外部公网服务,如果仍然利用虚拟IP来进行对外网络通信,需要利用NAT技术将该虚拟IP地址转换成该容器所在主机的公网IP地址来实现,此时容器对外的IP地址为容器所在主机的IP地址,而这就会存在前述的容器对外的IP地址不固定的情况,即同一容器在另一个主机上运行时,该容器对外的IP地址又会更新为另一个主机的IP地址。因为容器对外的IP地址不固定,所以无法满足类似IP白名单限制容器访问的场景的需要。基于此,可以为该容器分配并绑定一个固定的公网IP,使得该容器无法在哪一个主机上运行,其对外的IP地址均为该固定的公网IP。如此,既可实现该容器与容器集群外的服务甚至于外部公网服务的网络通信,也可实现前述类似IP白名单限制容器访问的场景的需要,即通过在IP白名单中添加该容器的固定的公网IP,可以达到允许该容器访问而禁止其他容器访问的效果,满足了更多场景的需求,提高了容器的可用性。
此外,当容器产生的网络请求是用于访问该容器所处的虚拟网络时,可以认为该容器想要访问容器集群内部的服务,如前述集群内不同主机节点之间的网络通信,同一主机节点内不同容器的网络通信等,则可利用前述的网络配置进行实现,不需要利用该容器的固定的公网IP来实现。基于此,当容器产生的网络请求不是用于访问非容器网络时,可以不执行上述通过所述容器的公网网络地址进行网络通信即可。
在一些实施例中,上述判断网络请求是否用于访问非容器网络,可以是通过判定该网络请求所请求的目的地址是否处于容器集群所使用的容器网络网段中。其中,该容器集群为该容器所在的容器集群。具体地,当该网络请求所请求的目的地址未处于容器集群所使用的容器网络网段中时,可以认为该容器想要访问容器集群外的服务甚至于外部公网服务,也即可判定该容器当前产生的网络请求是用于访问非容器网络,需要通过容器的公网网络地址进行网络通信。当该网络请求所请求的目的地址处于容器集群所使用的容器网络网段中时,可以认为该容器想要访问容器集群内的内部服务,也即可判定该容器当前产生的网络请求是用于访问容器所处的虚拟网络,而不是用于访问非容器网络,不需要通过容器的公网网络地址进行网络通信。
在一些实施例中,上述通过容器的公网网络地址进行网络通信,可以是预先创建一个与容器对应的新的网络接口,并为该新的网络接口分配并绑定上述固定的IP地址,从而在容器产生的网络请求是用于访问非容器网络时,可以将该网络请求通过这个新的网络接口转发至网络请求中的目的地址,实现了通过容器的公网IP进行网络通信的功能。
本申请实施例提供的容器通信方法,通过获取容器产生的网络请求,并判断该网络请求是否用于访问非容器网络,非容器网络为容器所处的虚拟网络之外的公网网络,当该网络请求用于访问非容器网络时,通过容器的公网网络地址进行网络通信,其中,该公网网络地址唯一绑定于该容器。可见,本申请中的容器存在固定的公共网络地址,使得容器在访问公网网络服务时,可通过该固定的公共网络地址进行网络通信,满足了一些特殊场景的需求,提高了容器的可用性,优化了容器的通信能力。
请参阅图3,图3示出了本申请另一实施例提供的一种容器通信方法的流程示意图,可应用于网络设备,该容器通信方法可以包括:
步骤S210:获取容器产生的网络请求。
步骤S220:判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络。若是,则可执行步骤S230;若否,则可执行步骤S240。
步骤S230:通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。
在本申请实施例中,步骤S210~S230可以参阅前述实施例的内容,此处不再赘述。
在一些实施例中,可以预先在网络设备中创建与公网网络对应的虚拟网卡,以通过该虚拟网卡实现容器的固定IP调度。从而后续在容器需要访问非容器网络时,可以通过该虚拟网卡实现容器与非容器网络服务的网络通信。
作为一种实施方式,可以先在网络层面预先做好公网IP的申请以及Pod容器的定义设置。具体地,可以先为容器申请一个公网IP地址,然后为Pod容器定义好注解,该注解中可以设置好Pod容器需要固定的公网IP地址的基础信息。
由于网络中计算机的数量越来越多,以太网存在冲突严重,广播泛滥及安全性无法保障等问题,因此,可以利用VLAN子网技术有效利用网络空间,解决网络广播冲突问题。其中,VLAN(Virtual local area network,虚拟局域网)是将一个物理的局域网在逻辑上划分为多个广播域的技术。通过在交换机上配置VLAN,一个VLAN对应一个子网,可以实现在同一个VLAN内的用户可以进行二层互访,不同VLAN间的用户被二层隔离,这样既能够隔离广播域,也能提升网络的安全性。VLAN是一组与位置无关的逻辑端口,也相当于一个独立的三层网络,不同VLAN通信必须通过路由器进行通信。可以理解的是,VLAN本质就是指一个网段,之所以叫做虚拟的局域网,是因为它是在虚拟的路由器的接口下创建的网段。
作为一种实施方式,可以申请一个公网IP网段,用于为容器分配公网IP地址。如公网IP网段可以是220.221.222.192/27。然后在外网交换机上分配一个VLAN,以让该VLAN对应申请的这批公网IP网段,并设置好对应的路由规则。例如,请参阅图4,在外网交换机300上配置一个ID为111的VLAN,该VLAN对应的公网的子网网段为220.221.222.192/27。然后将外网交换机上的相应端口的类型更改汇聚链接,其中,相应端口可以是用于部署容器的Kubernetes主机节点与外网交换机连接时对应的端口。最后,基于前述设置,可以为Pod容器定义好注解,该注解中设置好Pod容器需要固定的公网IP地址的基础信息。示例性地,基于公网IP网段220.221.222.192/27,为Pod容器分配的固定IP地址可以是221.228.79.195/27,此时,注解可以是aquaman.yy.com/cni_fixedip1:'{"vlanId":111,"ip":"221.228.79.195/27","linkType":"CTL"}'。
其中,VLAN汇聚连接(Trunk Link)可以理解为在交换机上能够转发多个不同VLAN的通信的端口,汇聚链路上流通的数据帧,都被附加了用于标识分属于哪个VLAN的特殊信息,从而后续可根据该VLAN标识将数据帧转发到对应端口。
在一些实施例中,在网络层面预先做好公网IP的申请以及Pod容器的定义设置后,可以在CNI插件实现容器的固定IP地址的绑定。具体地,可以是在Kubernetes创建Pod沙箱时,识别前述Pod中的注解内容,以获取容器需要固定的IP地址、固定IP对应的网络掩码、VLANID信息等。然后将网络设备的物理网卡设置为混杂模式(Promiscuous),从而容器产生的网络请求数据可以经过该物理网卡接口转发出去。其中,在混杂模式下的网卡能够接收一切通过它的数据,而不管该数据目的地址是否是它。
然后可以在网络设备上划分子网网络,并为物理网卡创建与传入的VLANID对应的虚拟网卡,该虚拟网卡可预先配置有前述公网网段的网段信息,从而该虚拟网卡与前述申请的公网网段对应。同时在容器中创建一个新的网络接口,并为该网络接口绑定前述分配的固定公网IP地址,使得容器产生的用于访问外网的网络请求可以通过该网络接口发送出。其中,可以将该新的网络接口指向该虚拟网卡,也即该新的网络接口的父设备为该虚拟网卡,使得通过该网络接口发送出的网络请求数据可以经过该虚拟网卡转发出去。由于该虚拟网卡是基于物理网卡创建的,因此,该虚拟网卡接收到网络请求数据时,可以直接将该数据发送至对应的物理网卡,由物理网卡将该请求数据转发至对应连接的外网交换机。
例如,请参阅图4,主机节点104上创建有与VLANID111对应的虚拟网卡Eth0.111,其中,“111”表明该虚拟网卡Eth0.111与VLANID111的公网网段对应,且该虚拟网卡基于物理网卡Eth0创建。同时主机节点104上运行的Pod2容器中也创建有一个新的网络接口outer0设备,该outer0设备的父设备为虚拟网卡Eth0.111,其该outer0设备绑定前述分配的固定公网IP地址221.228.79.195/27,并设置对应的子网掩码。从而当容器产生用于访问外网的数据请求时,可以将该数据请求经过网络接口outer0设备发出,并传输至虚拟网卡Eth0.111,由虚拟网卡Eth0.111转发至对应的物理网卡Eth0,由物理网卡将该请求数据转发至对应连接的外网交换机。
在一些实施例中,由于该虚拟网卡与前述申请的公网网段对应,因此,只要是绑定了该公网网段下的公网IP地址的容器,其对应的网络接口的父设备都可以是该虚拟网卡,也即该虚拟网卡可以对应多个网络接口。同理,由于可以在网络设备上划分多个子网网络,因此,也可以基于每个子网网络对应创建一个虚拟网卡,因此,网络设备上的网络接口和虚拟网卡的数量都可为多个,在此并不作限定。
基于前述设置,从而在获取到容器产生的网络请求,并判断出该网络请求用于访问非容器网络时,可以通过上述新建的网络接口和虚拟网卡将该网络请求发送出去,实现于外网的网络通信。
具体地,请参阅图5,步骤S230可以包括:
步骤S231:将所述网络请求通过与所述容器对应的网络接口传输至虚拟网卡,其中,所述网络接口预先配置有唯一绑定于所述容器的公网网络地址。
其中,当判断出该网络请求用于访问非容器网络时,与容器对应的网络接口即为前述预先绑定有固定公网IP地址的网络接口,如图4中的网络接口outer0设备。在一些实施方式中,可以在容器中修改路由表,使访问非容器网络的数据包,路由的出口设备为该预先配置有唯一绑定于该容器的公网网络地址的网络接口设备。从而在获取到容器产生的用于访问非容器网络的数据包时,可以根据路由表,将该数据包通过该网络接口发出。
该网络请求通过上述网络接口发出后,可以传输至虚拟网卡。其中,该虚拟网卡为前述新创建的与公网网段对应的虚拟网卡,如图4中的虚拟网卡Eth0.111。由于该网络接口的父设备为该与公网网段对应的虚拟网卡,因此,该网络接口设备在获取到网络请求时,可以自动传输至其父设备,也即该虚拟网卡。
步骤S232:将所述网络请求通过所述虚拟网卡发送至处于所述公网网络中的网络交换设备,所述网络交换设备用于将所述网络请求转发至所述网络请求中的目的地址,所述网络交换设备对应的公网网段包括所述公网网络地址。
虚拟网卡在获取到来自上述网络接口发送的网络请求后,可以将该网络请求发送至处于公网网络中的网络交换设备,该网络交换设备可用于将网络请求转发至网络请求中的请求的目的地址。其中,该网络交换设备可以是前述的外网交换机,也可以是路由器,在此并不做限定,仅需该网络交换设备可以实现路由交互功能,且能够将网络请求发送至网络请求中的请求的目的地址。
在一些实施例中,网络交换设备为前述的外网交换机时,由于外网交换机配置了一个与容器固定公网IP对应的公网网段,因此,该容器产生的网络请求在网络中传输时,可以根据其固定公网IP地址,传输至对应的公网网段网络中。具体地,可以根据容器绑定的固定公网IP地址,确定该固定公网IP地址所属的公网网段,如前述的VLANID,从而可确定配置有该公网网段的外网交换机,进而可以将该网络请求准确的传输到该外网交换机,由该外网交换机将网络请求转发出去。
由于一个以太网卡虽然可以添加多个IP地址,却不能添加多个MAC地址,因为MAC地址是通过其全球唯一性来标识一个以太网卡。在一些情况下,即使利用创建ethx:y(如eth0:1)这样的方式来创建虚拟网卡,这些“网卡”的MAC地址和ethx都是一样的,本质上,它们还是一块网卡。因此,在一些实施例中,上述新创建的网络接口可以是利用MACVLAN网卡虚拟技术创建出的。MACVLAN本身是linux的一个内核模块,它是一种将以太网卡虚拟成多块独立的以太网卡的技术,也就是可以创建多个网络接口,每个网络接口可以配置自己的IP和MAC地址,因此MACVLAN本质上是一种网卡虚拟化技术,MACVLAN可以直接通过以太网卡连接到物理网络,性能极好。
具体地,上述创建的配置有唯一绑定于容器的公网网络地址的网络接口,可以是利用MACVLAN网卡虚拟技术创建的macvlan设备,该macvlan设备的父设备为对应创建的虚拟网卡。然后将macvlan设备设置到Pod容器所在的命名空间。其中,Linux在网络栈中引入网络命名空间,可以将独立的网络协议栈隔离到不同的命令空间中,彼此间无法通信,容器利用这一特性,可以实现不同容器间的网络隔离。在一些实施例中,也可以对macvlan设备更换名称,如修改macvlan设备的名称为前述的outer0设备,然后再对该outer0设备绑定分配的固定公网IP地址,并设置网络掩码。
在一些实施例中,为了实现上述通过容器的公网网络地址进行网络通信,可以是在该在容器中修改路由表,使得出去外网的的数据包,路由的出口设备是前述新创建的网络接口,如outer0设备,路由网关地址是分配的公共网段的网关地址,如前述子网网段220.221.222.192/27的网关地址可以是该网段下的第一个IP地址:220.221.222.193。
在一些实施例中,上述配置有唯一绑定于容器的公网网络地址的网络接口是利用MACVLAN网卡虚拟技术创建的macvlan设备时,还可以实现数据包的VLANID标签的自动添加,从而主机节点可以根据添加了VLANID标签的数据包,准确传输至对应VLAN的外网交换机上。
具体地,请参阅图6,步骤S232可以包括:
步骤S2321:通过所述虚拟网卡添加所述网段信息于所述网络请求中。
其中,该网段信息可以是至子网网段的ID号,可以是VLANID。
由于利用MACVLAN网卡虚拟技术来创建网络接口时,其对应创建的虚拟网卡可具备一个特殊功能,VLANID标签的自动添加。从而当该虚拟网卡接收到来自网络接口发送的网络请求时,该虚拟网卡可自动再该网络请求对应的数据包上添加VLANID。该VLANID可根据该虚拟网卡所指向的公网网段确定。例如,前述创建的虚拟网卡Eth0.111,指向的是ID为111的VLAN,因此,该虚拟网卡可以自动在接收到的来自网络接口发送的数据包上添加VLANID为111的字段。
步骤S2322:通过所述虚拟网卡将所述网络请求传输至所述网络设备中的物理网卡。
步骤S2323:所述物理网卡根据所述网络请求中添加的所述网段信息,将所述网络请求发送至与所述网段信息对应的处于所述公网网络中的网络交换设备,其中,所述网络交换设备预先配置有所述公网网段。
虚拟网卡在网络请求中添加了对应的公网网段信息后,可将该网络请求传输至所述网络设备中的物理网卡,以通过该物理网卡将网络请求转发到对应的网络交互设备上,以通过该网络交互设备将网络请求发送出去。具体地,网络设备的物理网卡可根据网络请求中添加的网段信息,将网络请求准确发送至与该网段信息对应的处于公网网络中的网络交换设备。其中,该网络交互设备可以是前述预先配置好申请公网网段的外网交换机。
综上,基于前述配置,可以实现在获取到用于访问非容器网络的网络请求时,可以通过前述配置好的唯一绑定于容器的公网网络地址的网络接口,以及该网络接口对应的虚拟网卡,将该网络请求准确发送至公网网络中的网络交互设备,实现与非容器网络的网络通信。
步骤S240:通过所述容器于所述虚拟网络下唯一绑定的虚拟网络地址进行网络通信。
在一些实施例中,在获取到不是用于访问非容器网络的网络请求时,可以认为该网络请求是用于访问容器所处的虚拟网络内的私有网络(内部网络)。由于容器集群网络中的不同的主机节点上创建的容器在容器集群网络内具有唯一的虚拟IP地址,因此,在获取到不是用于访问非容器网络的网络请求时可以基于容器所配置的虚拟IP地址实现网络通信。其中,该虚拟IP地址为容器于虚拟网络下唯一绑定的虚拟网络地址。
在一下实施例中,通过容器的虚拟IP地址进行网络通信时,可以通过容器对应的另一个网络接口进行。也就是说,可以为容器创建两个网络接口,一个用于发送用于访问非容器网络的网络请求,另一个用于发送用于访问容器所处的虚拟网络内的私有网络的网络请求。
具体地,请参阅图7,步骤S240可以包括:
步骤S241:当所述网络请求用于访问所述容器所处的虚拟网络时,将所述网络请求通过与所述容器对应的虚拟网络接口传输至容器插件设备,其中,所述虚拟网络接口预先配置有所述容器于所述虚拟网络下唯一绑定的虚拟网络地址,所述容器插件设备用于在所述虚拟网络中传输数据。
步骤S242:通过所述容器插件设备将所述网络请求发送至所述网络请求中的目的地址。
在一些实施例中,当容器产生的网络请求用于访问该容器所处的虚拟网络时,可以将该网络请求通过与该容器对应的虚拟网络接口传输至容器插件设备,通过该容器插件设备将网络请求发送至网络请求中的目的地址。其中,该虚拟网络接口预先配置有该容器于虚拟网络下唯一绑定的虚拟网络地址,该容器插件设备用于在该虚拟网络中传输数据。
其中,虚拟网络接口和容器插件设备可以是现有可用于实现容器虚拟网络内的网络通信的网络接口和容器插件,例如,前述的Flannel插件、cni网桥等又例如图1中所实现的容器通信。
示例性地,请参阅图4,主机节点104上运行的Pod2容器中创建有两个网络接口,一个是用于发送用于访问该容器所处的虚拟网络的网络请求的etho虚拟网络接口,另一个是用于发送用于访问非容器网络的网络请求的outer0网络接口。同时也创建有与etho虚拟网络接口对应的容器插件设备cni网桥,利用该cni网桥实现访问内部网络请求的路由转发。也创建有与outer0网络接口对应的虚拟网卡Eth0.111,利用该虚拟网卡Eth0.111实现访问外部网络请求的路由转发。
在一些实施例中,上述虚拟网络接口和容器插件设备可以是和前述的网络接口和虚拟网卡同时创建并启动。也可以是一开始就创建好的,既已经是现有的网络配置。在这种情况下,本申请可在现在的网络方案的基础上,为容器增加一个固定公网IP地址即可,也即进行前述固定公网IP地址的配置即可。使得当容器访问内部网络时,依然采用原来的私有IP地址,而当访问其他公网服务时,通过该容器固定的公网IP地址与外部服务通信。
本申请实施例提供的容器通信方法,通过获取容器产生的网络请求,并判断该网络请求是否用于访问非容器网络,非容器网络为容器所处的虚拟网络之外的公网网络,当该网络请求用于访问非容器网络时,通过容器的公网网络地址进行网络通信,其中,该公网网络地址唯一绑定于该容器。当所述网络请求用于访问所述容器所处的虚拟网络时,通过所述容器于所述虚拟网络下唯一绑定的虚拟网络地址进行网络通信。可见,本申请中的容器存在固定的公共网络地址和容器网络下的虚拟网络地址,使得容器在访问公网网络服务时,可通过该固定的公共网络地址进行网络通信,而在访问内部网络服务时,可通过该虚拟网络地址进行网络通信。从而容器既可在容器网络中实现与其他容器的网络互通,也可与Kubernetes容器集群外的服务甚至于外部公网服务之间实现网络通信,同时也满足了一些特殊场景的需求,提高了容器的可用性,优化了容器的通信能力。
请参阅图8,图8示出了本申请又一实施例提供的一种容器通信方法的流程示意图,可应用于网络设备,该容器通信方法可以包括:
步骤S310:接收来自所述虚拟网络之外的的访问请求,所述访问请求中包含目标公网地址。
在一些实施例中,在配置好容器的固定公网地址后,可以将该容器的公网网络地址和对应的MAC地址进行广播,从而外部业务就能够通过该公网IP地址访问到该容器。在一些特殊的场景,如IP白名单限制,也能通过该广播后的公网网络地址进行设置。具体地,容器可以发起一个ARP(Address ResolutionProtocol,地址解析协议)广播协议请求,以在VLAN网络内把自己的IP地址与mac地址的信息向外宣告。从而公网网络中的网络交换设备可以获取到该容器的IP地址与mac地址。
由于在容器中,设置好了出口路由规则,当容器访问公网网络服务时,下一跳是该公网网络VLAN的网关地址,所以服务方接受到的网络IP地址,就是容器绑定的固定公网IP地址。在一些实施例中,当公网服务方需要访问某个容器时,可以根据获取到该容器绑定的固定公网IP地址,发起访问请求,该访问请求中可以包括要访问的目标容器的目标公网IP地址。
在一些实施例中,公网网络中的网络交换设备在接收到包含有目标公网IP地址的访问请求时,可以根据存储的路由表中的目标公网IP地址与mac地址,确定出该访问请求的下一跳。从而可以将该访问请求发送至运行有该容器的网络设备的物理网卡接口。从而网络设备可以接收到来自虚拟网络之外的访问请求。
步骤S320:根据所述目标公网地址,将所述访问请求发送至所述网络设备中与所述目标公网地址对应的目标容器,其中,所述目标公网地址唯一绑定于所述目标容器。
网络设备在获取到来自容器所处的虚拟网络之外的的访问请求时,可以根据该访问请求中的目标公网地址,确定与该目标公网地址对应的网络接口。从而可以该将访问请求通过前述虚拟网卡发送至该网络接口,从而该网络接口对应的目标容器可以接收到该访问请求,从而实现了外部业务通过容器固定绑定的公网IP地址访问到容器。
本申请实施例提供的容器通信方法,在容器配置好固定的公网IP地址后,可以接收来自容器所处虚拟网络之外的的访问请求,该访问请求中包含目标公网地址,然后可根据访问请求中的目标公网地址,将访问请求发送至网络设备中与目标公网地址对应的目标容器,其中,该目标公网地址唯一绑定于目标容器。可见,本申请中的容器存在固定的公共网络地址,使得公网网络服务在访问容器时,可通过该固定的公共网络地址进行网络通信,同时该固定的公共网络地址也可以满足了一些特殊场景的需求,提高了容器的可用性,优化了容器的通信能力。
请参阅图9,图9示出了本申请实施例提供的一种容器通信装置600的结构框图,该容器通信装置600应用于创建有容器的网络设备。该容器通信装置600可以包括:请求获取模块610、请求判断模块620以及网络通信模块630。其中,请求获取模块610用于获取容器产生的网络请求;请求判断模块620用于判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络;网络通信模块630用于当所述网络请求用于访问非容器网络时,通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。
在一些实施例中,上述网络通信模块630可以包括:第一传输单元和第二传输单元。其中,第一传输单元用于当所述网络请求用于访问非容器网络时,将所述网络请求通过与所述容器对应的网络接口传输至虚拟网卡,其中,所述网络接口预先配置有唯一绑定于所述容器的公网网络地址;第二传输单元用于将所述网络请求通过所述虚拟网卡发送至处于所述公网网络中的网络交换设备,所述网络交换设备用于将所述网络请求转发至所述网络请求中的目的地址,所述网络交换设备对应的公网网段包括所述公网网络地址。
在一些实施例中,虚拟网卡可以预先配置有所述公网网段的网段信息,上述第二传输单元可以具体用于:通过所述虚拟网卡添加所述网段信息于所述网络请求中;通过所述虚拟网卡将所述网络请求传输至所述网络设备中的物理网卡;所述物理网卡根据所述网络请求中添加的所述网段信息,将所述网络请求发送至与所述网段信息对应的处于所述公网网络中的网络交换设备,其中,所述网络交换设备预先配置有所述公网网段。
在一些实施例中,容器通信装置600还可以包括:内部通信模块,用于当所述网络请求用于访问所述容器所处的虚拟网络时,通过所述容器于所述虚拟网络下唯一绑定的虚拟网络地址进行网络通信。
进一步地,在一些实施例中,上述内部通信模块可以具体用于:当所述网络请求用于访问所述容器所处的虚拟网络时,将所述网络请求通过与所述容器对应的虚拟网络接口传输至容器插件设备,其中,所述虚拟网络接口预先配置有所述容器于所述虚拟网络下唯一绑定的虚拟网络地址,所述容器插件设备用于在所述虚拟网络中传输数据;通过所述容器插件设备将所述网络请求发送至所述网络请求中的目的地址。
在一些实施例中,容器通信装置600还可以包括:信息广播模块,用于将所述容器的公网网络地址和对应的MAC地址进行广播。
在一些实施例中,容器通信装置600还可以包括:访问接收模块和容器访问模块。其中,访问接收模块用于接收来自所述虚拟网络之外的的访问请求,所述访问请求中包含目标公网地址;容器访问模块用于根据所述目标公网地址,将所述访问请求发送至所述网络设备中与所述目标公网地址对应的目标容器,其中,所述目标公网地址唯一绑定于所述目标容器。
本申请实施例提供的容器通信装置用于实现前述方法实施例中相应的容器通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图10,图10其示出了本申请实施例提供的一种网络设备的结构框图。该网络设备800可以是智能手机、平板电脑、笔记本电脑、台式电脑、可穿戴终端设备等能够运行容器的计算机设备。本申请中的网络设备800可以包括一个或多个如下部件:处理器810、存储器820以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器820中并被配置为由一个或多个处理器810执行,一个或多个应用程序配置用于执行上述应用于网络设备的方法实施例中所描述的方法。
处理器810可以包括一个或者多个处理核。处理器810利用各种接口和线路连接整个网络设备800内的各个部分,通过运行或执行存储在存储器820内的指令、程序、代码集或指令集,以及调用存储在存储器820内的数据,执行网络设备800的各种功能和处理数据。可选地,处理器810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器810可集成中央处理器(CentralProcessing Unit,CPU)、容器通信器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块通信芯片进行实现。
存储器820可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器820可用于存储指令、程序、代码、代码集或指令集。存储器820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储网络设备800在使用中所创建的数据等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的网络设备的限定,具体的网络设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
综上,本申请实施例提供的网络设备用于实现前述方法实施例中相应的容器通信方法,并具有相应的方法实施例的有益效果,在此不再赘述。
请参阅图11,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质900中存储有程序代码,程序代码可被处理器调用执行上述应用于客户端的方法实施例中所描述的方法,也可以被处理器调用执行上述应用于服务器的方法实施例中所描述的方法。
计算机可读取存储介质900可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质900包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质900具有执行上述方法中的任何方法步骤的程序代码910的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码910可以例如以适当形式进行压缩。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种容器通信方法,其特征在于,应用于网络设备,所述方法包括:
获取容器产生的网络请求;
判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络;
当所述网络请求用于访问非容器网络时,通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。
2.根据权利要求1所述的方法,其特征在于,所述当所述网络请求用于访问非容器网络时,通过所述容器的公网网络地址进行网络通信,包括:
当所述网络请求用于访问非容器网络时,将所述网络请求通过与所述容器对应的网络接口传输至虚拟网卡,其中,所述网络接口预先配置有唯一绑定于所述容器的公网网络地址;
将所述网络请求通过所述虚拟网卡发送至处于所述公网网络中的网络交换设备,所述网络交换设备用于将所述网络请求转发至所述网络请求中的目的地址,所述网络交换设备对应的公网网段包括所述公网网络地址。
3.根据权利要求2所述的方法,其特征在于,所述虚拟网卡预先配置有所述公网网段的网段信息,所述将所述网络请求通过所述虚拟网卡发送至处于所述公网网络中的网络交换设备,包括:
通过所述虚拟网卡添加所述网段信息于所述网络请求中;
通过所述虚拟网卡将所述网络请求传输至所述网络设备中的物理网卡;
所述物理网卡根据所述网络请求中添加的所述网段信息,将所述网络请求发送至与所述网段信息对应的处于所述公网网络中的网络交换设备,其中,所述网络交换设备预先配置有所述公网网段。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述判断所述网络请求是否用于访问非容器网络之后,所述方法还包括:
当所述网络请求用于访问所述容器所处的虚拟网络时,通过所述容器于所述虚拟网络下唯一绑定的虚拟网络地址进行网络通信。
5.根据权利要求4所述的方法,其特征在于,所述当所述网络请求用于访问所述容器所处的虚拟网络时,通过所述容器于所述虚拟网络下唯一绑定的虚拟网络地址进行网络通信,包括:
当所述网络请求用于访问所述容器所处的虚拟网络时,将所述网络请求通过与所述容器对应的虚拟网络接口传输至容器插件设备,其中,所述虚拟网络接口预先配置有所述容器于所述虚拟网络下唯一绑定的虚拟网络地址,所述容器插件设备用于在所述虚拟网络中传输数据;
通过所述容器插件设备将所述网络请求发送至所述网络请求中的目的地址。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
将所述容器的公网网络地址和对应的MAC地址进行广播。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
接收来自所述虚拟网络之外的的访问请求,所述访问请求中包含目标公网地址;
根据所述目标公网地址,将所述访问请求发送至所述网络设备中与所述目标公网地址对应的目标容器,其中,所述目标公网地址唯一绑定于所述目标容器。
8.一种容器通信装置,其特征在于,应用于网络设备,所述装置包括:
请求获取模块,用于获取容器产生的网络请求;
请求判断模块,用于判断所述网络请求是否用于访问非容器网络,所述非容器网络为所述容器所处的虚拟网络之外的公网网络;
网络通信模块,用于当所述网络请求用于访问非容器网络时,通过所述容器的公网网络地址进行网络通信,所述公网网络地址唯一绑定于所述容器。
9.一种网络设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1-7任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。
CN202010752051.5A 2020-07-30 2020-07-30 容器通信方法、装置、网络设备及存储介质 Active CN111885075B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010752051.5A CN111885075B (zh) 2020-07-30 2020-07-30 容器通信方法、装置、网络设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010752051.5A CN111885075B (zh) 2020-07-30 2020-07-30 容器通信方法、装置、网络设备及存储介质

Publications (2)

Publication Number Publication Date
CN111885075A true CN111885075A (zh) 2020-11-03
CN111885075B CN111885075B (zh) 2023-04-07

Family

ID=73204568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010752051.5A Active CN111885075B (zh) 2020-07-30 2020-07-30 容器通信方法、装置、网络设备及存储介质

Country Status (1)

Country Link
CN (1) CN111885075B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112565047A (zh) * 2020-11-19 2021-03-26 浪潮思科网络科技有限公司 一种在docker中使用VPP构建网络的方法、装置、设备及介质
CN113364616A (zh) * 2021-06-01 2021-09-07 全知科技(杭州)有限责任公司 一种基于K8s开发的应用迁移到无网环境的方法
CN113497830A (zh) * 2021-06-25 2021-10-12 浙江大华技术股份有限公司 一种云网络通信的方法、平台、设备及存储介质
CN113660111A (zh) * 2021-07-21 2021-11-16 厦门亿联网络技术股份有限公司 一种4G Desk Phone外置协议栈的测试方法
CN113973028A (zh) * 2021-10-26 2022-01-25 亿次网联(杭州)科技有限公司 一种vpn通信方法、虚拟网卡、节点设备及存储介质
CN114124896A (zh) * 2021-11-03 2022-03-01 中盈优创资讯科技有限公司 一种解决客户与服务系统间广播域被隔离方法及装置
CN114157455A (zh) * 2021-11-16 2022-03-08 北京达佳互联信息技术有限公司 一种数据传输方法、装置、设备以及存储介质
CN114301913A (zh) * 2021-12-24 2022-04-08 杭州萤石软件有限公司 一种请求处理方法及系统
CN114338670A (zh) * 2021-12-24 2022-04-12 中汽创智科技有限公司 一种边缘云平台和具有其的网联交通三级云控平台
CN114363031A (zh) * 2021-12-29 2022-04-15 中国电信股份有限公司 一种网络访问方法及装置
CN114363170A (zh) * 2021-12-29 2022-04-15 中国电信股份有限公司 容器服务网络配置方法及相关产品
CN114465847A (zh) * 2022-01-21 2022-05-10 中国船舶重工集团公司第七0九研究所 一种基于容器的动态冗余可靠系统和方法
CN114528114A (zh) * 2020-11-09 2022-05-24 成都鼎桥通信技术有限公司 数据处理方法、装置及设备
CN114584504A (zh) * 2022-04-30 2022-06-03 苏州浪潮智能科技有限公司 一种ai训练平台的网卡通信方法、装置、设备及介质
CN114615109A (zh) * 2020-11-23 2022-06-10 北京达佳互联信息技术有限公司 容器网络创建方法、装置、电子设备及存储介质
CN114629744A (zh) * 2022-01-25 2022-06-14 浙江大华技术股份有限公司 基于macvlan主机网络的数据访问方法、系统及相关装置
CN114629844A (zh) * 2022-02-28 2022-06-14 浙江大华技术股份有限公司 一种报文转发的方法、装置及电子设备
CN114650223A (zh) * 2022-04-01 2022-06-21 明阳产业技术研究院(沈阳)有限公司 一种Kubernetes集群的网络配置方法、装置及电子设备
CN114760292A (zh) * 2020-12-25 2022-07-15 广东飞企互联科技股份有限公司 一种面向服务发现与注册的方法及装置
CN115174529A (zh) * 2021-03-18 2022-10-11 北京金山云网络技术有限公司 一种网络处理方法、装置、电子设备及存储介质
CN115189948A (zh) * 2022-07-11 2022-10-14 北京志凌海纳科技有限公司 一种CaaS平台中容器网络插件的实现方法和系统
CN116016320A (zh) * 2022-12-30 2023-04-25 中国联合网络通信集团有限公司 数据传输方法、装置及计算机可读存储介质
US11863614B2 (en) 2021-11-18 2024-01-02 Microsoft Technology Licensing, Llc UDP over HTTP loadbalancer for microservice environment
WO2024065182A1 (zh) * 2022-09-27 2024-04-04 西门子股份公司 网络配置方法、装置、电子设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140351593A1 (en) * 2013-05-23 2014-11-27 Mark Rodney Anson Process for encrypted login to a secure computer network, for the creation of a session of encrypted communications between computers and a device including a mobile phone logged into a network, for the persistence of encrypted communications between communication devices, and for the termination of communications
CN106210162A (zh) * 2016-06-29 2016-12-07 中国联合网络通信集团有限公司 通信控制方法及装置
CN106789931A (zh) * 2016-11-29 2017-05-31 北京元心科技有限公司 多系统的网络隔离共享方法及装置
CN107395781A (zh) * 2017-06-29 2017-11-24 北京小度信息科技有限公司 网络通信方法及装置
CN108600415A (zh) * 2018-05-28 2018-09-28 郑州云海信息技术有限公司 一种虚拟网络访问外网的方法、系统及sdn控制器
CN109547449A (zh) * 2018-11-29 2019-03-29 深圳市网心科技有限公司 一种安全检测方法及相关装置
US10348767B1 (en) * 2013-02-26 2019-07-09 Zentera Systems, Inc. Cloud over IP session layer network
CN110769075A (zh) * 2018-07-25 2020-02-07 中国电信股份有限公司 容器的通信方法、系统、控制器和计算机可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10348767B1 (en) * 2013-02-26 2019-07-09 Zentera Systems, Inc. Cloud over IP session layer network
US20140351593A1 (en) * 2013-05-23 2014-11-27 Mark Rodney Anson Process for encrypted login to a secure computer network, for the creation of a session of encrypted communications between computers and a device including a mobile phone logged into a network, for the persistence of encrypted communications between communication devices, and for the termination of communications
CN106210162A (zh) * 2016-06-29 2016-12-07 中国联合网络通信集团有限公司 通信控制方法及装置
CN106789931A (zh) * 2016-11-29 2017-05-31 北京元心科技有限公司 多系统的网络隔离共享方法及装置
CN107395781A (zh) * 2017-06-29 2017-11-24 北京小度信息科技有限公司 网络通信方法及装置
CN108600415A (zh) * 2018-05-28 2018-09-28 郑州云海信息技术有限公司 一种虚拟网络访问外网的方法、系统及sdn控制器
CN110769075A (zh) * 2018-07-25 2020-02-07 中国电信股份有限公司 容器的通信方法、系统、控制器和计算机可读存储介质
CN109547449A (zh) * 2018-11-29 2019-03-29 深圳市网心科技有限公司 一种安全检测方法及相关装置

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114528114B (zh) * 2020-11-09 2023-09-19 成都鼎桥通信技术有限公司 数据处理方法、装置及设备
CN114528114A (zh) * 2020-11-09 2022-05-24 成都鼎桥通信技术有限公司 数据处理方法、装置及设备
CN112565047B (zh) * 2020-11-19 2022-03-04 浪潮思科网络科技有限公司 一种在docker中使用VPP构建网络的方法、装置、设备及介质
CN112565047A (zh) * 2020-11-19 2021-03-26 浪潮思科网络科技有限公司 一种在docker中使用VPP构建网络的方法、装置、设备及介质
CN114615109A (zh) * 2020-11-23 2022-06-10 北京达佳互联信息技术有限公司 容器网络创建方法、装置、电子设备及存储介质
CN114615109B (zh) * 2020-11-23 2024-03-01 北京达佳互联信息技术有限公司 容器网络创建方法、装置、电子设备及存储介质
CN114760292A (zh) * 2020-12-25 2022-07-15 广东飞企互联科技股份有限公司 一种面向服务发现与注册的方法及装置
CN114760292B (zh) * 2020-12-25 2023-07-21 广东飞企互联科技股份有限公司 一种面向服务发现与注册的方法及装置
CN115174529B (zh) * 2021-03-18 2024-01-23 北京金山云网络技术有限公司 一种网络处理方法、装置、电子设备及存储介质
CN115174529A (zh) * 2021-03-18 2022-10-11 北京金山云网络技术有限公司 一种网络处理方法、装置、电子设备及存储介质
CN113364616A (zh) * 2021-06-01 2021-09-07 全知科技(杭州)有限责任公司 一种基于K8s开发的应用迁移到无网环境的方法
CN113497830A (zh) * 2021-06-25 2021-10-12 浙江大华技术股份有限公司 一种云网络通信的方法、平台、设备及存储介质
CN113660111A (zh) * 2021-07-21 2021-11-16 厦门亿联网络技术股份有限公司 一种4G Desk Phone外置协议栈的测试方法
CN113973028A (zh) * 2021-10-26 2022-01-25 亿次网联(杭州)科技有限公司 一种vpn通信方法、虚拟网卡、节点设备及存储介质
CN114124896A (zh) * 2021-11-03 2022-03-01 中盈优创资讯科技有限公司 一种解决客户与服务系统间广播域被隔离方法及装置
CN114124896B (zh) * 2021-11-03 2023-08-08 中盈优创资讯科技有限公司 一种解决客户与服务系统间广播域被隔离方法及装置
CN114157455A (zh) * 2021-11-16 2022-03-08 北京达佳互联信息技术有限公司 一种数据传输方法、装置、设备以及存储介质
US11863614B2 (en) 2021-11-18 2024-01-02 Microsoft Technology Licensing, Llc UDP over HTTP loadbalancer for microservice environment
CN114338670A (zh) * 2021-12-24 2022-04-12 中汽创智科技有限公司 一种边缘云平台和具有其的网联交通三级云控平台
CN114338670B (zh) * 2021-12-24 2023-12-26 中汽创智科技有限公司 一种边缘云平台和具有其的网联交通三级云控平台
CN114301913B (zh) * 2021-12-24 2024-03-08 杭州萤石软件有限公司 一种请求处理方法及系统
CN114301913A (zh) * 2021-12-24 2022-04-08 杭州萤石软件有限公司 一种请求处理方法及系统
CN114363031A (zh) * 2021-12-29 2022-04-15 中国电信股份有限公司 一种网络访问方法及装置
CN114363170A (zh) * 2021-12-29 2022-04-15 中国电信股份有限公司 容器服务网络配置方法及相关产品
CN114465847B (zh) * 2022-01-21 2024-05-28 中国船舶重工集团公司第七0九研究所 一种基于容器的动态冗余可靠系统和方法
CN114465847A (zh) * 2022-01-21 2022-05-10 中国船舶重工集团公司第七0九研究所 一种基于容器的动态冗余可靠系统和方法
CN114629744A (zh) * 2022-01-25 2022-06-14 浙江大华技术股份有限公司 基于macvlan主机网络的数据访问方法、系统及相关装置
CN114629744B (zh) * 2022-01-25 2024-01-16 浙江大华技术股份有限公司 基于macvlan主机网络的数据访问方法、系统及相关装置
CN114629844B (zh) * 2022-02-28 2024-04-05 浙江大华技术股份有限公司 一种报文转发的方法、装置及电子设备
CN114629844A (zh) * 2022-02-28 2022-06-14 浙江大华技术股份有限公司 一种报文转发的方法、装置及电子设备
CN114650223A (zh) * 2022-04-01 2022-06-21 明阳产业技术研究院(沈阳)有限公司 一种Kubernetes集群的网络配置方法、装置及电子设备
CN114650223B (zh) * 2022-04-01 2024-05-14 明阳产业技术研究院(沈阳)有限公司 一种Kubernetes集群的网络配置方法、装置及电子设备
WO2023206799A1 (zh) * 2022-04-30 2023-11-02 苏州浪潮智能科技有限公司 一种ai训练平台的网卡通信方法、装置、设备及介质
CN114584504A (zh) * 2022-04-30 2022-06-03 苏州浪潮智能科技有限公司 一种ai训练平台的网卡通信方法、装置、设备及介质
CN114584504B (zh) * 2022-04-30 2022-07-22 苏州浪潮智能科技有限公司 一种ai训练平台的网卡通信方法、装置、设备及介质
CN115189948A (zh) * 2022-07-11 2022-10-14 北京志凌海纳科技有限公司 一种CaaS平台中容器网络插件的实现方法和系统
CN115189948B (zh) * 2022-07-11 2023-05-12 北京志凌海纳科技有限公司 一种CaaS平台中容器网络插件的实现方法和系统
WO2024065182A1 (zh) * 2022-09-27 2024-04-04 西门子股份公司 网络配置方法、装置、电子设备和存储介质
CN116016320A (zh) * 2022-12-30 2023-04-25 中国联合网络通信集团有限公司 数据传输方法、装置及计算机可读存储介质
CN116016320B (zh) * 2022-12-30 2024-03-19 中国联合网络通信集团有限公司 数据传输方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN111885075B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN111885075B (zh) 容器通信方法、装置、网络设备及存储介质
US10541836B2 (en) Virtual gateways and implicit routing in distributed overlay virtual environments
US10778532B2 (en) Overlay network movement operations
US9602307B2 (en) Tagging virtual overlay packets in a virtual networking system
US8725898B1 (en) Scalable port address translations
CN103200069B (zh) 一种报文处理的方法和设备
WO2018137369A1 (zh) 混合云管理方法、装置和计算设备
US8484353B1 (en) Resource placement templates for virtual networks
KR101840904B1 (ko) 가상화된 네트워크와 비-가상화된 네트워크 간 가상화 게이트웨이
US20140254603A1 (en) Interoperability for distributed overlay virtual environments
US20150124823A1 (en) Tenant dhcp in an overlay network
WO2018032910A1 (zh) 一种跨网络通信的方法、设备
US20130058346A1 (en) Distributed Routing Domains in Multi-Tenant Datacenter Virtual Networks
US20130282884A1 (en) Enabling applications in a multi-transport stack environment
US20180069787A1 (en) Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network
EP4221103A1 (en) Public cloud network configuration method, and related device
JP2022541381A (ja) ハイブリッドクラウド環境における通信方法、ゲートウェイ、並びに管理方法及び装置
CN113676564B (zh) 数据传输方法、装置及存储介质
CN115686729A (zh) 容器集群网络系统、数据处理方法、设备及计算机程序产品
CN113726915A (zh) 网络系统及其中的报文传输方法和相关装置
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
WO2023231982A1 (zh) 一种基于公有云的vpc之间的通信方法及相关产品
WO2024037619A1 (zh) 一种基于云计算技术的虚拟实例创建方法和云管理平台
CN117499318B (zh) 云计算虚拟网络系统、及其使用方法、装置、设备及介质
CN117478446A (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
TA01 Transfer of patent application right

Effective date of registration: 20210120

Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 511400 24th floor, building B-1, North District, Wanda Commercial Plaza, Wanbo business district, No.79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou, Guangdong Province

Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20201103

Assignee: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2021440000054

Denomination of invention: Container communication method, device, network device and storage medium

License type: Common License

Record date: 20210208

EE01 Entry into force of recordation of patent licensing contract
GR01 Patent grant
GR01 Patent grant