简介
大家好!今天在这篇博客中,我们将学习如何在GCP中设置一个HTTP负载平衡器。。
它是如何工作的
HTTP(S)负载平衡是在谷歌前端(GFE)上实现的。GFE分布在全球,使用谷歌的全球网络和控制平面共同运作。你可以配置URL规则,将一些URL路由到一组实例上,而将其他URL路由到其他实例上。
请求总是被路由到离用户最近的实例组。如果该组有足够的容量,并且适合该请求。如果最近的组没有足够的容量,请求会被发送到最近的有容量的组。
要用计算引擎后端设置负载均衡器,你的虚拟机需要在一个实例组中。管理的实例组提供运行外部HTTP负载均衡器的后端服务器的虚拟机。在本实验室中,后端为自己的主机名服务。
涉及的步骤
现在,让我们开始设置负载均衡器所涉及的步骤 -
- 激活云外壳
- 设置默认地区和区域
- 创建负载均衡器模板
- 在模板的基础上创建一个管理实例组
- 创建防火墙规则
- 设置一个全局静态外部 IP 地址
- 创建一个健康检查
- 创建一个后端服务
- 向后端服务添加实例
- 创建一个URL地图
- 创建一个目标HTTP代理
- 创建一个全局转发规则
1.激活云端外壳
启动你的GCP控制台后,在右上角的工具栏中寻找激活云端外壳 的按钮,如下图所示-- 2.


2.设置默认地区和区域
要在云端外壳中设置默认区域,请使用以下命令-- 1.
gcloud config set compute/zone us-central1
要设置默认的区域 -
gcloud config set compute/zone us-central1-a
3.创建负载均衡器模板
gcloud compute instance-templates create lb-backend-template \
--region= \
--network=default \
--subnet=default \
--tags=allow-health-check \
--machine-type=e2-medium \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
4.基于模板创建一个管理实例组
管理实例组(MIG)让你在多个相同的虚拟机上操作应用程序。你可以通过利用MIG的自动服务,包括自动缩放、自动修复、区域(多区)部署和自动更新,使你的工作负载具有可扩展性和高可用性。
gcloud compute instance-groups managed create lb-backend-group \
--template=lb-backend-template --size=2 --zone=
5.创建防火墙规则
这里,我们要创建一个名为fw-allow-health-check的防火墙规则。
gcloud compute firewall-rules create fw-allow-health-check \
--network=default \
--action=allow \
--direction=ingress \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=allow-health-check \
--rules=tcp:80
6.设置一个全局静态外部 IP 地址
现在实例已经启动并运行,设置一个全局静态外部 IP 地址,你的客户用它来访问你的负载均衡器。
gcloud compute addresses create lb-ipv4-1 \
--ip-version=IPV4 \
--global
注意保留的 IPv4 地址。\
gcloud compute addresses describe lb-ipv4-1 \
--format="get(address)" \
--global
7.创建一个健康检查
谷歌云提供了健康检查机制,以确定后端实例是否正确响应流量。
gcloud compute health-checks create http http-basic-check \
--port 80
8.创建一个后端服务
gcloud compute backend-services create web-backend-service \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
9.向后端服务添加实例
gcloud compute backend-services add-backend web-backend-service \
--instance-group=lb-backend-group \
--instance-group-zone= \
--global
10.创建一个URL地图
URL地图是一种谷歌云配置资源,用于将请求路由到后端服务或后端桶。例如,使用外部HTTP(S)负载均衡器,你可以使用一个URL地图,根据URL地图中配置的规则,将请求路由到不同的目的地。
- 对example.com/video的请求去到一个后端服务。
- 对example.com/audio的请求转到另一个后端服务。
- 对example.com/images的请求转到一个云存储后端桶。
- 对任何其他主机和路径组合的请求转到一个默认的后端服务。
gcloud compute url-maps create web-map-http \
--default-service web-backend-service
11.创建一个目标HTTP代理
gcloud compute target-http-proxies create http-lb-proxy \
--url-map web-map-http
12.创建一个全局转发规则
一个转发规则及其对应的IP地址代表了谷歌云负载均衡器的前端配置。
gcloud compute forwarding-rules create http-content-rule \
--address=lb-ipv4-1\
--global \
--target-http-proxy=http-lb-proxy \
--ports=80