load-balancing - 在 Google Cloud Platform 中创建 HTTP 负载平衡器

标签 load-balancing google-cloud-platform google-compute-engine

GCP 中的 HTTP 负载均衡器有很多移动部分,例如全局转发规则、目标代理、URL 映射、后端服务和实例组。

由于我发现设置 HTTP 负载平衡器很困难,因此我编写了以下答案,汇总了在 GCP 中设置 HTTP 负载平衡器的步骤。

这个问题是另一个 question's answer 的一部分,这是关于构建一个自动缩放和负载平衡的后端。

最佳答案

首先,GCP 提供两种类型的负载均衡器,即网络和 HTTP(s) 负载均衡器。您可以找到 之间的区别网络与 HTTP(s) 负载平衡器 here .从这一点开始,我将调用 HTTP 负载均衡器 作为 丰隆银行 (因为它太长了)。

这是 HLB 的架构,取自 GCP :

HTTP load balancer architecture

正如您从上述架构中看到的那样,设置 HLB 有很多事件部件。现在,我们将从实例模板、实例组到转发规则从反面构建它。

1. 实例模板:虽然设置 HLB 不需要实例模板,但您甚至可以使用非托管实例组并将其附加到 HLB。我更喜欢拥有一个实例模板和托管实例组,以便还可以为同构实例组添加自动缩放功能。我已经编写了创建 的步骤实例模板 here .

Lets assume the instance template to be sample-template.

2. 托管实例组:请完成创建 的步骤托管实例组和自动缩放 here .自动缩放和负载平衡是相互独立的。两者都提供健康检查。从我的角度来看,为负载均衡器和自动缩放设置健康检查是多余的,我认为单独对负载均衡器进行健康检查会很好。
Lets assume the managed instance group to be autoscale-managed-instance group, which is autoscaled and created based on sample-template.

3.服务端点:您需要指定 HLB 将使用的服务端点。 gcloud 中设置服务端点的命令:
gcloud compute instance-groups managed \
set-named-ports \
autoscale-managed-instance group \
--named-ports http:80 \
--region asia-northeast1

上面的命令在实例组中创建了一个服务端点,帮助 HLB 与组中的同构实例进行通信。

4. 健康检查:这是必不可少的,以确保 HLB 仅将流量路由到健康实例。创建健康检查的命令:
gcloud compute http-health-checks create sample-health-check

5、后台服务:该服务将流量路由到所有后端实例,即实例组中的实例。它还将实例的健康检查关联起来,并确保它只将流量路由到健康的实例。创建后端服务的命令:
gcloud compute backend-services create \
sample-backend-service \
--http-health-checks sample-health-check

上述命令创建了一个后端服务并将其自身与上一步创建的健康检查相关联。现在,通过运行以下命令将实例组添加到后端服务:
gcloud compute backend-services add-backend sample-backend-service \
--instance-group \
sample-managed-instance-group \
--balancing-mode RATE \
--max-rate-per-instance 100 \
--instance-group-region asia-northeast1

上述命令将实例组附加到后端服务,并使用 根据请求数量分散负载。平衡模式 旗帜。 每个实例的最大速率 如果您根据负载均衡器的利用率设置了自动缩放器策略,则由自动缩放器使用。

6.网址映射:创建将 HTTP 请求 URL 映射到后端服务的 URL 映射。创建 URL 映射的命令:
gcloud compute url-maps create sample-map \
--default-service sample-backend-service

当您选择基于内容的负载均衡器 ,您需要在 URL 映射中添加许多条目,以便将请求路由到适当的后端服务。

7.目标HTTP代理:此步骤将目标代理与 URL 映射相关联。创建目标 HTTP 代理的命令:
gcloud compute target-http-proxies \
create sample-target-proxy \
--url-map sample-map

8.转发规则:这是为 HLB 提供全局外部 IP 地址的最后一步。
gcloud compute forwarding-rules \
create sample-forward \
--global \
--ports 80 \
--target-http-proxy sample-target-proxy

现在,在浏览器中访问 HLB 的 IP 地址会得到实例组中的实例所服务的网页。这最终建立了一个高度可扩展的 Web 应用程序,该应用程序既可自动扩展又可负载平衡。

这是第 3 部分 3-part series关于构建自动缩放的负载平衡后端。

关于load-balancing - 在 Google Cloud Platform 中创建 HTTP 负载平衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41541858/

相关文章:

iis - GCP 负载平衡器 502 服务器错误和 "backend_connection_closed_before_data_sent_to_client"IIS 10

kubernetes - 如何在GKE上使用入口映射不匹配的路由

amazon-web-services - EC2 负载均衡器 : What is the Difference Between LB and Instance Protocol

google-cloud-platform - Google Cloud Speech API的异步问题

linux - 数以千计的 cAdvisor Docker 容器被创建,直到磁盘空间不足

java - 如何在不同tomcat实例之间运行的spring web应用程序之间同步Ehcache数据?

ubuntu - 在 ubuntu 中设置 Coturn

javascript - 如何通过上下文检测意图而不是在 Dialogflow 中查询输入

google-cloud-platform - 使用自定义 FreeBSD ISO 创建 Google Cloud 实例

java - 如何将 Java 8 安装到 Google Compute Debian 8 实例上?