GSP007

概览
在本实操实验中,您将学习如何设置在 Compute Engine 虚拟机上运行的直通式网络负载均衡器 (NLB)。第 4 层 (L4) NLB 将根据 IP 地址和端口号等网络级信息处理流量,而不会检查流量的内容。
您可以通过多种方式在 Google Cloud 上实现负载均衡。
本实验将引导您完成下列负载均衡器的设置过程:
建议您自己手动输入命令,这有助于您学习核心概念。很多实验中都有一个代码块,其中会包含所需的命令。在实验过程中,您可以轻松复制代码块中的命令并粘贴至合适位置。
目标
在本实验中,您将学习如何执行以下任务:
- 为您的资源配置默认区域和可用区。
- 创建多个 Web 服务器实例。
- 配置负载均衡服务。
- 配置转发规则以分配流量
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 Cloud Shell 信息窗口中的设置。
- 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud
的完整文档,请参阅 gcloud CLI 概览指南。
任务 1. 为所有资源设置默认区域和可用区
-
设置默认区域:
gcloud config set compute/region {{{project_0.default_region | Region}}}
-
在 Cloud Shell 中设置默认可用区:
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
如需详细了解如何选择可用区和区域,请参阅 Compute Engine 的区域和可用区文档。
任务 2. 创建多个网络服务器实例
对于此实验中的负载均衡场景,您需要创建三个 Compute Engine 虚拟机实例,并在这些实例上安装 Apache,然后添加一条允许 HTTP 流量访问这些实例的防火墙规则。
下方所示代码将可用区设置为 。通过设置 tags
字段,您可以一次性同时引用所有这些实例,例如在设置防火墙规则时。这些命令也会在每个实例上安装 Apache,还会为每个实例提供唯一的首页。
-
运用以下代码,在默认可用区中创建一个虚拟机 www1
:
gcloud compute instances create www1 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
Web 服务器:www1
" | tee /var/www/html/index.html'
-
运用以下代码,在默认可用区中创建一个虚拟机 www2
:
gcloud compute instances create www2 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
Web 服务器:www2
" | tee /var/www/html/index.html'
-
在默认可用区中创建一个虚拟机 www3
。
gcloud compute instances create www3 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
Web 服务器:www3
" | tee /var/www/html/index.html'
-
创建允许外部流量访问虚拟机实例的防火墙规则:
gcloud compute firewall-rules create www-firewall-network-lb \
--target-tags network-lb-tag --allow tcp:80
现在,您需要获取这些实例的外部 IP 地址,并验证它们正在运行。
-
运行以下命令,列出您的实例。您可以在 EXTERNAL_IP
列查看这些实例的 IP 地址:
gcloud compute instances list
-
运行 curl
命令,将 [IP_ADDRESS] 替换为您每个虚拟机的外部 IP 地址,从而验证这些虚拟机正在运行:
curl http://[IP_ADDRESS]
点击检查我的进度,验证您创建了一组网络服务器。
创建多个网络服务器实例
任务 3. 配置负载均衡服务
配置负载均衡服务时,您的虚拟机实例将接收发往您配置的静态外部 IP 地址的数据包。
如果虚拟机实例是使用 Compute Engine 映像创建的,则实例会自动配置为处理此 IP 地址。
注意:如需详细了解如何设置网络负载均衡,请参阅基于后端服务的外部直通式网络负载均衡器概览指南。
-
为负载均衡器创建静态外部 IP 地址:
gcloud compute addresses create network-lb-ip-1 \
--region {{{project_0.default_region | Region}}}
输出:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
-
添加旧版 HTTP 健康检查资源:
gcloud compute http-health-checks create basic-check
点击检查我的进度,验证您已创建指向 Web 服务器的 L4 网络负载均衡器。
配置负载均衡服务
任务 4. 创建目标池和转发规则
目标池是一组接收从外部直通式 NLB 传入的流量的后端实例。目标池的所有后端实例都必须位于同一 Google Cloud 区域中。
-
运行以下命令,创建目标池并执行必要的健康检查,确保服务正常运行:
gcloud compute target-pools create www-pool \
--region {{{project_0.default_region | Region}}} --http-health-check basic-check
-
将您之前创建的实例添加到池中:
gcloud compute target-pools add-instances www-pool \
--instances www1,www2,www3
接下来,您需要创建转发规则。转发规则指定如何将网络流量路由到负载均衡器的后端服务。
-
添加转发规则:
gcloud compute forwarding-rules create www-rule \
--region {{{project_0.default_region | Region}}} \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool
点击检查我的进度,验证您是否已创建目标池和转发规则。
创建目标池和转发规则
任务 5. 将流量发送到您的实例
在配置了负载均衡服务后,您可以开始将流量发送到转发规则并观察流量被分散到不同的实例。
-
输入以下命令,查看负载均衡器使用的 www-rule 转发规则的外部 IP 地址:
gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}}
-
访问外部 IP 地址:
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress)
-
显示外部 IP 地址:
echo $IPADDRESS
-
使用 curl
命令来访问外部 IP 地址(将 IP_ADDRESS
替换为之前的命令所输出的外部 IP 地址):
while true; do curl -m1 $IPADDRESS; done
三个实例会随机轮流接收来自 curl
命令的响应。如果响应最初不成功,请等待大约 30 秒时间,以便系统完全加载配置并将实例的状态标记为“健康状况良好”,然后再次尝试。
-
使用 Ctrl + C 停止运行该命令。
恭喜!
在本实验中,您成功构建了网络负载均衡器,练习了如何将流量发送到转发规则,并观察了流量如何分配到不同的实例。
后续步骤/了解详情
请参阅以下指南了解详情:
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新时间:2025 年 7 月 17 日
本实验的最后测试时间:2025 年 7 月 17 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。