欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 对同一容器集群内的容器实例的网络隔离方法和装置独创技术38978字

对同一容器集群内的容器实例的网络隔离方法和装置

2021-01-27 02:27:29

对同一容器集群内的容器实例的网络隔离方法和装置

  技术领域

  本申请涉及计算机领域,尤其涉及一种对同一容器集群内的容器实例的网络隔离方法和装置。

  背景技术

  在公有云计算场景中,传统的,容器服务是以容器集群为单位向租户提供,容器集群包含容器管理平台。租户可以基于容器管理平台创建容器实例,在容器实例中部署自己的应用程序,并根据需要对容器实例进行增删改查等管理操作。在这种场景下,不同租户的网络隔离策略是集群级别的,即一个租户只能访问自己的容器集群,不能访问别的租户的容器集群,而同一个租户的容器集群中,各个容器实例彼此之前无需隔离。

  现有一种新的提供容器服务的方式,不再以容器集群为单位,而是以单个容器实例为单位向租户提供服务。相对于传统方式,新方式能够使得租户无需维护容器管理平台,而是不同的租户的容器实例均在同一个容器集群内,由云计算厂商来维护一个统一的容器管理平台。在这种场景下,不同租户之间的网络隔离策略是容器实例级别的(即租户只能访问自己的容器实例,而不能访问别的租户的容器实例)。

  在新场景下,相关技术中的容器实例之间不同租户隔离的方案:以Kubernetes容器管理平台为例,Kubernetes提供了NetworkPolicy,配合特定的网络插件可以实现对不同租户进行命名空间Namespace级别的网络隔离。这种网络隔离方案有以下问题:一、命名空间级别的网络隔离强度较低,不能满足租户的数据安全性需求。二、需要基于iptables实现,通过NetworkPolicy声明网络隔离规则,这些规则最后转化成iptables规则,由iptables来实现隔离效果,容器管理平台在接收到租户访问容器实例的请求时,需要查找iptable规则来确定是否允许传输,当iptable规则数量较大时,尤其在云计算环境下大量的租户和海量的容器实例的场景下,查找耗时长会导致出现网络延时长的性能问题。

  针对上述的问题,目前尚未提出有效的解决方案。

  发明内容

  本申请提供了一种对同一容器集群内的容器实例的网络隔离方法和装置,以至少解决相关技术中部署容器实例的集群中容器实例间网络隔离强度较低的技术问题。

  根据本申请实施例的一个方面,提供了一种对同一容器集群内的容器实例的网络隔离方法,所述容器集群包括多个容器实例,所述多个容器实例属于至少两个不同的租户,包括:

  在检测到目标租户发起的第一创建请求的情况下,创建目标网络空间的虚拟接口,其中,所述第一创建请求用于请求创建目标容器实例,所述目标网络空间为所述目标租户对应的网络空间;

  获取所述虚拟接口的目标地址信息;

  使用所述目标地址信息创建目标网络设备,其中,所述目标网络设备的地址信息为所述目标地址信息,所述目标网络设备用于作为所述目标容器实例的实例网卡。

  可选的,创建目标网络空间的虚拟接口包括:

  获取所述目标租户的租户信息;

  根据所述租户信息获取所述目标租户对应的目标授权令牌,其中,所述目标授权令牌用于对所述目标租户进行认证;

  使用所述目标授权令牌在所述目标网络空间上创建所述虚拟接口。

  可选的,根据所述租户信息获取所述目标租户对应的所述目标授权令牌包括:

  向第一组件的接口发送获取请求,其中,所述第一组件用于管理租户的授权令牌;

  获取所述第一组件的接口返回的所述目标授权令牌。

  可选的,使用所述目标授权令牌在所述目标网络空间上创建所述虚拟接口包括:

  向所述目标网络空间发送携带有所述目标授权令牌的第二创建请求,其中,所述第二创建请求用于请求在所述目标网络空间上创建所述虚拟接口;

  获取所述目标网络空间响应所述第二创建请求返回的指示信息,其中,所述指示信息用于指示所述虚拟接口创建成功,所述指示信息中携带有为所述虚拟接口分配的所述目标地址信息。

  可选的,使用所述虚拟接口的所述目标地址信息创建所述目标网络设备包括:

  创建第一网络设备,其中,所述第一网络设备的初始地址信息包括初始硬件地址;

  将所述初始硬件地址替换为目标硬件地址,得到第二网络设备,其中,所述目标地址信息包括所述目标硬件地址;

  将所述第二网络设备对接到所述目标网络空间,得到所述目标网络设备。

  可选的,将所述第二网络设备对接到所述目标网络空间,得到所述目标网络设备包括:

  将所述第二网络设备加入到目标网桥;

  调用第二组件将所述目标容器实例的网络命名空间调整为主机网络命名空间,其中,所述第二组件用于创建和运行所述目标容器实例;

  调用所述第二组件将所述第二网络设备指定为所述目标容器实例的所述实例网卡;

  将目标网络地址分配给所述第二网络设备,得到使用所述目标网络地址进行网络通信的所述目标网络设备,其中,所述目标地址信息包括所述目标网络地址。

  可选的,将目标网络地址分配给所述第二网络设备包括:

  在检测到所述目标容器实例启动的情况下,接收所述目标容器实例发送的分配请求,其中,所述分配请求用于请求为所述目标容器实例分配网络地址;

  响应所述分配请求,将所述目标网络地址发送至所述目标容器实例。

  根据本申请实施例的另一方面,还提供了一种对同一容器集群内的容器实例的网络隔离装置,所述容器集群包括多个容器实例,所述多个容器实例属于至少两个不同的租户,包括:

  第一创建模块,用于在检测到目标租户发起的第一创建请求的情况下,创建目标网络空间的虚拟接口,其中,所述第一创建请求用于请求创建目标容器实例,所述目标网络空间为所述目标租户对应的网络空间;

  获取模块,用于获取所述虚拟接口的目标地址信息;

  第二创建模块,用于使用所述目标地址信息创建目标网络设备,其中,所述目标网络设备的地址信息为所述目标地址信息,所述目标网络设备用于作为所述目标容器实例的实例网卡。

  根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

  根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

  在本申请实施例中,采用在检测到目标租户发起的第一创建请求的情况下,创建目标网络空间的虚拟接口,其中,第一创建请求用于请求创建目标容器实例,目标网络空间为目标租户对应的网络空间;获取虚拟接口的目标地址信息;使用目标地址信息创建目标网络设备,其中,目标网络设备的地址信息为目标地址信息,目标网络设备用于作为目标容器实例的实例网卡的方式,在检测到目标租户发起的用于请求创建目标容器实例的第一创建请求时,为目标容器实例创建目标网络空间的虚拟接口并获取虚拟接口的目标地址信息,使用该目标地址信息创建目标网络设备作为目标容器实例的实例网卡,达到了将目标租户创建的容器实例与其网络空间进行连接的目的,在集群中多租户的网络空间之间是天然隔离的关系,并且具有强隔离性,从而实现了提高部署容器实例的集群中容器实例间网络隔离强度的技术效果,进而解决了相关技术中部署容器实例的集群中容器实例间网络隔离强度较低的技术问题。

  附图说明

  此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

  为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

  图1是根据本申请实施例的对同一容器集群内的容器实例的网络隔离方法的硬件环境的示意图;

  图2是根据本申请实施例的一种可选的对同一容器集群内的容器实例的网络隔离方法的流程图;

  图3是根据本申请可选实施例的一种为pod进行网络配置过程的示意图;

  图4是根据本申请可选实施例的一种容器实例网络与VPC网络对接过程的示意图;

  图5是根据本申请实施例的一种可选的对同一容器集群内的容器实例的网络隔离装置的示意图;

  图6是根据本申请实施例的一种终端的结构框图。

  具体实施方式

  为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

  需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

  根据本申请实施例的一方面,提供了一种对同一容器集群内的容器实例的网络隔离的方法实施例,其中,所述容器集群包括多个容器实例,所述多个容器实例属于至少两个不同的租户。

  可选地,在本实施例中,上述对同一容器集群内的容器实例的网络隔离方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。本申请实施例的对同一容器集群内的容器实例的网络隔离方法可以由服务器103来执行,也可以由终端101来执行,还可以是由服务器103和终端101共同执行。其中,终端101执行本申请实施例的对同一容器集群内的容器实例的网络隔离方法也可以是由安装在其上的客户端来执行。

  图2是根据本申请实施例的一种可选的对同一容器集群内的容器实例的网络隔离方法的流程图,如图2所示,该方法可以包括以下步骤:

  步骤S202,在检测到目标租户发起的第一创建请求的情况下,创建目标网络空间的虚拟接口,其中,所述第一创建请求用于请求创建目标容器实例,所述目标网络空间为所述目标租户对应的网络空间;

  步骤S204,获取所述虚拟接口的目标地址信息;

  步骤S206,使用所述目标地址信息创建目标网络设备,其中,所述目标网络设备的地址信息为所述目标地址信息,所述目标网络设备用于作为所述目标容器实例的实例网卡。

  通过上述步骤S202至步骤S206,在检测到目标租户发起的用于请求创建目标容器实例的第一创建请求时,为目标容器实例创建目标网络空间的虚拟接口并获取虚拟接口的目标地址信息,使用该目标地址信息创建目标网络设备作为目标容器实例的实例网卡,达到了将目标租户创建的容器实例与其网络空间进行连接的目的,在集群中多租户的网络空间之间是天然隔离的关系,并且具有强隔离性,从而实现了提高部署容器实例的集群中容器实例间网络隔离强度的技术效果,进而解决了相关技术中部署容器实例的集群中容器实例间网络隔离强度较低的技术问题。

  此外,基于iptables实现的Kubernetes NetworkPolicy隔离方案规则数量大时性能会明显下降,导致数据传输的效率下降。通过上述步骤,达到容器实例间的强隔离效果的同时避免了通过查找大量规则的方式传输数据影响数据传输的效率,从而实现了提高部署容器实例的集群中数据传输的效率的技术效果,进而解决了部署容器实例的集群中使用的网络隔离方案导致数据传输的效率较低的技术问题。

  另一方面,基于iptables实现的Kubernetes NetworkPolicy隔离方案,也限制了集群kube-proxy组件只能使用iptables方案。kube-proxy组件是支持iptables、ipvs等多种模式的,使用NetworkPolicy则kube-proxy组件只能使用iptables模式,降低了kube-proxy组件的灵活性。通过上述步骤,使得kube-proxy组件的模式不再仅限于iptables模式,从而提高了kube-proxy组件的灵活性。

  可选地,在本实施例中,上述对同一容器集群内的容器实例的网络隔离方法可以但不限于通过将编写的代码封装为用于实现容器实例隔离功能的插件来执行,或者也可以通过用于实现容器实例隔离功能的应用程序、微服务等来执行。该插件、应用程序、微服务等可以但不限于部署在集群的服务器上。

  可选地,在本实施例中,上述插件可以但不限于为kubernetes网络插件(比如:CNI(Container Network Interface,容器网络接口)插件),当kubernetes创建容器实例(pod)时,调用该插件为pod进行网络配置。

  在步骤S202提供的技术方案中,目标租户可以但不限于是容器集群上的云租户。目标网络空间可以但不限于是云租户的虚拟私有云(VPC,Virtual Private Cloud)。

  可选地,在本实施例中,虚拟接口可以但不限于包括VIF接口。

  在步骤S204提供的技术方案中,目标地址信息可以但不限于包括虚拟接口的硬件地址和网络地址。

  在步骤S206提供的技术方案中,目标网络设备可以但不限于包括tap设备。目标网络设备作为目标容器实例的实例网卡,其地址信息使用了目标网络空间的虚拟接口的目标地址信息。目标容器实例的流量会通过目标网络设备进行网络传输,通过目标网络设备进行网络传输的流量使用的地址信息是目标网络空间的虚拟接口的地址信息,也就是说,目标容器实例的流量会通过目标网络空间的虚拟接口进行传输,从而实现了容器实例间的强网络隔离。

  作为一种可选的实施例,创建目标网络空间的虚拟接口包括:

  S11、获取所述目标租户的租户信息;

  S12、根据所述租户信息获取所述目标租户对应的目标授权令牌,其中,所述目标授权令牌用于对所述目标租户进行认证;

  S13、使用所述目标授权令牌在所述目标网络空间上创建所述虚拟接口。

  可选地,在本实施例中,目标租户的租户信息可以但不限于包括:租户标识usrId,虚拟网络标识vnetId,识别码列表sgUuidList等等。

  可选地,在本实施例中,目标授权令牌可以但不限于为auth-token。auth-token用于对目标租户的身份进行认证。

  可选地,在本实施例中,创建虚拟接口是需要进行安全认证,可以使用目标授权令牌对目标租户的身份进行安全认证。

  作为一种可选的实施例,根据所述租户信息获取所述目标租户对应的所述目标授权令牌包括:

  S21、向第一组件的接口发送获取请求,其中,所述第一组件用于管理租户的授权令牌;

  S22、获取所述第一组件的接口返回的所述目标授权令牌。

  可选地,在本实施例中,可以通过调用用于管理租户的授权令牌的第一组件的接口向第一组件请求获取目标租户的授权令牌,并接收第一组件返回的目标授权令牌。

  可选地,在本实施例中,第一组件可以但不限于是openstack keystone组件。该openstack keystone组件用于管理租户的授权令牌。

  作为一种可选的实施例,使用所述目标授权令牌在所述目标网络空间上创建所述虚拟接口包括:

  S31、向所述目标网络空间发送携带有所述目标授权令牌的第二创建请求,其中,所述第二创建请求用于请求在所述目标网络空间上创建所述虚拟接口;

  S32、获取所述目标网络空间响应所述第二创建请求返回的指示信息,其中,所述指示信息用于指示所述虚拟接口创建成功,所述指示信息中携带有为所述虚拟接口分配的所述目标地址信息。

  可选地,在本实施例中,可以但不限于通过调用openstack neutron组件的接口创建目标网络空间(VPC)的虚拟接口(VIF)。

  可选地,在本实施例中,可以但不限于向openstack neutron server发送第二创建请求来请求创建一个VIF,创建成后会返回该VIF的完整信息,其中包括该VIF的目标地址信息。

  作为一种可选的实施例,使用所述虚拟接口的所述目标地址信息创建所述目标网络设备包括:

  S41、创建第一网络设备,其中,所述第一网络设备的初始地址信息包括初始硬件地址;

  S42、将所述初始硬件地址替换为目标硬件地址,得到第二网络设备,其中,所述目标地址信息包括所述目标硬件地址;

  S43、将所述第二网络设备对接到所述目标网络空间,得到所述目标网络设备。

  可选地,在本实施例中,openstack neutron组件的接口返回的VIF的完整信息包括该VIF的目标硬件信息(比如MAC地址)。创建一个tap设备作为第一网络设备(此时tap设备会初始生成一个MAC地址),通过插件去修改这个MAC,将tap设备MAC地址设置成VIF的MAC地址,从而得到第二网络设备,将第二网络设备对接到VPC中,得到目标网络设备。

  作为一种可选的实施例,将所述第二网络设备对接到所述目标网络空间,得到所述目标网络设备包括:

  S51、将所述第二网络设备加入到目标网桥;

  S52、调用第二组件将所述目标容器实例的网络命名空间调整为主机网络命名空间,其中,所述第二组件用于创建和运行所述目标容器实例;

  S53、调用所述第二组件将所述第二网络设备指定为所述目标容器实例的所述实例网卡;

  S54、将目标网络地址分配给所述第二网络设备,得到使用所述目标网络地址进行网络通信的所述目标网络设备,其中,所述目标地址信息包括所述目标网络地址。

  可选地,在本实施例中,目标网桥可以但不限于是br_vm网桥。第二组件可以但不限于是容器运行时(containerruntime)组件。通过控制容器运行时(containerruntime)组件完成第二网络设备与目标网络空间的对接。

  可选地,在本实施例中,将tap设备添加到br_vm网桥,宿主机内核中的kvgw(kernelvirtualgateway)会将br_vm网桥上的流量转发到对应vpc中,从而实现容器实例网络与vpc网络的打通。

  可选地,在本实施例中,主机网络命名空间可以但不限于为host网络命名空间。

  作为一种可选的实施例,将目标网络地址分配给所述第二网络设备包括:

  S61、在检测到所述目标容器实例启动的情况下,接收所述目标容器实例发送的分配请求,其中,所述分配请求用于请求为所述目标容器实例分配网络地址;

  S62、响应所述分配请求,将所述目标网络地址发送至所述目标容器实例。

  可选地,在本实施例中,分配请求可以但不限于是基于DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)的请求。

  可选地,在本实施例中,网络地址可以但不限于包括IP地址。

  可选地,在本实施例中,创建VIF时会分配MAC地址与IP地址,使用这个MAC地址创建了tap设备并指定为容器实例的网卡,当实例启动时,是没有IP地址的,实例镜像预装了dhcpclient,会发起dhcp请求,请求分配IP,这时VIF创建时的IP便会分配给这个实例,配置到实例网卡上,实例使用这个IP与VPC内其它地址通信。

  本申请还提供了一种可选实施例,该可选实施例提供了一种容器实例下的多租户网络隔离的方案,该方案将实例(pod)网络对接云租户虚拟私有云(VPC,Virtual PrivateCloud)网络,实现租户间强网络隔离,并且能够不依赖iptables,不限制kube-proxy。

  在本可选实施例中,自定义kubernetes集群网络插件(比如CNI插件),通过该插件将实例(pod)网络对接云租户VPC网络,租户实例间通过VPC网络通信,不同租户的VPC天然隔离,从而实现多租户的实例网络隔离。图3是根据本申请可选实施例的一种为pod进行网络配置过程的示意图,如图3所示,当kubernetes创建实例(pod)时,CNI插件请求api-server获取租户信息(例如:usrId,vnetId,sgUuidList等)。调用openstack keystone组件的接口获取auth-token。使用auth-token调用openstack neutron组件的接口创建一个VPC的虚拟接口(VIF)。根据VIF返回的MAC地址创建以VIF的MAC地址为硬件地址的tap设备,并将tap设备加入到br_vm网桥。

  CNI插件还通过调用容器运行时组件进行容器实例网络与VPC网络的对接。图4是根据本申请可选实施例的一种容器实例网络与VPC网络对接过程的示意图,如图4所示,由于br_vm是在host网络命名空间的,容器运行时组件调整容器实例的网络命名空间为host网络命名空间,并指定CNI插件创建的tap设备为容器实例POT的实例网卡,容器实例启动后通过dhcp获取ip,完成容器实例网络与vpc网络的对接。

  需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

  通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

  根据本申请实施例的另一个方面,还提供了一种用于实施上述对同一容器集群内的容器实例的网络隔离方法的对同一容器集群内的容器实例的网络隔离装置,其中,所述容器集群包括多个容器实例,所述多个容器实例属于至少两个不同的租户。图5是根据本申请实施例的一种可选的对同一容器集群内的容器实例的网络隔离装置的示意图,如图5所示,该装置可以包括:

  第一创建模块52,用于在检测到目标租户发起的第一创建请求的情况下,创建目标网络空间的虚拟接口,其中,所述第一创建请求用于请求创建目标容器实例,所述目标网络空间为所述目标租户对应的网络空间;

  获取模块54,用于获取所述虚拟接口的目标地址信息;

  第二创建模块56,用于使用所述目标地址信息创建目标网络设备,其中,所述目标网络设备的地址信息为所述目标地址信息,所述目标网络设备用于作为所述目标容器实例的实例网卡。

  需要说明的是,该实施例中的发起模块52可以用于执行本申请实施例中的步骤S202,该实施例中的开启模块54可以用于执行本申请实施例中的步骤S204,该实施例中的发送模块56可以用于执行本申请实施例中的步骤S206。

  此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

  通过上述模块,在检测到目标租户发起的用于请求创建目标容器实例的第一创建请求时,为目标容器实例创建目标网络空间的虚拟接口并获取虚拟接口的目标地址信息,使用该目标地址信息创建目标网络设备作为目标容器实例的实例网卡,达到了将目标租户创建的容器实例与其网络空间进行连接的目的,在集群中多租户的网络空间之间是天然隔离的关系,并且具有强隔离性,从而实现了提高部署容器实例的集群中容器实例间网络隔离强度的技术效果,进而解决了相关技术中部署容器实例的集群中容器实例间网络隔离强度较低的技术问题。

  作为一种可选的实施例,所述第一创建模块包括:

  第一获取单元,用于获取所述目标租户的租户信息;

  第二获取单元,用于根据所述租户信息获取所述目标租户对应的目标授权令牌,其中,所述目标授权令牌用于对所述目标租户进行认证;

  第一创建单元,用于使用所述目标授权令牌在所述目标网络空间上创建所述虚拟接口。

  作为一种可选的实施例,所述第二获取单元用于:

  向第一组件的接口发送获取请求,其中,所述第一组件用于管理租户的授权令牌;

  获取所述第一组件的接口返回的所述目标授权令牌。

  作为一种可选的实施例,所述创建单元用于:

  向所述目标网络空间发送携带有所述目标授权令牌的第二创建请求,其中,所述第二创建请求用于请求在所述目标网络空间上创建所述虚拟接口;

  获取所述目标网络空间响应所述第二创建请求返回的指示信息,其中,所述指示信息用于指示所述虚拟接口创建成功,所述指示信息中携带有为所述虚拟接口分配的所述目标地址信息。

  作为一种可选的实施例,所述第二创建模块包括:

  第二创建单元,用于创建第一网络设备,其中,所述第一网络设备的初始地址信息包括初始硬件地址;

  第一替换单元,用于将所述初始硬件地址替换为目标硬件地址,得到第二网络设备,其中,所述目标地址信息包括所述目标硬件地址;

  第二替换单元,用于将所述第二网络设备对接到所述目标网络空间,得到所述目标网络设备。

  作为一种可选的实施例,所述第二替换单元用于:

  将所述第二网络设备加入到目标网桥;

  调用第二组件将所述目标容器实例的网络命名空间调整为主机网络命名空间,其中,所述第二组件用于创建和运行所述目标容器实例;

  调用所述第二组件将所述第二网络设备指定为所述目标容器实例的所述实例网卡;

  将目标网络地址分配给所述第二网络设备,得到使用所述目标网络地址进行网络通信的所述目标网络设备,其中,所述目标地址信息包括所述目标网络地址。

  作为一种可选的实施例,所述第二替换单元用于:

  在检测到所述目标容器实例启动的情况下,接收所述目标容器实例发送的分配请求,其中,所述分配请求用于请求为所述目标容器实例分配网络地址;

  响应所述分配请求,将所述目标网络地址发送至所述目标容器实例。

  此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

  根据本申请实施例的另一个方面,还提供了一种用于实施上述一种对同一容器集群内的容器实例的网络隔离方法的服务器或终端。

  图6是根据本申请实施例的一种终端的结构框图,如图6所示,该终端可以包括:一个或多个(图中仅示出一个)处理器601、存储器603、以及传输装置605,如图6所示,该终端还可以包括输入输出设备607。

  其中,存储器603可用于存储软件程序以及模块,如本申请实施例中的一种对同一容器集群内的容器实例的网络隔离方法和装置对应的程序指令/模块,处理器601通过运行存储在存储器603内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种对同一容器集群内的容器实例的网络隔离方法。存储器603可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器603可进一步包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

  上述的传输装置605用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置605包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置605为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

  其中,具体地,存储器603用于存储应用程序。

  处理器601可以通过传输装置605调用存储器603存储的应用程序,以执行下述步骤:

  在检测到目标租户发起的第一创建请求的情况下,创建目标网络空间的虚拟接口,其中,所述第一创建请求用于请求创建目标容器实例,所述目标网络空间为所述目标租户对应的网络空间;

  获取所述虚拟接口的目标地址信息;

  使用所述目标地址信息创建目标网络设备,其中,所述目标网络设备的地址信息为所述目标地址信息,所述目标网络设备用于作为所述目标容器实例的实例网卡。

  采用本申请实施例,提供了一种对同一容器集群内的容器实例的网络隔离的方案。在检测到目标租户发起的用于请求创建目标容器实例的第一创建请求时,为目标容器实例创建目标网络空间的虚拟接口并获取虚拟接口的目标地址信息,使用该目标地址信息创建目标网络设备作为目标容器实例的实例网卡,达到了将目标租户创建的容器实例与其网络空间进行连接的目的,在集群中多租户的网络空间之间是天然隔离的关系,并且具有强隔离性,从而实现了提高部署容器实例的集群中容器实例间网络隔离强度的技术效果,进而解决了相关技术中部署容器实例的集群中容器实例间网络隔离强度较低的技术问题。

  可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

  本领域普通技术人员可以理解,图6所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,终端还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。

  本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。

  本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行对同一容器集群内的容器实例的网络隔离方法的程序代码。

  可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

  可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

  在检测到目标租户发起的第一创建请求的情况下,创建目标网络空间的虚拟接口,其中,所述第一创建请求用于请求创建目标容器实例,所述目标网络空间为所述目标租户对应的网络空间;

  获取所述虚拟接口的目标地址信息;

  使用所述目标地址信息创建目标网络设备,其中,所述目标网络设备的地址信息为所述目标地址信息,所述目标网络设备用于作为所述目标容器实例的实例网卡。

  可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

  可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

  上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

  上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

  在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

  在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

  所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

  以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

《对同一容器集群内的容器实例的网络隔离方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)