CN113906723A - 多集群入口 - Google Patents
多集群入口 Download PDFInfo
- Publication number
- CN113906723A CN113906723A CN201980097035.2A CN201980097035A CN113906723A CN 113906723 A CN113906723 A CN 113906723A CN 201980097035 A CN201980097035 A CN 201980097035A CN 113906723 A CN113906723 A CN 113906723A
- Authority
- CN
- China
- Prior art keywords
- cluster
- application
- destination
- service
- level
- 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
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 31
- 238000012546 transfer Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 description 15
- 238000013507 mapping Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- VYMDGNCVAMGZFE-UHFFFAOYSA-N phenylbutazonum Chemical compound O=C1C(CCCC)C(=O)N(C=2C=CC=CC=2)N1C1=CC=CC=C1 VYMDGNCVAMGZFE-UHFFFAOYSA-N 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种用于负载均衡应用请求的方法(500),包括接收多集群服务(210)的负载平衡配置(132),所述多集群服务(210)管理对托管由用户(12)部署的软件应用(124)的目的地集群集合(120)的访问。所述多集群服务使用所述负载平衡配置来对所述目的地集群集合上的应用级流量进行负载平衡。每个目的地集群包括:执行所述软件应用的至少一个容器以及相应地理区域(121)。该方法还包括接收针对托管于所述目的地集群的所述软件应用的应用级请求(30)。所述应用级请求从客户端(10)接收并且所述应用级请求包括与所述客户端相关联的宿主名称(32)和地理位置(34)。该方法还包括基于所述请求的所述地理位置和所述集群的所述相应地理区域,路由所述请求至所述集群中的一个。
Description
技术领域
本公开涉及用于容器编排系统(containerized orchestration system)的多集群入口。
背景技术
一些基于云的服务(通过分布式系统)提供了容器编排系统。这些系统通过提供具有低开销和高可扩展性的类似虚拟机的隔离能力,重塑了软件的开发,部署和维护的方式。软件应用在安全执行环境(例如,容器(container)或容器集(pod))中执行,且同地的pod可被分组成集群,每一集群与其它集群隔离。负载平衡器(load balancer)通常用于改善集群内各pod的流量和工作负载的分配。第7层(L7)负载平衡,(即,应用层)负载平衡消息的实际内容。例如,L7负载平衡器可以在超文本传输协议(HTTP)或超文本传输安全协议(HTTPS)上操作,并对消息的内容做出路由决定。用于容器编排系统的负载平衡器通常是在单个集群上操作的L7负载平衡器。
发明内容
本公开的一个方面提供了一种用于在多集群容器化编排系统上对应用请求进行负载平衡的方法。该方法包括在数据处理硬件处接收多集群服务的负载平衡配置,所述多集群服务管理对托管由用户部署的软件应用的目的地集群集合的访问。多集群服务被配置为使用所述负载平衡配置来对所述目的地集群集合上的、与所述软件应用相关联的应用级流量进行负载平衡。每个目的地集群包括执行所述软件应用的至少一个容器;以及与所述目的地集群集合中的所述目的地集群中的另一个相关联的至少一个其它地理区域相同或不同的相应地理区域。所述方法还包括在所述数据处理硬件处接收针对托管于所述目的地集群集合的所述软件应用的应用级请求。应用级请求是从客户端接收并且所述应用级请求包括与所述客户端相关联的宿主名称和地理位置。该方法还包括基于所述应用级请求的所述地理位置和所述目的地集群集合的所述相应地理区域,由所述数据处理硬件将所述应用级请求路由至所述目的地集群集合中的所述目的地集群中的一个。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实施方式中,路由应用级请求包括:基于所述目的地集群集合的所述相应地理区域,确定所述目的地集群集合中的哪一个目的地集群与所述应用级请求的所述客户端相关联的所述地理位置最接近;以及将所述应用级请求路由至所述目的地集群集合中的所述目的地集群,所述目的地集群具有与所述应用级请求的所述客户端相关联的所述地理位置最接近的所述相应地理位置。在一些示例中,路由应用级请求还基于相应负载均衡属性,由所述多集群服务为所述目的地集群集合中的每个目的地集群指定所述相应负载均衡属性。所接收的所述负载平衡配置包括唯一地标识所述多集群服务的用户派生服务名称。
在一些实施方式中,该方法包括:由所述数据处理硬件识别由所述多集群服务指定的集群选择标准,所述集群选择标准用于从将为所述多集群服务提供应用级流量的已知集群的列表中选出集群;以及由所述数据处理硬件(118)基于所述目的地集群集合中的每个目的地集群,从所述已知集群的列表中选出所述目的地集群集合,所述每个目的地集群具有满足由所述多集群服务指定的所述集群选择标准的一个或多个标签的相应集合。由所述多集群服务指定的所述集群选择标准包括一个或多个基于相等的匹配要求或一个或多个基于集合的匹配要求中的至少一个。可选地,该方法还包括,对于所述目的地集群集合中的每个目的地集群,由所述数据处理硬件实例化所述目的地集群内的相应派生服务。所述派生服务被配置为创建包括端点组的相应网络端点组(NEG)。在所述端点组中的每个端点与所述目的地集群的相应容器相关联,并且所述每个端点包括相应因特网协议(IP)地址和相应端口,以将应用级流量直接分发到所述相应容器。
在一些实施方式中,每个相应派生服务包括唯一派生服务名称,所述唯一派生服务名称不同于所述其它派生服务的所述派生服务名称。所述派生服务名称具有经修剪的服务名称部分和唯一散列部分。所述经修剪的服务名称部分包括所述多集群服务的用户派生服务名称,并且所述唯一散列部分包括所述多集群服务的所述用户派生服务名称的唯一散列。在一些示例中,该方法还包括:响应于接收所述应用级请求,由所述数据处理硬件访问统一资源定位符(URL)映射。所述URL映射指定映射到所述目的地集群中的一个或多个的服务的、一个或多个宿主名称的列表。该方法还包括由所述数据处理硬件确定接收到的应用级请求的所述宿主名称是否包括由所述URL映射指定的所述一个或多个宿主名称的列表中的一个或多个宿主名称中的一个,并且当所接收的所述应用级请求的所述宿主名称包括所述一个或多个宿主名称中的一个时,由所述数据处理硬件将所述接收到的应用级请求转发到所述服务。
所述应用级业务可以包括超文本传输协议(HTTP)。所述应用级业务还可以包括超文本传输安全协议(HTTPS)。所述应用级请求的至少一部分包括传输层安全(TLS)协议。在一些实施方式中,该方法还包括:在路由所述应用级请求之前,并且对于所述目的地集群集合中的每个目的地集群,由所述数据处理硬件确定当前路由到所述目的地集群的应用级请求的数量是否满足最大请求速率,并且当所述应用级请求的数量满足所述最大请求速率时,防止将所述应用级请求路由到所述目的地集群。
本发明的另一个方面提供了一种用于在多集群容器化编排系统上对应用请求进行负载平衡的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。所述存储器硬件存储指令,所述指令在所述数据处理硬件上执行时使所述数据处理硬件执行操作。所述操作包括接收多集群服务的负载平衡配置,所述多集群服务管理对托管由用户部署的软件应用的目的地集群集合的访问。多集群服务被配置为使用所述负载平衡配置来对所述目的地集群集合上的、与所述软件应用相关联的应用级流量进行负载平衡。每个目的地集群包括执行所述软件应用的至少一个容器;以及与所述目的地集群集合中的所述目的地集群中的另一个相关联的至少一个其它地理区域相同或不同的相应地理区域。所述操作还包括接收针对托管于所述目的地集群集合的所述软件应用的应用级请求。应用级请求是从客户端接收并且所述应用级请求包括与所述客户端相关联的宿主名称和地理位置。所述操作还包括基于所述应用级请求的所述地理位置和所述目的地集群集合的所述相应地理区域,将所述应用级请求路由至所述目的地集群集合中的所述目的地集群中的一个。
该方面可以包括一个或多个以下可选特征。在一些实施方式中,路由应用级请求包括:基于所述目的地集群集合的所述相应地理区域,确定所述目的地集群集合中的哪一个目的地集群与所述应用级请求的所述客户端相关联的所述地理位置最接近;以及将所述应用级请求路由至所述目的地集群集合中的所述目的地集群,所述目的地集群具有与所述应用级请求的所述客户端相关联的所述地理位置最接近的所述相应地理位置。在一些示例中,路由应用级请求还基于相应负载均衡属性,由所述多集群服务为所述目的地集群集合中的每个目的地集群指定所述相应负载均衡属性。所接收的所述负载平衡配置包括唯一地标识所述多集群服务的用户派生服务名称。
在一些实施方式中,所述操作包括:识别由所述多集群服务指定的集群选择标准,所述集群选择标准用于从将为所述多集群服务提供应用级流量的已知集群的列表中选出集群;以及基于所述目的地集群集合中的每个目的地集群,从所述已知集群的列表中选出所述目的地集群集合,所述每个目的地集群具有满足由所述多集群服务指定的所述集群选择标准的一个或多个标签的相应集合。由所述多集群服务指定的所述集群选择标准包括一个或多个基于相等的匹配要求或一个或多个基于集合的匹配要求中的至少一个。可选地,所述操作还包括,对于所述目的地集群集合中的每个目的地集群,实例化所述目的地集群内的相应派生服务。所述派生服务被配置为创建包括端点组的相应网络端点组(NEG)。在所述端点组中的每个端点与所述目的地集群的相应容器相关联,并且所述每个端点包括相应因特网协议(IP)地址和相应端口,以将应用级流量直接分发到所述相应容器。
在一些实施方式中,每个相应派生服务包括唯一派生服务名称,所述唯一派生服务名称不同于所述其它派生服务的所述派生服务名称。所述派生服务名称具有经修剪的服务名称部分和唯一散列部分。所述经修剪的服务名称部分包括所述多集群服务的用户派生服务名称,并且所述唯一散列部分包括所述多集群服务的所述用户派生服务名称的唯一散列。在一些示例中,操作还包括,响应于接收所述应用级请求,访问统一资源定位符(URL)映射。所述URL映射指定映射到所述目的地集群中的一个或多个的服务的、一个或多个宿主名称的列表。所述操作还包括确定接收到的应用级请求的所述宿主名称是否包括由所述URL映射指定的所述一个或多个宿主名称的列表中的一个或多个宿主名称中的一个,并且当所接收的所述应用级请求的所述宿主名称包括所述一个或多个宿主名称中的一个时,将所述接收到的应用级请求转发到所述服务。
所述应用级业务可以包括超文本传输协议(HTTP)。所述应用级业务还可以包括超文本传输安全协议(HTTPS)。所述应用级请求的至少一部分包括传输层安全(TLS)协议。在一些实施方式中,所述操作还包括,在路由所述应用级请求之前,并且对于所述目的地集群集合中的每个目的地集群,确定当前路由到所述目的地集群的应用级请求的数量是否满足最大请求速率,并且当所述应用级请求的数量满足所述最大请求速率时,防止将所述应用级请求路由到所述目的地集群。
本公开的一个或多个实施方式的细节在以下附图和实施方式中阐述。从说明书和附图以及从权利要求书中,其它的方面,特征和优点是显而易见的。
附图说明
图1是用于容器编排系统的多个集群的负载平衡应用级流量的示例系统的示意图。
图2是图1的系统的示例性多集群控制器的示意图。
图3A和3B是包括网络端点组的容器负载平衡器的示例性组件的示意图。
图4是图1的系统的示例性多集群入口的示意图。
图5是用于在容器化系统中保存资源的示例方法的流程图。
图6是可用于实现本文所述的系统和方法的示例性计算设备的示意图。
在各个附图中相同的附图标记表示相同的元件。
具体实施方式
由于至少部分地在远程和分布式计算方面的进步,容器化应用和编排容器化应用的系统正变得越来越流行。容器化应用(即,虚拟化)允许存在孤立的用户或应用空间实例。每个实例(即,容器)在应用程序看来可能是它自己的个人计算机,可以访问执行所必需的所有资源(例如,存储,网络访问等)。然而,容器中的应用程序将仅能够查看和访问分配给其相应容器的资源。这有助于分布式或云环境中应用程序的安全,移动性,缩放和升级。
容器通常被限于单个应用或过程或服务。一些编排系统将pod部署为最小的可用计算单元。pod是由一个或多个容器组成的组,pod内的每个容器共享隔离边界(例如,IP地址)。控制器控制pod中的资源。控制器负责监视pod,容器和资源的健康(并且如果需要,重新创建pod/容器)。控制器还负责复制和缩放pod,以及监视(pod的)外部事件。
因为pod通常是临时和可替换的资源,所以它们经常被创建和销毁(即,放大(scale in)或缩小(scale out))。因为一些pod(即后端)向其它pod(即前端)提供功能,所以创建服务以允许前端跟踪后端为前端提供了哪些所需的功能。服务是一个抽象概念,它定义了一组逻辑上的pod和访问它们的策略。也就是说,服务以一个或多个pod为目标,将后端连接到相应前端。该服务的目标可以是符合选择标准的pod。在一些示例中,选择标准包括标签选择。即,pod可以包括标签,并且服务可以通过基于相等(equality-based)或基于集合(set-based)的标签匹配来选择期望的pod。
单个物理机(即,计算机或服务器)托管一个或多个容器(例如,pod)。容器编排系统通常将使用一组物理机来协调跨多个pod的多个容器化应用。通常,集群中的每个机器与一个或多个机器共处一地(即,机器在地理上彼此靠近),该一个或多个机器为用作主服务器的一个或多个机器以及用作节点的其余机器。主服务器作为集群的主控制平面和网关,例如,为客户端提供应用编程接口(API)、健康检查节点、协调通信、调度等。节点负责使用本地和外部资源来接受和执行工作负载,并且每个节点由主服务器指示来创建和破坏容器。客户端通过与主服务器通信(例如,直接或通过库(library))来与集群交互。除了主服务器所允许的之外,集群内的节点通常与集群外的联系隔离和分开。
负载平衡改善了工作负载在多个计算资源上的分布,并且由于容器-编排系统的分布特性,分布式系统经常实现第7层(L7)负载平衡。第7层负载平衡在涉及所发送消息的实际内容的高级应用层(即,第7层)上操作。超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)是因特网上网站流量的主要L7协议。由于较高的级别,L7负载平衡器可以以比其它层的负载平衡器(例如,第4层负载平衡器)更复杂的方式来路由网络流量。通常,L7负载平衡器终止网络流量并分析流量内的消息内容。然后,L7负载平衡器可以基于消息的内容(例如,基于HTTP小型文本文件(HTTP cookie))来路由流量。然后,L7平衡器可以创建到适当目的地节点的新连接。
当前的容器编排系统通常仅提供以单个集群为目标的L7负载平衡。也就是说,每个集群需要单独的负载平衡器,单独的负载平衡器需要单独的配置,并且流量只能在单个集群内平衡。为了将流量路由到适当的集群(例如,地理上最靠近源客户的集群),可能需要单独的域。例如,asia.shopp.com可以路由到位于亚洲的集群,而europe.shopp.com可以路由到位于欧洲的集群。因此,对于可以在容器-编排系统中的多个集群中提供高可用、全球分布的L7服务的负载平衡器来说,这将是有利的。继续这个例子,服务于多个集群的负载均衡器可以根据HTTP(S)请求的来源和/或集群的容量,将shopping.com的HTTP(S)请求路由到亚洲的集群或欧洲的集群。
本文的实施方式旨在容器-编排系统的多集群负载平衡器,以负载平衡与在目的地集群集合上的软件应用相关的应用级流量。多集群负载平衡器接收多集群服务的负载均衡配置,该多集群服务管理对目的地集群组的访问。如这里所使用的,负载平衡配置可以被称为入口配置。每个目的地集群包括在安全执行环境(即,至少部分地与其它pod或集群隔离)和相应地理区域中执行软件应用的至少一个pod。在一些情况下,至少一个pod/容器在非安全环境中执行软件应用。每个集群可以具有不同的地理区域。多集群负载平衡器接收应用级请求,应用级请求旨在托管于目的地集群组的软件应用,并且基于应用级请求的地理位置和目的地集群组的相应地理区域,负载平衡器将应用级请求路由到目的地集群中的一个。因此,负载平衡器以多个集群为目标,同时在所有集群上提供一个管理和配置的单点。负载平衡器可以利用容器原机(container-native)负载平衡(即,将流量直接分配给pod),并且如果集群离线,则为托管服务提供高可用性。
现在参考图1,在一些实施方式中,示例系统100包括远程系统114。远程系统114可以是单个计算机、多个计算机或具有可伸缩/弹性计算资源118(例如,数据处理硬件)和/或存储资源116(例如,存储器硬件)的分布式系统(例如,云环境)。远程系统114经由网络112a与一个或多个集群120,120a-n通信,且每个集群120包括一个或多个pod122,122a-n,每个pod执行一个或多个应用124。虽然这里的示例描述了包括一个或多个pod122的集群120,但是集群120可以在不脱离本公开的范围下,包括用于执行一个或多个软件应用124的任何类型的容器。在一些示例中,集群120中的一个或多个的一部分或全部在远程系统114上执行。一些pod122可以执行相同的应用124,而在相同的集群120或不同的集群120内的一些pod122可以执行不同的应用124。例如,每个集群120可以包括执行购物应用124的pod122。服务123代表在同一集群120内的多个pod122上执行的一个或多个应用124。继续前面的例子,购物服务123可以使用在多个pod122上执行的购物应用124。例如,执行购物应用124的所有pod122可以与购物服务123相关联,并且每个相应pod122可以是是可替换的资源,以满足使用购物服务123的请求30。
每个集群120还与相应地理区域121,121a-n相关联。例如,集群120a可以与亚洲的地理区域121a相关联,集群120b可以与欧洲的地理区域121b相关联,并且集群120n可以与北美的地理区域121n相关联。也就是说,每个集群120可以与集群120物理上所处的地理区域121相关联。每个集群120可以位于不同的地理区域121中,尽管在一些示例中,多个集群120共享相同的地理区域121。
远程系统114还经由网络112b与一个或多个客户端10,10a-n通信。网络112a、112b可以是相同的网络或不同的网络。每个客户端10可对应于任何合适的计算设备,诸如桌面工作站,膝上型工作站,移动设备(例如,智能电话或平板电脑),可穿戴设备,智能设备,智能显示器或智能扬声器。客户端经由网络112b将应用级请求30,30a-n传输到远程系统114。应用级请求30对应于应用协议的消息。例如,应用级请求30可以包括HTTP或HTTPS消息。也就是说,应用级请求30可以对应于来自客户端10的HTTP(S)请求消息。可选地,应用级请求30可以包括TLS协议以提供附加的通信安全性。
在一些示例中,远程系统114执行接收应用级请求30的多集群负载平衡器130和配置负载平衡器130以负载平衡应用级请求30的负载平衡配置(例如,入口配置)132。每个应用级请求30包括与源客户端10相关联的宿主名称32和地理位置34。宿主名称32对应于标识目的地网络宿主(即,公共机构下的一个或多个计算机)的选择标准(例如,标签)。例如,http://my-shop.com是指示HTTP协议和my-shop.com的宿主名称的统一资源定位符(URL)。地理位置34对应于相应客户端10的物理位置(例如,因特网协议(IP)地址)。一些应用级请求30还可以包括路径名33,例如http:/my-shop.com/sport的URL指示my-shop.com的宿主名称和/sport的路径名。
负载平衡器130管理对承载用户12的软件应用124的集群120(也称为目的地集群120)的访问。也就是说,使用负载平衡配置(例如,入口配置)132提供的配置,负载平衡器130接收指向目的地集群120上的软件应用124的应用级请求30,并基于应用级请求30的地理位置34和目的地集群120的相应地理区域121来将每个应用级请求30路由到目的地集群120中的一个。例如,当与相应应用级请求30相关联的地理位置34指示应用级请求30源自北美时,负载平衡器130可以将应用级请求30路由到具有相应地理区域121n(即,北美)的集群120n。
继续参考图1,在一些实施方式中,多集群控制器200接收负载平衡配置132,并且使用负载平衡配置132来配置多集群入口400。由多集群控制器200配置的多集群入口400包括到在集群120上执行的软件应用124的URL路径的映射(即,URL映射410)。也就是说,当多集群入口400接收到针对在相应集群120的相应pod122内执行的相应软件应用124的应用级请求30时,基于地理位置34和应用级请求30的相关联的软件应用124,多集群入口400使用URL映射410将应用级请求30路由到适当的集群120。用户12可以对应于托管应用124或服务123目的地集群120的创建者。这样,用户12可以向多集群负载均衡器130的多集群控制器200提供负载均衡配置132。
现在参考图2,在一些示例中,多集群控制器200负责接收负载平衡配置132的多集群服务210。例如,多集群负载平衡器130可以基于负载平衡配置132来实例化多集群服务210。多集群服务210表示跨越多个集群120的资源。在一些示例中,负载平衡配置132包括唯一地标识多集群服务210的用户派生的服务名称211(即,由用户12派生的服务名称)。在一些实施方式中,多集群服务210包括集群选择部分212,集群选择部分212定义哪些集群120是目的地集群120以及目的地集群120的负载平衡特性。即,集群选择部分212标识由多集群服务210指定的集群选择标准213,用于以从为多集群服务210提供应用级流量(即,应用级请求30)的已知集群列表125中选择集群120。已知的集群列表125可以包括已知集群120的注册表(registry),或者简单地为可以存储在远程系统114的存储资源116上的、并且包括用户12拥有/创建或能够访问的多个集群的集群注册表。然后,通过使用集群选择标准213,基于具有一个或多个标签216的相应集合的每个目的地集群120,多集群控制器200从集群注册表125中选择目的地集群120的集合,一个或多个标签216满足多集群服务210指定的集群选择标准213。也就是说,所选择的集群120可以共享一个公共的标签集合216,以使集群120能够被选择为跨越所有集群120的单元。可选地,由多集群服务210指定的集群选择标准213包括一个或多个基于相等的匹配要求(例如,环境=生产)或一个或多个基于集合的匹配要求(例如,在(生产,QA)中的环境)中的至少一个。
多集群服务210还可以包括服务模板214,服务模板214定义多集群控制器200在每个目的地集群120和负载平衡器130中实例化/创建的服务220。在一些示例中,通过定义多集群服务210,多集群控制器200可以自动实例化目的地集群120中的派生服务220。在所示的示例中,多集群控制器200接收多集群服务210(与集群选择部分212和服务模板214一起),并在每个目的地集群120a、120b、120c中实例化相应派生资源(即,购物服务220)。多集群控制器200可以自动地管理派生服务220的整个生命周期(例如,创建、同步、和删除服务220)。多集群控制器200可以使用创建、读取、更新、和删除(CRUD)操作来实例化和管理派生服务220。因此,对应于多集群服务210(例如,购物服务)的应用级请求30可以经由多集群入口400路由到适当目的地集群120的派生服务220。
每个相应派生服务220可以包括唯一的派生服务名称221,唯一的派生服务名称221不同于其它派生服务220的派生服务名称221。例如,导出的服务名称221具有修剪的(trimmed)服务名称部分和唯一的散列(hash)部分。修剪的服务名称部分可以包括多集群服务210的用户派生服务名称211,并且唯一散列部分可以包括多集群服务210的用户派生服务名称的唯一散列。每个派生服务220的相应唯一派生服务名称221可以避免与用户定义的服务名称123的冲突。
在一些示例中,派生服务220创建包括一组端点231,231a-n的对应网络端点组(NEG)230。该端点组231中的每个端点231与相应目的地集群120的相应pod122相关联。每个端点231包括相应因特网协议(IP)地址242和相应端口244,用于将应用级流量(即,请求30)直接分发到相应pod122。也就是说,NEG 230是代表集群资源的IP地址242和端口244组合的集合,作为后端服务的后端运行,每个IP地址242和端口244组合被称为网络端点231。NEG230可作为后端服务的后端,如HTTP(S)、传输控制代理(TCP)代理和SSL代理负载均衡器。NEG后端通过指定IP地址242和端口244,便于在pod122内运行的应用或容器之间以细化的方式分配流量。同一集群120中的端点231(例如,pod122)可以分配给NEG 230。NEG 230可以作为容器负载平衡器240(即,用于平衡集群120中的机器或pod122之间的流量的负载平衡器)中的后端服务的后端。每个目的地集群120可以包括一个相应NEG控制器232,以对各自的NEG 230进行编程。
在其它示例中,集群120实现实例组而不是NEG 230。与NEG 230类似,实例组将端点(例如,虚拟机实例)的集合作为单个实体分组在一起,并通过使用IP表将请求30路由到适当的端点。实例组可以是具有或不具有自动缩放的受管实例组或非受管实例组。
当实现NEG 230而不是实例组时,多集群控制器200可以存储每个NEG 230的名称(即,标签),以便于系统100的其它组件进行检索。每个NEG 230可以包括由NEG控制器232管理的防火墙,允许每个NEG打开唯一的一组端口244。可选地或附加地,多集群控制器200可以实例化影响每个目的地集群120的端口范围的防火墙控制器。例如,防火墙控制器可以确保整个端口范围是开放的,然后允许每个单独的NEG控制器232定制其相应端口范围。
现在参考图3A和3B,在一些示例中,远程系统114执行附加组件以实现容器负载平衡器240。例如,转发规则310可以将应用级请求30从各个集群120的全局外部IP地址引导到适当的目标代理320(图3A)。转发规则310通过IP地址、端口、和协议将请求30路由到负载均衡配置,负载均衡配置包括目标代理320、URL映射330(例如,URL映射410)、以及一个或多个后端服务340,即服务123(图1)。每个转发规则310可以为集群120提供单个全局IP地址。目标代理320终止来自客户端10的连接(例如,HTTP和HTTPS连接)。目标代理320对照URL映射330检查每个接收到的请求30,以确定哪个后端服务340适合于请求30。当路由HTTPS连接时,目标代理320可以包括一个或多个安全套接字层(Secure Sockets Layer,SSL)证书以认证负载平衡器240和客户端10之间的通信。
如图3B所示,与经由IP表规则将流量路由到容器(例如,pod)122(其可以在/不在相同的节点/虚拟机中)的实例组不同,NEG 230允许将流量直接路由到应当接收流量(即,请求30)的容器(例如,pod)122,这消除了额外的网络跳(network hop)。减少的网络跳提高了网络的延迟和吞吐量。
URL映射330定义了基于URL将请求30路由到适当的后端服务340的匹配模式。在一些示例中,定义了默认服务340以处理不匹配指定的主机规则或路径匹配规则的任何请求30。可选地,多集群控制器200可以在目的地集群120中创建一个派生的默认服务。对于基于内容的请求30的路由,URL映射330通过检查URL组件来划分请求30,以将请求30发送到后端340的不同的集合。可以从URL映射330引用多个后端服务340。
后端服务340将传入的请求30指引到所附接的NEG 230的一个或多个端点。基于例如与后端服务340所连接的后端的服务容量、区域、和实例健康状况,后端服务340将每个请求30指引到所连接的NEG 230中的一个的适当端点。端点服务容量可以基于CPU或每秒请求(RPS)(即,端点可以每秒处理的请求30的数量)。每个后端服务340也可以指定对NEG 230的各端点执行哪些健康检查。
现在参考图4,多集群控制器200使用用户派生的服务名称211来管理多集群入口400和由多集群入口400定义的多集群服务210。多集群入口400包括第7层协议和终止设置(例如,传输层安全(TLS)证书),并且URL映射410指定映射到在目的地集群120上执行的一个或多个服务123的一个或多个宿主名称412和/或URL路径的列表。每个目的地集群120包括与多集群服务210通信的相应派生服务220。对于针对软件应用124(或服务123)的多集群控制器200接收的每个应用级请求30,多集群控制器200确定所接收的应用级请求30的宿主名称32是否包括URL映射410指定的一个或多个宿主名称412的列表中的宿主名称412中的一个。代替或附加地,控制器200可以确定所接收的应用级请求30的URL路径33是否包括URL映射410指定的路径413的列表中的路径中的一个。当接收到的应用级请求30的宿主名称32(和/或路径33)包括列表中的宿主名称412(和/或路径413)中的一个时,多集群控制器200将接收到的应用级请求30转发到与应用124或服务123(例如,购物服务)相关联的多集群服务210。这里,多集群服务控制器200的任务为将所接收的应用级请求30负载平衡到执行所部署的服务123的目的地集群120,120a-c中的一个的相应目的地服务220。在一些实施方式中,基于目的地集群120的相应地理区域121a-c,多集群服务控制器200确定哪个目的地集群120最接近请求30的地理位置34(例如,与传输请求30的客户端10相关联的位置34)。通过由多集群服务210定义的路由决定,多集群控制器200可以将应用级请求30路由到目的地集群120,目的地集群120具有与应用级请求30的客户端10相关联的地理位置34最接近的相应地理区域121。
在所示的示例中,客户端10a位于东京,客户端10b位于圣何塞,客户端10c位于波士顿。此外,执行购物服务123的目的地集群120集合包括与东京的地理区域121a相关联的第一集群120a,与旧金山的地理区域121b相关联的第二集群120b,以及与纽约市的地理区域121c相关联的第三集群120c。每个客户端10a、10b、10c发送由控制器200接收的相应应用级请求30a、30b、30c。基于与请求30相关联的地理位置34(即,东京、圣何塞和波士顿),控制器200将请求30a路由到集群120a,将请求30b路由到集群120b,并将请求30c路由到集群120c。在一些示例中,基于与最低延迟(即,请求30从客户端10传输到相应集群120所花费的时间)相关联的集群120,多集群控制器200路由每个请求30。也就是说,每个目的地集群120从客户端10具有相应的延迟,并且多集群控制器200可以在任何给定的时间实例将请求30路由到具有每个目的地集群120的最低延迟的集群120。在其它示例中,基于与请求的地理位置34相关联的区域标签和与集群120的地理区域121相关联的区域标签的相等性匹配,多集群控制器200路由每个请求。例如,请求30可以包括对应于“亚洲”的区域标签,并且多集群入口400可以将请求30路由到具有匹配区域标签(即,“亚洲”)的集群。
在一些示例中,控制器200基于由多集群服务210指定的相应负载平衡(LB)属性420来路由请求30。例如,应用级请求30可以总是被路由到最接近(即,地理上最接近)的可用集群120。在一些实施方式中,集群120将自动扩展(例如,增加或减少每个集群120内的容器(例如,pod)122的数量)以适应客户端需求。在该示例中,每个集群实际上具有无限的资源,因此,客户端10将总是被路由到最近的集群120。通过基于客户端需求在每个集群的基础上自动扩展资源的数量,每个集群120的利用率(即,使用中的资源相对于总的可用资源的百分比)保持较高。在图4的示例中,当集群120具有适应客户端需求的无限容量时,集群120可以动态地扩展以满足终端用户需求,使得当负载平衡器130从东京接收比从圣何塞和波士顿接收更多数量的应用级请求30(即,请求/秒)时,东京的地理区域121a内的第一集群120a可以扩展(scale up)资源/容器122的数量(例如,pod),以满足增长的终端用户需求。在其它地理区域121b、121c内的第二和第三集群120b、120c中的至少一个也可以基于相应地理位置34处的终端用户需求而缩小(scale down)。在负载平衡器130将请求30路由到最近地理区域121的这些自动扩展的情形中,可能需要集群120来使彼此之间的状态同步,以提供有状态的(stateful)服务123。负载平衡器130可以基于每个集群120处的动态容量连续更新。
在其它实施方式中,集群120具有固定的资源容量(即,集群120不扩展)。在这种情况下,在路由应用级请求30之前,对于每个目的地集群120,多集群控制器200确定当前路由到目的地集群120的应用级请求30的数量(例如,请求/每秒)是否满足最大请求速率。当应用级请求30的数量满足最大请求速率时,多集群控制器200防止将应用级请求30路由到目的地集群120。也就是说,负载平衡属性420可以包括最大请求速率(即,最大RPS),并且在这种情况下,如果如上所述基于地理区域121的最近集群已经满足或超过其阈值RPS,则多集群入口400可以将请求30路由到下一个最近的集群120(例如,基于延迟或区域标签)。如果第二接近的集群120也已经超过其最大RPS,则多集群入口40可以转向第三接近的集群120,等等。此外,与目的地集群120中的至少一个相关联的固定资源容量可以不同于与其它目的地集群120相关联的固定资源容量。
附加地或替代地,负载平衡属性420可以包括多云和/或混合负载平衡属性,其使得应用级请求30路由到具有容纳请求30的能力的最近的地理集群120。集群120可以在另一个云计算网络中,或者甚至在应用级请求30发起的相同地理位置34(例如,房屋内)。这使得高度可用的服务能够在单一的云计算网络中弹性地应对多个区域的中断,并简化了新的云计算网络的启动。
每个集群120可以接收个性化的负载平衡属性420,或者可以将相同的属性420应用到所有的目的地集群120。当用户12不提供负载平衡属性420时,多集群入口400可以基于默认行为(例如,具有最低延迟的集群120)来路由。
在一些实施方式中,负载平衡属性420包括数据局部性(data-locality)路由属性。也就是说,负载平衡属性可以基于HTTP(S)报头信息(例如,HTTP cookie)将应用级请求30路由到集群120。这允许客户端10将其应用级请求30路由到已经托管其数据的集群120的地理位置/区域121,并有助于满足任何数据驻留要求或法律。这样,只需要为目的地集群集合120执行的底层服务123发布单个IP地址。数据驻留(data residency)通常被定义为客户数据必须在特定国家的边界内被处理和/或存储的要求。可选地,集群120使彼此之间的数据同步,以便同时服务于多个客户端集合10。这里,资源/容器/pod122可以根据终端用户的需求在相应集群内扩展或缩小。在集群120发生故障或以其它方式不健康的情况下,同步的数据还使得应用级请求30被重新路由到替代集群120。负载平衡属性420包括基于客户端的路由,其中,基于HTTP(S)报头信息,应用级请求30被路由到单个集群内的服务,HTTP(S)报头信息为例如HTTP cookie或地理报头。这允许负载平衡器130容易地将客户端10分组并路由到不同的服务。
负载平衡属性420还可以包括用于流量分解(traffic splitting)的属性。流量分解属性使得负载平衡器130能够基于用户12定义的集群120之间的百分比(%)分解或RPS比率将应用级请求30路由到集群120。也就是说,每个集群可以(例如,由用户12)被分配总流量(即,应用级请求30)的百分比,并且控制器200可以基于所分配的百分比将应用级请求30随机地路由到集群120。当新地理区域121中的集群120可以被缓慢地启动(即,以随时间增加的小百分比开始,有时被称为主要部署(canary deployment))时,这种流量分解缓解了工作负载向新地理区域121中的集群120的迁移。指定用于流量分割的属性的负载均衡属性420可以实现多区域分割或区域内分割。在多区域分割中,流量可以在地理区域121内被分割。这样,来自给定地理区域34中的同一客户端10的多个应用层请求30可以被路由至一个以上的地理区域121中的集群120。例如,波士顿中的客户端10c可以发出多个应用级请求30,由此负载平衡器130将这些请求30的一部分路由到与纽约市相关联的地理区域121c中的第三目的地集群120c,并将这些请求30的其余部分路由到与东京相关联的地理区域121a中的第一目的地集群120a。在区域内分割中,流量可以仅在相同的地理区域121内被分割。即,在区域内分割中,应用级请求30可以仅在相同的地理区域121内被分割,而跨区域流量不受影响。例如,东京的客户端10可以在位于与亚洲相关联的地理区域121中的两个单独的集群120内被分割,但是不被路由至具有与欧洲相关联的地理区域121的集群。负载平衡属性420还可以实现集群内的流量分割。利用集群内流量分割,应用级请求30可以基于所分配(即,由负载平衡属性420分配)的百分比被随机地路由到单个集群120内的服务。这使得能够测试例如新版本的服务。也就是说,服务的新版本可以被路由到小百分比的流量以进行测试,而大部分流量被路由到服务的原始版本。
图5是用于在多集群容器化编排系统100上对应用级请求30进行负载平衡的示例方法500的流程图。方法500可以参考图1-4来描述。方法500在操作502处开始,在数据处理硬件118处接收用于多集群负载平衡器130的负载平衡配置132,所述多集群负载平衡器130管理对目的地集群的集合120的访问,目的地集群托管由用户12部署的软件应用124。多集群负载平衡器130被配置为使用负载平衡配置132在目的地集群120的集合上负载平衡与软件应用124相关联的应用级流量30。每个目的地集群120包括执行软件应用124的至少一个容器122和相应地理区域121,地理区域121和至少一个其它地理区域121相同或不同,至少一个其它地理区域121与目的地集群集合中的目的地集群120的另外一个相关联。
在操作504,该方法500包括在数据处理硬件118处接收应用级别请求30,应用级别请求30针对在目的地集群的集合120上托管的软件应用124。应用级请求30是从客户端10接收的,并且包括与客户端10相关的主机名称32和地理位置34。应用级请求30还可以包括路径名称33。在操作506,方法500包括由数据处理硬件118根据应用级请求30的地理位置34和目的地集群集合120的各自地理区域121将应用级请求30路由到目的地集群集合中的目的地集群中的一个。
图6是可用于实现本文中描述的系统和方法的示例计算设备600的示意图。计算设备600旨在表示各种形式的数字计算机,例如膝上型计算机,台式计算机,工作站,个人数字助理,服务器,刀片服务器,大型机和其它适当的计算机。这里所示的组件,它们的连接和关系以及它们的功能仅仅是示例性的,而不意味着限制在本文件中描述和/或要求保护的本发明的实现。
计算设备600包括处理器610,存储器620,存储设备630,连接到存储器620和高速扩展端口650的高速接口/控制器640,以及连接到低速总线670和存储设备630的低速接口/控制器660。组件610,、620、630、640、650和660中的每一个使用各种总线互连,并且可以安装在公共母板上或以其它适当的方式安装。处理器610可以处理用于在计算设备600内执行的指令,包括存储在存储器620中或存储设备630上的指令,以在外部输入/输出设备(例如耦合到高速接口640的显示器680)上显示图形用户界面(GUI)的图形信息。在其它实现方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,可以连接多个计算设备600,其中每个设备提供必要操作的部分(例如,作为服务器库,刀片服务器组,或多处理器系统)。
存储器620在计算设备600内非瞬时地存储信息。存储器620可以是计算机可读介质,易失性存储器单元或非易失性存储器单元。非瞬态存储器620可以是用于临时或永久地存储由计算设备600使用的程序(例如,指令序列)或数据(例如,程序状态信息)的物理设备。非易失性存储器的实例包括(但不限于)闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,例如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM),相变存储器(PCM)以及磁盘或磁带。
存储设备630能够为计算设备600提供大容量存储。在一些实施方式中,存储设备630是计算机可读介质。在各种不同的实现中,存储设备630可以是软盘设备,硬盘设备,光盘设备,或磁带设备,闪存或其它类似的固态存储器设备,或设备阵列,包括存储区域网络中的设备或其它配置。在另外的实现中,计算机程序产品被有形地包含在信息载体中。所述计算机程序产品包含指令,所述指令在被执行时执行一个或多个方法,例如上述的那些方法。信息载体是计算机或机器可读介质,例如存储器620、存储设备630或处理器610上的存储器。
高速控制器640管理计算设备600的带宽密集操作,而低速控制器660管理较低的带宽密集操作。这种职责的分配仅是示例性的。在一些实施方式中,高速控制器640耦合到存储器620、显示器680(例如,通过图形处理器或加速器)以及高速扩展端口650,高速扩展端口650可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器660耦合到存储设备630和低速扩展端口690。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口690可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘、定点设备、扫描仪、或诸如交换机或路由器的联网设备。
计算设备600可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器600a或者在一组这样的服务器600a中多次实现为膝上型计算机600b,或者实现为机架服务器系统600c的一部分。
在此描述的系统和技术的各种实现可以在数字电子和/或光学电路,集成电路,专门设计的ASIC(专用集成电路),计算机硬件,固件,软件和/或其组合中实现。这些各种实现可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现,所述可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,被耦合以从存储系统,至少一个输入设备和至少一个输出设备接收数据和指令,以及向存其发送数据和指令。
软件应用(即,软件资源)可以指使计算设备执行任务的计算机软件。在一些示例中,软件应用可被称为“应用”、“app”、或“程序”。示例应用包括但不限于系统诊断应用,系统管理应用,系统维护应用,字处理应用,电子表格应用,消息传递应用,媒体流应用,社交网络应用和游戏应用。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所用,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非瞬态计算机可读介质、设备和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收作为机器可读信号的机器指令机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器(也称为数据处理硬件)执行,执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或被可操作地耦合以从一个或多个大容量存储设备接收数据或向一个或多个大容量存储设备传送数据,所述大容量存储设备用于存储数据,例如磁盘、磁光盘或光盘。然而,计算机不必具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在具有显示设备的计算机上实现,所述显示设备例如CRT(阴极射线管)、LCD(液晶显示器)监视器,或者用于向用户显示信息的触摸屏,并且可选地还具有键盘和定点设备,例如鼠标或轨迹球,通过这些设备用户可以向计算机提供输入。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈,听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求向用户的客户端设备上的网络浏览器发送网页。
已经描述了多种实现方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其它实施方式也在所附权利要求的范围内。
Claims (26)
1.一种方法(500),其特征在于,所述方法包括:
在数据处理硬件(118)处接收多集群服务(210)的负载平衡配置(132),所述多集群服务(210)管理对托管由用户(12)部署的软件应用(124)的目的地集群集合(120)的访问,所述多集群服务(210)被配置为使用所述负载平衡配置(132)来对所述目的地集群集合(120)上的、与所述软件应用(124)相关联的应用级流量进行负载平衡,每个目的地集群(120)包括:
执行所述软件应用(124)的至少一个容器(122);以及
与所述目的地集群集合(120)中的所述目的地集群(120)中的另一个相关联的至少一个其它地理区域(121)相同或不同的相应地理区域(121);
在所述数据处理硬件(118)处接收针对托管于所述目的地集群集合(120)的所述软件应用(124)的应用级请求(30),所述应用级请求(30)从客户端(10)接收并且所述应用级请求(30)包括与所述客户端(10)相关联的宿主名称(32)和地理位置(34);以及
基于所述应用级请求(30)的所述地理位置(34)和所述目的地集群集合(120)的所述相应地理区域(121),由所述数据处理硬件(118)将所述应用级请求(30)路由至所述目的地集群集合(120)中的所述目的地集群(120)中的一个。
2.如权利要求1所述的方法(500),其特征在于,路由所述应用级请求(30)包括:
基于所述目的地集群集合(120)的所述相应地理区域(34),确定所述目的地集群集合(120)中的哪一个目的地集群(120)与所述应用级请求(30)的所述客户端(10)相关联的所述地理位置(34)最接近;以及
将所述应用级请求(30)路由至所述目的地集群集合(120)中的所述目的地集群(120),所述目的地集群(120)具有与所述应用级请求(30)的所述客户端(10)相关联的所述地理位置(34)最接近的所述相应地理位置(34)。
3.如权利要求1或2所述的方法(500),其特征在于,路由所述应用级请求(30)还基于相应负载均衡属性(420),由所述多集群服务(210)为所述目的地集群集合(120)中的每个目的地集群(120)指定所述相应负载均衡属性(420)。
4.如权利要求1至3中任一项所述的方法(500),其特征在于,所接收的所述负载平衡配置(132)包括唯一地标识所述多集群服务(210)的用户派生服务名称(211)。
5.如权利要求1至4中任一项所述的方法(500),其特征在于,所述方法还包括:
由所述数据处理硬件(118)识别由所述多集群服务(210)指定的集群选择标准(213),所述集群选择标准(213)用于从将为所述多集群服务(210)提供应用级流量的已知集群(120)的列表中选出集群(120);以及
由所述数据处理硬件(118)基于所述目的地集群集合(120)中的每个目的地集群(120),从所述已知集群(120)的列表中选出所述目的地集群集合(120),所述每个目的地集群(120)具有满足由所述多集群服务(210)指定的所述集群选择标准(213)的一个或多个标签(216)的相应集合目的地。
6.如权利要求5所述的方法(500),其特征在于,由所述多集群服务(210)指定的所述集群选择标准(213)包括一个或多个基于相等的匹配要求或一个或多个基于集合的匹配要求中的至少一个。
7.如权利要求1至6中任一项所述的方法(500),其特征在于,所述方法还包括:对于所述目的地集群集合(120)中的每个目的地集群(120),由所述数据处理硬件(118)实例化所述目的地集群(120)内的相应派生服务(220),所述相应派生服务(220)被配置为创建包括端点组(231)的相应网络端点组(NEG)(230),在所述端点组(231)中的每个端点(231)与所述目的地集群(120)的相应容器(122)相关联,并且所述每个端点(231)包括相应因特网协议(IP)地址和相应端口(244),以将应用级流量直接分发到所述相应容器(122)。
8.如权利要求7所述的方法(500),其特征在于,每个相应派生服务(220)包括唯一派生服务名称(221),所述唯一派生服务名称(221)不同于所述其它派生服务(220)的所述派生服务名称(221),所述派生服务名称(221)具有经修剪的服务名称部分和唯一散列部分,所述经修剪的服务名称部分包括所述多集群服务(210)的用户派生服务名称(211),并且所述唯一散列部分包括所述多集群服务(210)的所述用户派生服务名称(211)的唯一散列。
9.如权利要求1至8中任一项所述的方法(500),其特征在于,所述方法还包括:响应于接收所述应用级请求(30):
由所述数据处理硬件(118)访问统一资源定位符(URL)映射,所述URL映射(410)指定映射到所述目的地集群(120)中的一个或多个的服务的、一个或多个宿主名称(412)的列表;
由所述数据处理硬件(118)确定接收到的应用级请求(30)的所述宿主名称(32)是否包括由所述URL映射(410)指定的所述一个或多个宿主名称(412)的列表中的一个或多个宿主名称(412)中的一个;以及
当所接收的所述应用级请求(30)的所述宿主名称(32)包括所述一个或多个宿主名称(412)中的一个时,由所述数据处理硬件(118)将所述接收到的应用级请求(30)转发到所述服务。
10.如权利要求1至9中任一项所述的方法(500),其特征在于,所述应用级流量包括超文本传输协议(HTTP)。
11.如权利要求1至10中任一项所述的方法(500),其特征在于,所述应用级流量包括超文本传输安全协议(HTTPS)。
12.如权利要求1至11中任一项所述的方法(500),其特征在于,所述应用级请求(30)的至少一部分包括传输层安全(TLS)协议。
13.如权利要求1至12中任一项所述的方法(500),其特征在于,所述方法还包括,在路由所述应用级请求(30)之前:
对于所述目的地集群集合(120)中的每个目的地集群(120):
由所述数据处理硬件(118)确定当前路由到所述目的地集群(120)的应用级请求(30)的数量是否满足最大请求速率;以及
当所述应用级请求(30)的数量满足所述最大请求速率时,防止将所述应用级请求(30)路由到所述目的地集群(120)。
14.一种系统(100),其特征在于,所述系统包括:
数据处理硬件(118);和
与所述数据处理硬件(118)通信的存储器硬件(116),所述存储器硬件(116)存储指令,所述指令在所述数据处理硬件(118)上执行时使所述数据处理硬件(118)执行以下操作:
接收多集群服务(210)的负载平衡配置(132),所述多集群服务(210)管理对托管由用户(12)部署的软件应用(124)的目的地集群集合(120)的访问,所述多集群服务(210)被配置为使用所述负载平衡配置(132)来对所述目的地集群集合(120)上的、与所述软件应用(124)相关联的应用级流量进行负载平衡,每个目的地集群(120)包括:
执行软件应用(124)的至少一个容器(122);以及
与所述目的地集群集合(120)中的所述目的地集群(120)中的另一个相关联的至少一个其它地理区域(121)相同或不同的相应地理区域(121);
接收针对托管于所述目的地集群集合(120)的所述软件应用(124)的应用级请求(30),所述应用级请求(30)从客户端(10)接收并且所述应用级请求(30)包括与所述客户端(10)相关联的宿主名称(32)和地理位置(34);以及
基于所述应用级请求(30)的所述地理位置(34)和所述目的地集群集合(120)的所述相应地理区域(121),将所述应用级请求(30)路由至所述目的地集群集合(120)中的所述目的地集群(120)中的一个。
15.如权利要求14所述的系统(100),其特征在于,路由所述应用级请求(30)包括:
基于所述目的地集群集合(120)的所述相应地理位置(34),确定所述目的地集群集合(120)中的哪一个目的地集群(120)与所述应用级请求(30)的所述客户端(10)相关联的所述地理位置(34)最接近;以及
将所述应用级请求(30)路由至所述目的地集群集合(120)中的所述目的地集群(120),所述目的地集群(120)具有与所述应用级请求(30)的所述客户端(10)相关联的所述地理位置(34)最接近的所述相应地理位置(34)。
16.如权利要求14或15所述的系统(100),其特征在于,路由所述应用级请求(30)还基于相应负载均衡属性(420),由所述多集群服务(210)为所述目的地集群集合(120)中的每个目的地集群(120)指定所述相应负载均衡属性(420)。
17.如权利要求14至16中任一项所述的系统(100),其特征在于,所接收的负载平衡配置(132)包括唯一地标识所述多集群服务(210)的用户派生服务名称(211)。
18.如权利要求14-17中任一项所述的系统(100),其特征在于,所述操作还包括:
识别由所述多集群服务(210)指定的集群选择标准(213),所述集群选择标准(213)用于从将为所述多集群服务(210)提供应用级流量的已知集群(120)的列表中选择集群(120);以及
基于所述目的地集群集合(120)中的每个目的地集群(120),从所述已知集群(120)的列表中选出所述目的地集群集合(120),所述每个目的地集群(120)具有满足由所述多集群服务(210)指定的所述集群选择标准(213)的一个或多个标签(216)的相应集合目的地。
19.如权利要求18所述的系统(100),其特征在于,由所述多集群服务(210)指定的所述集群选择标准(213)包括一个或多个基于相等的匹配要求或一个或多个基于集合的匹配要求中的至少一个。
20.如权利要求14至19中任一项所述的系统(100),其特征在于,所述操作还包括:对于所述目的地集群集合(120)中的每个目的地集群(120),实例化所述目的地集群(120)内的相应派生服务(220),所述相应派生服务(220)被配置为创建包括端点组(231)的相应网络端点组(NEG)(230),在所述端点组(231)中的每个端点(231)与所述目的地集群(120)的相应容器(122)相关联,并且所述每个端点(231)包括相应因特网协议(IP)地址和相应端口(244),以将应用级流量直接分发到所述相应容器(122)。
21.如权利要求20所述的系统(100),其特征在于,每个相应派生服务(220)包括唯一派生服务名称(221),所述唯一派生服务名称(221)不同于所述其它派生服务(220)的所述派生服务名称(221),所述派生服务名称(221)具有经修剪的服务名称部分和唯一散列部分,所述经修剪的服务名称部分包括所述多集群服务(210)的用户派生服务名称(211),并且所述唯一散列部分包括所述多集群服务(210)的所述用户派生服务名称(211)的唯一散列。
22.如权利要求14至21中任一项所述的系统(100),其特征在于,所述操作还包括,响应于接收所述应用级请求(30):
访问统一资源定位符(URL)映射,所述URL映射(410)指定映射到所述目的地集群(120)中的一个或多个的服务的、一个或多个宿主名称(412)的列表;
确定接收到的应用级请求(30)的所述宿主名称(32)是否包括由URL映射(410)指定的所述一个或多个宿主名称(412)的列表中的一个或多个宿主名称(412)中的一个;以及
当接收到的所述应用级请求(30)的所述宿主名称(32)包括所述一个或多个宿主名称(412)中的一个时,将所述接收到的应用级请求(30)转发到所述服务。
23.如权利要求14至22中任一项所述的系统(100),其特征在于,所述应用级流量包括超文本传输协议(HTTP)。
24.如权利要求14至23中任一项所述的系统(100),其特征在于,所述应用级流量包括超文本传输安全协议(HTTPS)。
25.如权利要求14至24中任一项所述的系统(100),其特征在于,所述应用级请求(30)的至少一部分包括传输层安全(TLS)协议。
26.如权利要求14至25中任一项所述的系统(100),其特征在于,所述操作还包括,在路由所述应用级请求(30)之前:
对于所述目的地集群集合(120)中的每个目的地集群(120):
确定当前路由到所述目的地集群(120)的应用级请求(30)的数量是否满足最大请求速率;以及
当所述应用级请求(30)的数量满足所述最大请求速率时,防止将所述应用级请求(30)路由到所述目的地集群(120)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311095130.3A CN116915787A (zh) | 2019-04-01 | 2019-11-21 | 多集群入口 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/372,220 US10887380B2 (en) | 2019-04-01 | 2019-04-01 | Multi-cluster ingress |
US16/372,220 | 2019-04-01 | ||
PCT/US2019/062652 WO2020205006A1 (en) | 2019-04-01 | 2019-11-21 | Multi-cluster ingress |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311095130.3A Division CN116915787A (zh) | 2019-04-01 | 2019-11-21 | 多集群入口 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113906723A true CN113906723A (zh) | 2022-01-07 |
CN113906723B CN113906723B (zh) | 2023-09-22 |
Family
ID=68848510
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311095130.3A Pending CN116915787A (zh) | 2019-04-01 | 2019-11-21 | 多集群入口 |
CN201980097035.2A Active CN113906723B (zh) | 2019-04-01 | 2019-11-21 | 多集群入口 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311095130.3A Pending CN116915787A (zh) | 2019-04-01 | 2019-11-21 | 多集群入口 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10887380B2 (zh) |
EP (1) | EP3949341A1 (zh) |
JP (3) | JP7101319B2 (zh) |
KR (3) | KR102425996B1 (zh) |
CN (2) | CN116915787A (zh) |
WO (1) | WO2020205006A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12019607B2 (en) * | 2018-12-14 | 2024-06-25 | Salesforce, Inc. | Methods, apparatuses, and computer program products for management of and search index generation based on geographically distributed data |
US11539675B2 (en) | 2018-06-06 | 2022-12-27 | Slack Technologies, Llc | Encryption key management for international data residency |
US11949739B2 (en) | 2018-12-14 | 2024-04-02 | Salesforce, Inc. | Methods, apparatuses, and computer program products for management of data deletion requests based on geographically distributed data |
US10887380B2 (en) * | 2019-04-01 | 2021-01-05 | Google Llc | Multi-cluster ingress |
US11201897B1 (en) | 2019-09-03 | 2021-12-14 | Rapid7, Inc. | Secure multiplexed routing |
US11522913B1 (en) | 2019-09-03 | 2022-12-06 | Rapid7, Inc. | Simplifying networking setup complexity for security agents |
US11297036B1 (en) | 2019-09-03 | 2022-04-05 | Rapid7, Inc. | Single whitelisted ingress endpoint on 1 and 2 way TLS connections |
US11157304B2 (en) * | 2019-11-01 | 2021-10-26 | Dell Products L.P. | System for peering container clusters running on different container orchestration systems |
US11165860B2 (en) * | 2019-11-01 | 2021-11-02 | Uber Technologies, Inc. | Dynamically computing load balancer subset size in a distributed computing system |
EP4078901A4 (en) | 2020-04-01 | 2023-10-11 | VMWare, Inc. | AUTOMATIC DEPLOYMENT OF NETWORK ELEMENTS FOR HETEROGENEOUS COMPUTING ELEMENTS |
US20220006654A1 (en) * | 2020-07-02 | 2022-01-06 | EMC IP Holding Company LLC | Method to establish an application level ssl certificate hierarchy between master node and capacity nodes based on hardware level certificate hierarchy |
US11803408B2 (en) | 2020-07-29 | 2023-10-31 | Vmware, Inc. | Distributed network plugin agents for container networking |
US11863352B2 (en) * | 2020-07-30 | 2024-01-02 | Vmware, Inc. | Hierarchical networking for nested container clusters |
EP4193302A1 (en) * | 2020-08-05 | 2023-06-14 | Avesha, Inc. | Performing load balancing self adjustment within an application environment |
US11388234B2 (en) * | 2020-10-19 | 2022-07-12 | Hewlett Packard Enterprise Development Lp | Infrastructure for deploying a security information and event management application on a container platform |
US12003385B2 (en) | 2021-03-02 | 2024-06-04 | Cisco Technology, Inc. | Dynamic network routing based on application load |
WO2022186986A1 (en) * | 2021-03-02 | 2022-09-09 | Cisco Technology, Inc. | Dynamic network routing based on application load |
US11303712B1 (en) * | 2021-04-09 | 2022-04-12 | International Business Machines Corporation | Service management in distributed system |
US11805073B2 (en) | 2021-05-03 | 2023-10-31 | Avesha, Inc. | Controlling placement of workloads of an application within an application environment |
US11729296B2 (en) * | 2021-05-25 | 2023-08-15 | Vmware, Inc. | Dynamically scaling control plane for ingress services for large numbers of applications with minimal traffic disruption |
US11675804B2 (en) * | 2021-08-18 | 2023-06-13 | Jpmorgan Chase Bank, N.A. | Systems and methods for universal data ingestion |
US11372820B1 (en) * | 2021-08-19 | 2022-06-28 | Snowflake Inc. | Zone balancing in a multi cluster database system |
US20230073891A1 (en) * | 2021-09-09 | 2023-03-09 | Beijing Bytedance Network Technology Co., Ltd. | Multifunctional application gateway for security and privacy |
CN114374696A (zh) * | 2021-12-15 | 2022-04-19 | 深圳前海微众银行股份有限公司 | 一种容器负载均衡方法、装置、设备及存储介质 |
US11902245B2 (en) | 2022-01-14 | 2024-02-13 | VMware LLC | Per-namespace IP address management method for container networks |
US20230232195A1 (en) * | 2022-01-19 | 2023-07-20 | Vmware, Inc. | Collective scaling of applications |
CN114500545A (zh) * | 2022-01-24 | 2022-05-13 | 杭州博盾习言科技有限公司 | 适用于容器的网络负载均衡方法、装置及电子设备 |
CN114745380B (zh) * | 2022-03-29 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 基于服务网格的跨私网多集群管理方法及装置 |
KR20230174137A (ko) * | 2022-06-20 | 2023-12-27 | 삼성전자주식회사 | 컨테이너 기반 다중 클러스터 환경에서 데이터 동기화를 위한 방법 및 장치 |
CN115314432A (zh) * | 2022-07-30 | 2022-11-08 | 济南浪潮数据技术有限公司 | 一种跨集群应用路由访问方法、系统、设备及介质 |
US20240103475A1 (en) * | 2022-09-22 | 2024-03-28 | Rockwell Automation Technologies, Inc. | Chainable and nested edge for industrial automation device analytics |
US11848910B1 (en) | 2022-11-11 | 2023-12-19 | Vmware, Inc. | Assigning stateful pods fixed IP addresses depending on unique pod identity |
US11831511B1 (en) | 2023-01-17 | 2023-11-28 | Vmware, Inc. | Enforcing network policies in heterogeneous systems |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557344A (zh) * | 2009-05-21 | 2009-10-14 | 南昌航空大学 | 一种基于空间地理位置的动态负载均衡方法 |
US20120215910A1 (en) * | 2011-02-18 | 2012-08-23 | Canon Kabushiki Kaisha | Web service system, server management apparatus, and web service providing method |
US20160092208A1 (en) * | 2014-09-30 | 2016-03-31 | Linkedin Corporation | Managing access to resource versions in shared computing environments |
US20160112403A1 (en) * | 2014-10-15 | 2016-04-21 | Barracuda Networks, Inc. | Method and apparatus for bulk authentication and load balancing of networked appliances |
US20170249141A1 (en) * | 2016-02-26 | 2017-08-31 | Red Hat, Inc. | Hot deployment in a distributed cluster system |
CN108762917A (zh) * | 2018-05-04 | 2018-11-06 | 平安科技(深圳)有限公司 | 访问请求处理方法、装置、系统、计算机设备和存储介质 |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5774660A (en) * | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
US6006264A (en) * | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
US6223209B1 (en) * | 1997-09-30 | 2001-04-24 | Ncr Corporation | Distributed world wide web servers |
US6134588A (en) * | 1997-11-12 | 2000-10-17 | International Business Machines Corporation | High availability web browser access to servers |
US6578066B1 (en) * | 1999-09-17 | 2003-06-10 | Alteon Websystems | Distributed load-balancing internet servers |
US6754699B2 (en) * | 2000-07-19 | 2004-06-22 | Speedera Networks, Inc. | Content delivery and global traffic management network system |
US8756342B1 (en) * | 2000-02-07 | 2014-06-17 | Parallel Networks, Llc | Method and apparatus for content synchronization |
US20040205693A1 (en) * | 2001-04-23 | 2004-10-14 | Michael Alexander | Resource localization |
US7512702B1 (en) * | 2002-03-19 | 2009-03-31 | Cisco Technology, Inc. | Method and apparatus providing highly scalable server load balancing |
US6856991B1 (en) * | 2002-03-19 | 2005-02-15 | Cisco Technology, Inc. | Method and apparatus for routing data to a load balanced server using MPLS packet labels |
US7349402B2 (en) * | 2002-03-25 | 2008-03-25 | Nokia Corporation | Communication system and method to be performed in a communication system |
US7243351B2 (en) * | 2002-12-17 | 2007-07-10 | International Business Machines Corporation | System and method for task scheduling based upon the classification value and probability |
KR101044182B1 (ko) * | 2003-03-06 | 2011-06-28 | 마이크로소프트 코포레이션 | 시스템의 검증을 용이하게 하는 방법, 소프트웨어 애플리케이션의 검증을 용이하게 하는 장치 및 컴퓨터 판독 가능 기록 매체 |
US8145908B1 (en) * | 2004-10-29 | 2012-03-27 | Akamai Technologies, Inc. | Web content defacement protection system |
US8296388B2 (en) * | 2005-07-18 | 2012-10-23 | Microsoft Corporation | Cross-application encoding of geographical location information |
US20080086523A1 (en) * | 2006-08-18 | 2008-04-10 | Akamai Technologies, Inc. | Method of data collection in a distributed network |
US8631147B2 (en) * | 2007-03-12 | 2014-01-14 | Citrix Systems, Inc. | Systems and methods for configuring policy bank invocations |
US8135013B2 (en) * | 2007-04-06 | 2012-03-13 | International Business Machines Corporation | Internet protocol switch and use of the switch for switching a frame |
JP2008299617A (ja) * | 2007-05-31 | 2008-12-11 | Toshiba Corp | 情報処理装置、および情報処理システム |
US20110141218A1 (en) * | 2008-06-25 | 2011-06-16 | Enzo Stancato | Multifunction Apparatus for Telecommunications |
US10191778B1 (en) * | 2015-11-16 | 2019-01-29 | Turbonomic, Inc. | Systems, apparatus and methods for management of software containers |
US20110035497A1 (en) * | 2009-08-05 | 2011-02-10 | Dynamic Network Services, Inc. | System and method for providing global server load balancing |
EP2290942B1 (en) * | 2009-08-25 | 2019-05-22 | Bond TV LLC | A method and system for delivery of data to an end user |
US9600341B2 (en) * | 2009-09-14 | 2017-03-21 | Red Hat, Inc. | Transaction sticky load balance policies |
US20110276679A1 (en) * | 2010-05-04 | 2011-11-10 | Christopher Newton | Dynamic binding for use in content distribution |
US8719415B1 (en) * | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US10484232B2 (en) * | 2011-01-12 | 2019-11-19 | Level 3 Communications, Llc | Customized domain names in a content delivery network (CDN) |
US20120226721A1 (en) * | 2011-03-02 | 2012-09-06 | Texas Instruments Incorporated | Systems, apparatuses and methods for preserving geographic metadata |
US8694647B2 (en) * | 2011-03-18 | 2014-04-08 | Microsoft Corporation | Read-only operations processing in a paxos replication system |
JP5828681B2 (ja) | 2011-05-31 | 2015-12-09 | キヤノン株式会社 | 設定値管理装置及びその制御方法、並びにプログラム |
US9967353B2 (en) * | 2011-09-23 | 2018-05-08 | Tara Chand Singhal | Systems and methods for faster download of digital content in mobile wireless devices |
US9392010B2 (en) * | 2011-11-07 | 2016-07-12 | Netflow Logic Corporation | Streaming method and system for processing network metadata |
US9372735B2 (en) * | 2012-01-09 | 2016-06-21 | Microsoft Technology Licensing, Llc | Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool |
PT2820616T (pt) * | 2012-02-29 | 2019-06-12 | Airbnb Inc | Determinação de especialistas empíricos e sistema e método de encaminhamento de perguntas |
US9740708B2 (en) * | 2012-05-01 | 2017-08-22 | Everbridge, Inc. | Systems and methods for distance and performance based load balancing |
US8874754B2 (en) * | 2012-10-16 | 2014-10-28 | Softwin Srl Romania | Load balancing in handwritten signature authentication systems |
WO2014068757A1 (ja) * | 2012-11-01 | 2014-05-08 | 株式会社日立製作所 | 情報処理システム、データ管理方法及びプログラム |
US9064124B1 (en) * | 2012-12-19 | 2015-06-23 | Amazon Technologies, Inc. | Distributed caching system |
US9407567B2 (en) * | 2012-12-24 | 2016-08-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Enabling external access to multiple services on a local server |
US9755889B2 (en) * | 2013-02-13 | 2017-09-05 | International Business Machines Corporation | Service failover and failback using enterprise service bus |
US9712608B2 (en) * | 2013-03-14 | 2017-07-18 | Microsoft Technology Licensing, Llc | Elastically scalable document-oriented storage services |
US10212238B2 (en) * | 2013-05-15 | 2019-02-19 | Level 3 Communications, Llc | Selecting a content providing server in a content delivery network |
US9384227B1 (en) * | 2013-06-04 | 2016-07-05 | Amazon Technologies, Inc. | Database system providing skew metrics across a key space |
US10097503B2 (en) * | 2013-09-27 | 2018-10-09 | Fastly, Inc. | Content node network address selection for content delivery |
US9363192B2 (en) * | 2013-10-31 | 2016-06-07 | Vmware, Inc. | Automatic remediation in a distributed computer system with multiple clusters of host computers |
US9843533B2 (en) * | 2014-03-06 | 2017-12-12 | Trilio Data Inc. | Elastic compute cloud based on underutilized server resources using a distributed container system |
US10404613B1 (en) * | 2014-03-31 | 2019-09-03 | Amazon Technologies, Inc. | Placement of control and data plane resources |
CN104980361B (zh) * | 2014-04-01 | 2018-09-21 | 华为技术有限公司 | 一种负载均衡方法、装置及系统 |
US10511674B2 (en) * | 2014-04-18 | 2019-12-17 | Vmware, Inc. | Gesture based switching of virtual desktop clients |
US9560124B2 (en) * | 2014-05-13 | 2017-01-31 | Google Inc. | Method and system for load balancing anycast data traffic |
US9614687B2 (en) * | 2014-06-06 | 2017-04-04 | Cisco Technology, Inc. | Dynamic configuration of a conference system with distributed media agents |
CN106471472B (zh) | 2014-06-23 | 2020-03-03 | 甲骨文国际公司 | 用于多租户应用服务器环境中的分区迁移的系统和方法 |
US10257179B1 (en) * | 2015-01-26 | 2019-04-09 | Microstrategy Incorporated | Credential management system and peer detection |
US10560543B2 (en) * | 2015-03-26 | 2020-02-11 | Fortinet, Inc. | Rule based cache processing in application delivery controller for load balancing |
US10331380B1 (en) * | 2015-04-06 | 2019-06-25 | EMC IP Holding Company LLC | Scalable distributed in-memory computation utilizing batch mode extensions |
US10348589B2 (en) * | 2015-06-15 | 2019-07-09 | Netflix, Inc. | Managing networks and machines that deliver digital content |
US10104185B1 (en) * | 2015-08-10 | 2018-10-16 | Amazon Technologies, Inc. | Policy-based container cotenancy |
US10326744B1 (en) * | 2016-03-21 | 2019-06-18 | EMC IP Holding Company LLC | Security layer for containers in multi-tenant environments |
JP6700894B2 (ja) * | 2016-03-25 | 2020-05-27 | キヤノン株式会社 | 画像処理装置、制御方法、プログラム |
US10341810B2 (en) * | 2016-06-23 | 2019-07-02 | T-Mobile Usa, Inc. | Geolocation compatibility for non-RCS devices |
US10871995B2 (en) * | 2016-09-29 | 2020-12-22 | Amazon Technologies, Inc. | Managed container instances |
US10372499B1 (en) * | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10382565B2 (en) * | 2017-01-27 | 2019-08-13 | Red Hat, Inc. | Capacity scaling of network resources |
US11093297B2 (en) * | 2017-02-08 | 2021-08-17 | Dell Products L.P. | Workload optimization system |
US10963349B2 (en) * | 2017-08-25 | 2021-03-30 | Vmware, Inc. | Containerized application snapshots |
US10541924B2 (en) * | 2017-12-01 | 2020-01-21 | International Business Machines Corporation | Load balancing in data hosting systems |
US10616707B2 (en) * | 2018-01-25 | 2020-04-07 | Nutanix, Inc. | Method of showing availability zones on a map for customer-owned and cloud provider-owned datacenters |
US10951693B2 (en) * | 2018-04-02 | 2021-03-16 | T-Mobile Usa, Inc. | Data prioritization and scheduling system |
US10887380B2 (en) * | 2019-04-01 | 2021-01-05 | Google Llc | Multi-cluster ingress |
US11803408B2 (en) * | 2020-07-29 | 2023-10-31 | Vmware, Inc. | Distributed network plugin agents for container networking |
US20220277162A1 (en) * | 2021-02-26 | 2022-09-01 | Kogniz, Inc. | Optical person recognition techniques for social distancing |
-
2019
- 2019-04-01 US US16/372,220 patent/US10887380B2/en active Active
- 2019-11-21 CN CN202311095130.3A patent/CN116915787A/zh active Pending
- 2019-11-21 WO PCT/US2019/062652 patent/WO2020205006A1/en unknown
- 2019-11-21 KR KR1020217031819A patent/KR102425996B1/ko active IP Right Grant
- 2019-11-21 JP JP2021558803A patent/JP7101319B2/ja active Active
- 2019-11-21 KR KR1020237007705A patent/KR102604082B1/ko active IP Right Grant
- 2019-11-21 CN CN201980097035.2A patent/CN113906723B/zh active Active
- 2019-11-21 EP EP19818462.4A patent/EP3949341A1/en active Pending
- 2019-11-21 KR KR1020227025648A patent/KR102508398B1/ko active IP Right Grant
-
2020
- 2020-12-29 US US17/137,343 patent/US11677818B2/en active Active
-
2022
- 2022-07-04 JP JP2022107793A patent/JP7411735B2/ja active Active
-
2023
- 2023-05-04 US US18/312,463 patent/US20230275959A1/en active Pending
- 2023-12-25 JP JP2023218014A patent/JP2024041790A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557344A (zh) * | 2009-05-21 | 2009-10-14 | 南昌航空大学 | 一种基于空间地理位置的动态负载均衡方法 |
US20120215910A1 (en) * | 2011-02-18 | 2012-08-23 | Canon Kabushiki Kaisha | Web service system, server management apparatus, and web service providing method |
US20160092208A1 (en) * | 2014-09-30 | 2016-03-31 | Linkedin Corporation | Managing access to resource versions in shared computing environments |
US20160112403A1 (en) * | 2014-10-15 | 2016-04-21 | Barracuda Networks, Inc. | Method and apparatus for bulk authentication and load balancing of networked appliances |
US20170249141A1 (en) * | 2016-02-26 | 2017-08-31 | Red Hat, Inc. | Hot deployment in a distributed cluster system |
CN108762917A (zh) * | 2018-05-04 | 2018-11-06 | 平安科技(深圳)有限公司 | 访问请求处理方法、装置、系统、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10887380B2 (en) | 2021-01-05 |
JP7101319B2 (ja) | 2022-07-14 |
KR102508398B1 (ko) | 2023-03-08 |
KR102604082B1 (ko) | 2023-11-17 |
KR20210127761A (ko) | 2021-10-22 |
JP7411735B2 (ja) | 2024-01-11 |
CN113906723B (zh) | 2023-09-22 |
WO2020205006A1 (en) | 2020-10-08 |
KR102425996B1 (ko) | 2022-07-27 |
CN116915787A (zh) | 2023-10-20 |
US20200314173A1 (en) | 2020-10-01 |
EP3949341A1 (en) | 2022-02-09 |
KR20230038597A (ko) | 2023-03-20 |
US20210120079A1 (en) | 2021-04-22 |
KR20220110329A (ko) | 2022-08-05 |
JP2022137138A (ja) | 2022-09-21 |
JP2024041790A (ja) | 2024-03-27 |
JP2022521839A (ja) | 2022-04-12 |
US20230275959A1 (en) | 2023-08-31 |
US11677818B2 (en) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113906723B (zh) | 多集群入口 | |
US20200259889A1 (en) | Distributed network services | |
US11368385B1 (en) | System and method for deploying, scaling and managing network endpoint groups in cloud computing environments | |
US9143582B2 (en) | Interoperability for distributed overlay virtual environments | |
US20120226799A1 (en) | Capabilities Based Routing of Virtual Data Center Service Request | |
US20160197835A1 (en) | Architecture and method for virtualization of cloud networking components | |
US20120226789A1 (en) | Hiearchical Advertisement of Data Center Capabilities and Resources | |
US11848981B2 (en) | Secure multi-directional data pipeline for data distribution systems | |
US20220318071A1 (en) | Load balancing method and related device | |
US11765014B2 (en) | Intent-based distributed alarm service | |
WO2016109845A1 (en) | Architecture and method for traffic engineering between diverse cloud providers | |
US7711780B1 (en) | Method for distributed end-to-end dynamic horizontal scalability | |
CN109067573B (zh) | 一种流量调度方法及装置 | |
US11102258B2 (en) | Stream processing without central transportation planning | |
US11870647B1 (en) | Mapping on-premise network nodes to cloud network nodes | |
EP3961985B1 (en) | Intent-based distributed alarm service | |
Park et al. | Optimized Data Transmission Method for Multimedia Services Based on OpenStack |
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 |