用于动态容器网络管理的服务网络方法与流程

文档序号:35624426发布日期:2023-10-05 20:18阅读:33来源:国知局
用于动态容器网络管理的服务网络方法与流程
用于动态容器网络管理的服务网络方法
1.相关申请的交叉引用
2.本技术要求于2020年10月25日提交的、第63/105,320号美国临时申请的权益,以及于2021年5月28日提交的、第63/194,821号美国临时申请的权益,这两个申请中的每个的公开内容通过引用全部被结合。于2021年10月20日提交的、未决的美国申请17/506,640通过引用全部被结合。
附图说明
3.附图示出了多个示例性实施例,并且是本说明书的一部分。这些附图与以下描述一起,说明和解释本公开的各种原理。
4.图1为用于动态容器网络管理的示例性方法的流程图。
5.图2为用于动态容器网络管理的示例性系统的框图。
6.图3为用于动态容器网络管理的示例性网络的框图。
7.图4为示例性基于云的应用程序平台的框图。
8.图5为用于动态容器网络管理的示例性网络地址的框图。
9.在所有附图中,相同的附图标记和描述指代相似但不一定相同的元件。虽然本文所描述的示例性实施例很容易作出各种修改和替代形式,但仍通过示例的方式在附图中显示了多个具体实施例,并且在本文中将对这些具体实施例进行详细描述。然而,本文所描述的示例性实施例不旨在被限制为所公开的特定形式。而是,本公开涵盖了落入所附权利要求的范围内的所有修改、等同物和替代物。
具体实施方式
10.基于云的软件分发平台可以向用户提供对远程运行在该平台上的应用程序的基于云的访问。基于云的软件分发平台可以允许用户使用他或她自己的设备与该平台连接并访问应用程序,就好像应用程序在用户的设备上运行一样。该平台还可以允许用户运行应用程序,而不管用户设备的类型或操作系统(operating system,“os”)、该应用程序的预期操作环境如何。例如,用户可以使用移动设备来运行针对台式计算环境而设计的应用程序。即使应用程序不可以在用户设备上本地运行,该平台也可以提供对该应用程序的基于云的访问。
11.基于云的软件分发平台可以通过嵌套容器和/或虚拟机(virtual machine,“vm”)来提供这种设备间应用程序访问。例如,该平台可以将一个或多个容器作为基础虚拟化环境来运行,该一个或多个容器中的每个容器可以将vm托管为嵌套虚拟化环境。容器可以提供如下的隔离的应用程序环境:该隔离的应用程序环境通过与主机共享系统或os内核来至少对基础主机的os进行虚拟化。虚拟机可以提供如下的隔离的应用程序环境:该隔离的应用程序环境对硬件以及os进行虚拟化。尽管vm可能比容器更资源密集,但vm可以对与基础主机不同的硬件和/或os进行虚拟化。
12.为了扩展对应用程序的基于云的访问,该平台可以利用数个容器,在每个容器中
运行一虚拟机。使用容器可以促进对独立虚拟化环境的扩展,而使用虚拟机可以促进运行针对不同应用程序环境而设计的应用程序。然而,各种虚拟化环境(例如,容器和/或vm)的网络管理可能需要将网络地址(例如,互联网协议(internet protocol,“ip”)地址)分配给每个虚拟化环境。传统的动态主机配置协议(dynamic host configuration protocol,“dhcp”)寻址方案可以在不考虑平台的嵌套架构的情况下,将唯一的网络地址分配给每个虚拟化环境。因此,可能需要查找表或其他类似的附加网络地址管理来管理网络地址,并将vm关联到其对应的容器。然而,实施网络策略或记录/调查网络行为可能会因为使用查找表而需要额外的开销。
13.本公开总体上针对动态容器网络管理。如下面将更详细地解释的,本公开的实施例可以使用如下的寻址方案:该寻址方案用于将ip地址分配给基础虚拟化环境、以及其对应的嵌套虚拟化环境。寻址方案可以提供如下的ip地址:该ip地址可以使用ip地址本身,来将基础虚拟化环境与嵌套虚拟化环境进行关联。因此,本文所描述的寻址方案可以无需使用查找表,来确定哪个ip地址与哪个基础虚拟化环境或哪个嵌套虚拟化环境相对应。本文所描述的系统和方法可以通过提供更高效的网络管理来改进计算机的功能,该更高效的网络管理可以避免与使用查找表相关联的开销。另外,本文所描述的系统和方法可以通过为嵌套虚拟化环境提供高效的网络寻址方案,来改进网络管理领域。
14.根据本文所描述的一般原理,来自本文中所描述的多个实施例中的任何实施例的多个特征可以彼此组合使用。在结合附图和权利要求书阅读以下具体实施方式时,将更充分地理解这些和其他实施例、这些和其他特征、以及这些和其他优势。
15.下面将参考图1至图5提供动态容器网络管理的具体实施方式。图1示出了用于所提供的动态容器网络管理的方法。图2示出了用于执行本文所描述的方法的系统。图3示出了用于动态容器网络管理的网络环境。图4示出了基于云的软件分发平台。图5示出了示例性寻址方案。
16.图1为用于动态容器网络管理的示例性计算机实现的方法100的流程图。图1所示的多个步骤可以由任何合适的计算机可执行代码和/或计算系统来执行,该计算系统包括图2和/或图3所示的一个或多个系统。在一个示例中,图1所示的多个步骤中的每个步骤可以表示如下算法:该算法的结构包括多个子步骤和/或由多个子步骤来表示,该算法的示例将在下面更详细地提供。
17.如图1所示,在步骤102处,本文所描述的多个系统中的一个或多个系统可以识别基于云的软件分发主机上的基础虚拟化环境。虚拟化环境可以是隔离的应用程序环境,该隔离的应用程序环境至少对os进行虚拟化。例如,识别模块206可以识别容器222(例如,基础虚拟化环境)。
18.在一些实施例中,术语“虚拟化环境”可以指如下的隔离的应用程序环境:该隔离的应用程序环境可以对应用程序环境的至少一些方面进行虚拟化,使得应用程序与虚拟化的方面进行配合,就好像该应用程序在该应用程序的本地环境上运行一样。虚拟化环境的示例包括但不限于容器和vm。在一些实施例中,术语“容器”可以指如下的隔离的应用程序环境:该隔离的应用程序环境通过与主机共享系统或os内核,来至少对基础主机的os进行虚拟化。例如,如果基础主机运行windows(或其他桌面os),则容器也可以通过共享os内核来运行windows(或其他桌面os),使得该容器可以无需一套完整的os二进制和库。在一些实
施例中,术语“虚拟机”可以指如下的隔离的应用程序环境:该隔离的应用程序环境对硬件以及os进行虚拟化。因为vm可以对硬件进行虚拟化,所以用于vm的os可以不受基础主机os限制。在一示例中,即使基础主机正在运行windows(或另一桌面os),该基础主机上的vm也可以被配置为通过模拟移动设备硬件来运行安卓(android)(或其他移动os)。在其他示例中,可以使用多个os的其他组合。
19.在一些实施例中,基于云的软件分发主机可以托管用于基于云的访问的软件应用程序。常规地,软件应用程序(特别是游戏)通常是针对特定os而开发的,并且需要移植才能在其他os上运行。然而,本文所描述的基于云的软件分发主机(本文中也称为基于云的软件分发平台)可以在一设备上提供对针对特定os而设计的游戏的基于云的访问,该设备运行对于该游戏不兼容的其他os。例如,该平台可以托管桌面游戏,并允许移动设备(或运行不被该游戏所支持的os的其他设备)与该桌面游戏的实例进行交互,就好像该桌面游戏在该移动设备上运行一样。类似地,该平台可以托管移动游戏,并允许台式计算机(或运行不被该游戏所支持的os的其他设备)与该移动游戏的实例进行交互,就好像该移动游戏在该台式计算机上运行一样。尽管本文的多个示例涉及游戏、以及os不兼容性,但在其他示例中,该软件应用程序可以与如下的任何软件应用程序相对应:所述软件应用程序可能不被支持,或以其他方式与另一计算设备不兼容,该另一计算设备包括但不限于os、硬件等。
20.本文所描述的各个系统可以执行步骤110。图2为用于动态容器网络管理的示例系统200的框图。如该图所示,示例系统200可以包括用于执行一个或多个任务的一个或多个模块202。如本文将更详细解释的,多个模块202可以包括虚拟化模块204、识别模块206、寻址模块208和联网模块210。尽管图2中的多个模块202中的一个或多个模块被示出为单独的元件,但该一个或多个模块可以表示单个模块或应用程序中的部分。
21.在某些实施例中,图2中的多个模块202中的一个或多个模块可以表示一个或多个软件应用程序或程序,该一个或多个软件应用程序或程序在被计算设备执行时,可以使该计算设备执行一个或多个任务。例如,并且如下面将更详细描述的,多个模块202中的一个或多个模块可以表示如下的模块:所述模块存储在一个或多个计算设备上,且被配置为在该一个或多个计算设备上运行,该一个或多个计算设备例如为图3中所示的设备(例如,计算设备302和/或服务器306)。图2中的多个模块202中的一个或多个模块还可以表示被配置为执行一个或多个任务的一个或多个专用计算机中的全部或部分。
22.如图2所示,示例系统200还可以包括一个或多个存储设备,例如存储器240。存储器240概括地表示能够存储数据和/或计算机可读指令的、任何类型或形式的易失性或非易失性的存储设备或介质。在一个示例中,存储器240可以存储、加载和/或维护多个模块202中的一个或多个模块。存储器240的示例包括但不限于:随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、闪存、硬盘驱动器(hard disk drive,hdd)、固态驱动器(solid-state drive,ssd)、光盘驱动器、高速缓冲存储器、以上中的一个或多个的变型或组合、和/或任何其他合适的存储器。
23.如图2所示,示例系统200还可以包括一个或多个物理处理器,例如物理处理器230。物理处理器230概括地表示能够解释和/或执行计算机可读指令的、任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器230可以访问和/或修改存储在存储器240中的多个模块202中的一个或多个模块。附加地或替代地,物理处理器230可以执行多个模
块202中的一个或多个模块,以促进维护图构建系统(mapping system)。物理处理器230的示例包括但不限于:微处理器、微控制器、中央处理单元(central processing unit,cpu)、实现软核处理器的现场可编程门阵列(field-programmable gate array,fpga)、专用集成电路(application-specific integrated circuit,asic)、以上中的一个或多个中的部分、以上中的一个或多个的变型或组合、和/或任何其他合适的物理处理器。
24.如图2所示,示例系统200还可以包括一个或多个附加要素220,例如容器222、容器ip地址224、虚拟机226、和vm ip地址228。容器222、容器ip地址224、vm 226和/或vm ip地址228可以存储在本地存储设备(例如存储器240)上和/或从本地存储设备执行,或者可以被远程访问。如下面将进一步解释的,容器222可以表示基础虚拟化环境。容器ip地址224可以表示根据本文所描述的寻址方案而分配给容器222的网络地址。vm 226可以表示在容器222中运行的嵌套虚拟化环境。如下面将进一步解释的,vm ip地址228可以表示根据寻址方案而分配给vm 226的网络地址。
25.图2中的示例系统200可以以各种方式来实现。例如,示例系统200的全部或一部分可以表示图3中的示例网络环境300中的部分。
26.图3示出了实现本公开各方面的示例性网络环境300。网络环境300包括计算设备302、网络304、和服务器306。计算设备302可以是客户端设备或用户设备,例如移动设备、台式计算机、膝上型计算机、平板设备、智能手机、或其他计算设备。计算设备302可以包括物理处理器230和存储器240,该物理处理器可以是一个或多个处理器,该存储器可以存储诸如多个附加要素220和/或多个模块202中的一个或多个等数据。
27.服务器306可以表示或包括能够托管基于云的软件分发平台的一个或多个服务器。服务器306可以提供对在嵌套虚拟化环境中运行的软件应用程序的基于云的访问。服务器306可以包括物理处理器230、存储器240、以及多个附加要素220中的一个或多个附加要素,该物理处理器可以包括一个或多个处理器,该存储器可以存储多个模块202。
28.计算设备302可以通过网络304通信耦接到服务器306。网络304可以表示任何类型或形式的通信网络(例如,互联网),并且可以包括一个或多个物理连接(例如,局域网(lan))、和/或无线连接(例如,广域网(wan))。
29.回到图1,本文所描述的系统可以以各种方式执行步骤102。在一个示例中,基础虚拟化环境可以与容器(例如,容器222)相对应,该容器与基于云的软件分发主机共享os内核,并且如下面将进一步描述的,嵌套虚拟化环境可以与在容器中运行的虚拟机(例如,vm 226)相对应。基础虚拟化环境可能先前已经被启动,并且可能需要ip地址(如果先前未被分配的话),或者可能需要新的ip地址(例如,由于网络拓扑的改变或嵌套虚拟化环境的改变)。识别模块206可以将容器222识别为需要分配ip地址。
30.在一些示例中,识别基础虚拟化环境可以包括启动该基础虚拟化环境。例如,虚拟化模块204(其可以对应于虚拟化环境管理系统,例如管理程序或其他虚拟化或容器管理软件)可以启动容器222。作为启动容器222的一部分,识别模块206可以将容器222识别为需要分配ip地址。
31.图4示出了示例性基于云的软件分发平台400。平台400可以包括主机406、网络404(其可以对应于网络304)、以及计算设备402和403。主机406(其可以对应于服务器306)可以包括容器440和442,这两个容器可以分别包括虚拟机430和虚拟机432。vm 430可以运行应
用程序420,并且vm 432可以运行应用程序422。主机406可以利用嵌套虚拟化环境(例如,在容器440中运行的vm 430和在容器442中运行的vm 432)来更高效地管理虚拟化环境。例如,由于多个vm被启动和/或关闭,因此嵌套虚拟化可以促进对各种类型的vm的虚拟化环境的管理,以及更高效地扩展并发运行的vm的数量。可以通过容器更好地管理在某些vm上可能是全局的某些方面。
32.计算设备402(其可以与计算设备302的实例相对应)可以通过网络404访问应用程序420。计算设备403(其可以与计算设备302的实例相对应)可以通过网络404访问应用程序422。
33.回到图1,在步骤104处,本文所描述的多个系统中的一个或多个系统可以基于寻址方案,将第一互联网协议(ip)地址分配给基础虚拟化环境。例如,寻址模块208可以将容器ip地址224分配给容器222。
34.在一些实施例中,术语“ip地址”可以指分配给网络上的设备以用于标识和位置寻址的数字标签。ip地址的示例包括但不限于静态ip地址和动态ip地址,所述静态ip地址是固定的、并且在系统每次连接到网络时可以保持不变,所述动态ip地址可以根据网络拓扑需要而进行重新分配。
35.本文所描述的系统可以以各种方式执行步骤104。在一个示例中,寻址模块208可以基于本文所描述的寻址方案,将容器ip地址224分配给容器222。图5示出了第一ip地址500和第二ip地址502,第一ip地址可以与容器ip地址224相对应,第二ip地址可以与vm ip地址228相对应。
36.如图5所示,ip地址500可以包括网络标识符510、子网标识符512、和主机标识514。ip地址502可以包括网络标识符520、子网标识符522、和主机标识符524。在一些实施例中,术语“网络标识符”可以指用于将网络流量(network traffic)路由到相关联的路由器的网络编号或路由前缀。在一些实施例中,术语“子网标识符”可以指特定网络(例如,由网络标识符所标识的网络)的子网的标识符。在一些实施例中,术语“主机标识符”可以指子网上的特定主机设备的标识符。该主机设备可以与物理主机设备以及虚拟主机设备(例如,容器、vm等)相对应。
37.如本文将进一步描述的,寻址方案可以基于网络标识符510和520、子网标识符512和522、以及主机标识符514和524中的一个或多个,来将ip地址500和ip地址502进行关联。
38.转回到图1,在步骤106处,本文所描述的多个系统中的一个或多个系统可以识别在基础虚拟化环境中运行的嵌套虚拟化环境。基于云的软件分发主机可以向在嵌套虚拟化环境中运行的应用程序提供服务。在一示例中,识别模块206可以识别在容器222中运行的vm 226。在另一示例中,作为主机406的一部分的识别模块206可以识别在容器440中运行的vm 430、和/或在容器442中运行的vm 432。
39.主机406可以通过vm 430向应用程序420提供服务,并且还可以通过vm 432向应用程序422提供服务。如在图4中进一步所示出的,计算设备402可以访问并虚拟地运行由主机406提供服务的应用程序420。在一些示例中,应用程序420可以是未被配置为在计算设备402的本机应用程序环境中运行的应用程序。例如,应用程序420可以是用于在移动设备os上运行的移动应用程序(mobile app),且计算设备402可以是具有与应用程序420不兼容的os的台式计算机或移动设备。然而,如图4所示,主机406可以运行vm 430,该vm能够运行应
用程序420。主机406可以例如通过接收来自计算设备402的输入(例如,用户输入、设备信息、命令等)、转换用于与应用程序420一起使用的输入,来向计算设备402提供对应用程序420的基于云的访问,并且可以向计算设备402提供来自应用程序420的输出(例如,图形输出、命令等)。因此,即使应用程序420的大部分处理是在主机406上执行的,计算设备402的用户也可以使用该应用程序,就好像该应用程序在计算设备402上运行一样。类似地,主机406可以向计算设备403提供对应用程序422的基于云的访问。
40.本文所描述的系统可以以各种方式执行步骤106。在一个示例中,嵌套虚拟化环境可能先前已经被启动,并且可能需要ip地址(如果先前未被分配的话),或者可能需要新的ip地址(例如由于网络拓扑的改变)。识别模块206可以将vm 226识别为需要分配ip地址。
41.在一些示例中,识别嵌套虚拟化环境可以包括启动该嵌套虚拟化环境。例如,虚拟化模块204可以启动vm 226。作为启动vm 226的一部分,识别模块206可以将vm 226识别为需要分配ip地址。
42.在步骤108处,本文所描述的多个系统中的一个或多个系统可以基于寻址方案,将第二ip地址分配给嵌套虚拟化环境,该第二ip地址与第一ip地址不同。寻址方案可以将第二ip地址与第一ip地址进行关联。例如,寻址模块208可以将vm ip地址228分配给vm 226。
43.本文所描述的系统可以以各种方式执行步骤108。在一个示例中,寻址方案可以涉及使用第一ip地址来分配第二ip地址。寻址模块208可以使用容器ip地址224来确定vm ip地址228的值。容器ip地址224的值可以直接用于分配vm ip地址228的值。在一示例中,容器ip地址224的全部或子集可以直接标识vm 226。在其他示例中,容器ip地址224的值可以间接标识vm 226。例如,容器ip地址224的全部或子集可以被转换(例如,利用散列(hash)函数或类似的函数)以标识vm 226。
44.替代地,寻址模块208可以使用vm ip地址228来确定容器ip地址224的值。例如,vm ip地址228的全部或子集可以直接或间接标识容器222。
45.如图5所示,第一ip地址500的子集(其可以与容器ip地址224或vm ip地址228相对应)可以与第二ip地址502(其可以与vm ip地址228或容器ip地址224相对应)相关联。例如,第一ip地址500的子集(例如,子网标识符512和/或主机标识符514)可以与第二ip地址502的至少一部分相对应。
46.在一些示例中,寻址方案可以为嵌套虚拟化环境的ip地址预留单独子网地址范围,以与基础虚拟化环境区分开。例如,图4中的vm 430和vm 432可以被分配到与容器440和容器442的子网地址范围分开的子网地址范围。子网标识符可以指示ip地址是否与虚拟机或容器相对应。在这种示例中,对于匹配的容器和vm,主机标识符可以相匹配。例如,如果第一ip地址500被分配给容器440、且第二ip地址502被分配给vm 430,则子网标识符512可以指示第一ip地址500与容器相对应、且子网标识符522可以指示第二ip地址502与vm相对应。主机标识符514可以与主机标识符524相匹配(例如,与主机标识符524相同或以其他方式补充主机标识符524),以指示一对嵌套虚拟化环境。
47.第二ip地址的子集或部分可以标识基础虚拟化环境。替代地或附加地,第二ip地址的子集或部分可以标识嵌套虚拟化环境。因此,使用寻址方案,第一ip地址可以直接关联到第二ip地址。有利地,寻址方案可以放弃用于将第一ip地址与第二ip地址进行关联的查找表。
48.通过使用本文所描述的寻址方案,主机406可以更高效地执行容器440和442以及vm 430和432的网络管理功能。例如,主机406可以独立过滤基础虚拟化环境(例如,容器440和442)的网络流量和嵌套虚拟化环境(例如,vm 430和432)的网络流量。特定ip地址的子集可以在容器或vm之间进行标识,而不是使用查找表来确定特定ip地址是否与容器或vm相对应。由于主机406可以使用ip地址本身来在基础虚拟化环境和嵌套虚拟化环境之间进行标识,因此主机406可以有效地对基础虚拟化环境应用第一过滤协议,并且独立地对嵌套虚拟化环境应用第二过滤协议。另外,主机406可以针对基础虚拟化环境和嵌套虚拟化环境独立地实施不同的网络策略。例如,主机406可以针对基础虚拟化环境实施第一网络策略,并针对嵌套虚拟化环境实施第二网络策略。另外,由于特定ip地址的子集可以对嵌套容器/vm对进行标识,而无需查找表来标识这种对,因此可以简化对网络行为的追踪。
49.本文所描述的系统和方法通过寻址方案来提供动态容器网络管理,该寻址方案将虚拟机与其对应的容器进行关联。云应用程序架构可以在用于运行特定托管环境的实例的现有容器平台的顶层运行虚拟机。尽管容器平台可以为每个容器分配ip地址,但每个虚拟机可能需要其自己的ip地址来促进对外部服务的访问。常规dhcp方案可以以可能不考虑云应用程序架构的方式来将ip地址分配给虚拟机,使得查找表可能会被需要来确定哪个虚拟机地址与哪个容器地址相对应。因此,实施网络策略、或者记录和调查网络行为可能需要使用查找表。本文所描述的系统和方法可以提供寻址方案,该寻址方案可以在无需查找表的情况下,简化容器与虚拟机之间的关联。例如,虚拟机地址可以被分配到单独的子网地址范围,以促进对容器程序流量和虚拟机流量的独立过滤。另外,该寻址方案可以允许从对应的虚拟机的地址确定容器的地址,反之亦然。
50.示例实施例
51.示例1:一种计算机实现的方法可以包括:(i)识别基于云的软件分发主机上的基础虚拟化环境,(ii)基于寻址方案,将第一互联网协议(ip)地址分配给基础虚拟化环境,(iii)识别在基础虚拟化环境中运行的嵌套虚拟化环境,其中:基于云的软件分发主机向在嵌套虚拟化环境中运行的应用程序提供服务,以及基础虚拟化环境和嵌套虚拟化环境中的每一个包括隔离的应用程序环境,该隔离的应用程序环境至少对操作系统(os)进行虚拟化,以及(iv)基于寻址方案,将第二ip地址分配给嵌套虚拟化环境,该第二ip地址与第一ip地址不同,其中,寻址方案将第二ip地址与第一ip地址进行关联。
52.示例2:根据示例1所述的方法,其中,寻址方案使用第一ip地址的值来为第二ip地址分配值。
53.示例3:根据示例1或2所述的方法,其中,第二ip地址的一部分对基础虚拟化环境进行标识。
54.示例4:根据示例1、2或3所述的方法,其中,第二ip地址的一部分对嵌套虚拟化环境进行标识。
55.示例5:根据示例1至4中任一示例所述的方法,其中,寻址方案将第一ip地址直接关联到第二ip地址。
56.示例6:根据示例1至5中任一示例所述的方法,其中,第二ip地址包括基于单独子网地址范围的子网地址,该单独子网地址范围是由寻址方案为嵌套虚拟化环境的ip地址预留的。
57.示例7:根据示例1至6中任一示例所述的方法,还包括:对基础虚拟化环境应用第一过滤协议,并且对嵌套虚拟化环境应用第二过滤协议,以独立过滤基础虚拟化环境的网络流量和嵌套虚拟化环境的网络流量。
58.示例8:根据示例1至7中任一示例所述的方法,还包括:针对基础虚拟化环境实施第一网络策略,并针对嵌套虚拟化环境实施第二网络策略,该第二网络策略与第一网络策略不同。
59.示例9:根据示例1至8中任一示例所述的方法,其中,基础虚拟化环境与容器相对应,该容器与基于云的软件分发主机共享os内核,并且嵌套虚拟化环境与虚拟机(vm)相对应。
60.示例10:根据示例1至9中任一示例所述的方法,其中,vm与移动os环境相对应,应用程序与移动游戏相对应,并且基于云的软件分发主机提供对移动游戏的实例的基于云的访问。
61.示例11:一种系统可以包括:至少一个物理处理器;物理存储器,该物理存储器包括计算机可执行指令,该计算机可执行指令在被该物理处理器执行时可以使该物理处理器:(i)识别基于云的软件分发主机上的基础虚拟化环境,(ii)基于寻址方案,将第一互联网协议(ip)地址分配给基础虚拟化环境,(iii)识别在基础虚拟化环境中运行的嵌套虚拟化环境,其中:基于云的软件分发主机向在嵌套虚拟化环境中运行的应用程序提供服务,以及基础虚拟化环境和嵌套虚拟化环境中的每一个包括隔离的应用程序环境,该隔离的应用程序环境至少对操作系统(os)进行虚拟化,以及(iv)基于寻址方案,将第二ip地址分配给嵌套虚拟化环境,第二ip地址与第一ip地址不同,其中,寻址方案将第二ip地址与第一ip地址进行关联。
62.示例12:根据示例11所述的系统,其中,寻址方案使用第一ip地址的值来为第二ip地址分配值。
63.示例13:根据示例11或12所述的系统,其中,第二ip地址的一部分对基础虚拟化环境进行标识,或者第二ip地址的该部分对嵌套虚拟化环境进行标识。
64.示例14:根据示例11、12或13所述的系统,其中,寻址方案将第一ip地址直接关联到第二ip地址。
65.示例15:根据示例11至14中任一示例所述的系统,还包括在被物理处理器执行时使该物理处理器执行以下操作的指令:对基础虚拟化环境应用第一过滤协议,并且对嵌套虚拟化环境应用第二过滤协议,以各自过滤基础虚拟化环境的网络流量和嵌套虚拟化环境的网络流量。
66.示例16:根据示例11至15中任一示例所述的系统,还包括:针对基础虚拟化环境实施第一网络策略,并针对嵌套虚拟化环境实施第二网络策略,第二网络策略与第一网络策略不同。
67.示例17:一种非暂态计算机可读介质,该非暂态计算机可读介质可以包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令在被计算设备的至少一个处理器执行时可以使该计算设备:(i)识别基于云的软件分发主机上的基础虚拟化环境,(ii)基于寻址方案,将第一互联网协议(ip)地址分配给基础虚拟化环境,(iii)识别在基础虚拟化环境中运行的嵌套虚拟化环境,其中:基于云的软件分发主机向在嵌套虚拟化环境中运行的
应用程序提供服务,以及基础虚拟化环境和嵌套虚拟化环境中的每一个包括隔离的应用程序环境,该隔离的应用程序环境至少对操作系统(os)进行虚拟化,以及(iv)基于寻址方案,将第二ip地址分配给嵌套虚拟化环境,第二ip地址与第一ip地址不同,其中,寻址方案将第二ip地址与第一ip地址进行关联。
68.示例18:根据示例17所述的方法,其中,第二ip地址的一部分对基础虚拟化环境进行标识,或者第二ip地址的该部分对嵌套虚拟化环境进行标识。
69.示例19:根据示例17或18所述的方法,其中,寻址方案将第一ip地址直接关联到第二ip地址。
70.示例20:根据示例17、18或19所述的方法,还包括在被计算设备的该至少一个处理器执行时可使该计算设备执行以下操作的指令:针对基础虚拟化环境实施第一网络策略,并针对嵌套虚拟化环境实施第二网络策略,第二网络策略与第一网络策略不同。
71.如以上所详述的,本文所描述和/或所示出的计算设备和系统概括地表示能够执行计算机可读指令(例如包含在本文所描述的模块内的那些计算机可读指令)的任何类型或形式的计算设备或系统。在其最基本的配置中,一个或多个这些计算设备可以各自包括至少一个存储设备和至少一个物理处理器。
72.在一些示例中,术语“存储设备”概括地指能够存储数据和/或计算机可读指令的、任何类型或形式的易失性或非易失性的存储设备或介质。在一个示例中,存储设备可以存储、加载和/或维护本文所描述的多个模块中的一个或多个模块。存储设备的示例包括但不限于:随机存取存储器(ram)、只读存储器(rom)、闪存、硬盘驱动器(hdd)、固态驱动器(ssd)、光盘驱动器、高速缓冲存储器、以上中的一个或多个的变型或组合、或任何其他合适的存储器。
73.在一些示例中,术语“物理处理器”概括地指能够解释和/或执行计算机可读指令的、任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器可以访问和/或修改存储在上述存储设备中的一个或多个模块。物理处理器的示例包括但不限于:微处理器、微控制器、中央处理单元(cpu)、实现软核处理器的现场可编程门阵列(fpga)、专用集成电路(asic)、以上中的一个或多个中的部分、以上中的一个或多个的变型或组合、或者任何其他合适的物理处理器。
74.尽管本文所描述和/或所示出的多个模块被示为单独的元件,但是这些模块可以表示单个模块中的部分或应用程序中的部分。另外,在某些实施例中,这些模块中的一个或多个模块可以表示一个或多个软件应用程序或程序,该一个或多个软件应用程序或程序在被计算设备执行时,可以使该计算设备执行一个或多个任务。例如,本文所描述和/或所示出的多个模块中的一个或多个模块可以表示如下这些模块:所述模块存储在本文所描述和/或所示出的多个计算设备或系统中的一个或多个上,且被配置为在本文所描述和/或所示出的多个计算设备或系统中的一个或多个上运行。这些模块中的一个或多个模块还可以表示被配置为执行一个或多个任务的一个或多个专用计算机中的全部或部分。
75.另外,本文所描述的多个模块中的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所陈述的多个模块中的一个或多个模块可以接收待转换的网络地址数据,转换该网络地址数据,使用转换结果来分配网络地址,并存储该转换结果以管理网络地址。附加地或替代地,本文所陈述的多个模块中的一
个或多个模块可以通过在计算设备上执行、在计算设备上存储数据、和/或以其他方式与计算设备交互,以将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换成另一种形式。
76.在一些实施例中,术语“计算机可读介质”概括地指能够存储或承载计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于:传输型介质和非暂态型介质,该传输型介质例如为载波,该非暂态型介质例如为,磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(compact disk,cd)、数字视频盘(digital video disk,dvd)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)、以及其他分发系统。
77.本文所描述和/或所示出的工艺参数和步骤顺序仅以示例的方式给出,并且可以根据需要而改变。例如,尽管本文所示出和/或所描述的步骤可能是以特定顺序示出或论述的,但这些步骤并不一定需要按照所示出的或所论述的顺序来执行。本文所描述和/或所示出的各种示例方法也可以省略本文所描述或所示出的多个步骤中的一个或多个步骤,或者包括除了所公开的那些步骤之外的附加步骤。
78.先前的描述已被提供来使本领域的其他技术人员能够最好地利用本文所公开的示例实施例的各个方面。该示例描述不旨在是详尽的或被限制为所公开的任何精确形式。在不脱离本公开的范围的情况下,许多修改和变型是可能的。本文所公开的实施例应在所有方面被认为是说明性的而非限制性的。在确定本公开的范围时,应当参考所附的权利要求书及其等同物。
79.除非另有说明,否则如本说明书和权利要求书中所使用的术语“连接到”和“耦接到”(以及它们的派生词)将被解释为允许直接连接和间接连接(即,通过其他元件或部件)这两者。此外,如本说明书和权利要求书中所使用的术语“一个(a)”或“一个(an)”将被解释为表示“中的至少一个”。最后,为了便于使用,如本说明书和权利要求书中所使用的术语“包括(including)”和“具有”(以及它们的派生词)与词语“包括(comprising)”是可互换的,并且具有与词语“包括(comprising)”相同的含义。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1