arrow_back

设置应用负载均衡器

登录 加入
访问 700 多个实验和课程

设置应用负载均衡器

实验 1 小时 universal_currency_alt 1 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP155

Google Cloud 自学实验的徽标

概述

在本实操实验中,您将学习如何在 Compute Engine 虚拟机 (VM) 上设置第 7 层 (L7) 应用负载均衡器。L7 负载均衡器可以理解 HTTP(S) 协议,让它们能够根据网址、标头、Cookie 等参数和请求内容做出路由决策。这样可以提升应用的性能和响应能力。

您可以通过多种方式在 Google Cloud 上实现负载均衡。 本实验将引导您完成下列负载均衡器的设置过程:

建议您自己手动输入命令,这有助于您学习核心概念。 很多实验中都有一个代码块,其中会包含所需的命令。 在实验过程中,您可以轻松复制代码块中的命令并粘贴至合适位置。

目标

在本实验中,您将学习如何执行以下任务:

  • 为您的资源配置默认区域和可用区。
  • 创建应用负载均衡器。
  • 测试发送到实例的流量。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 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 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 为所有资源设置默认区域和可用区

  1. 设置默认区域:

    gcloud config set compute/region {{{project_0.default_region | Region}}}
  2. 在 Cloud Shell 中设置默认可用区:

    gcloud config set compute/zone {{{project_0.default_zone | Zone}}}

    如需详细了解如何选择可用区和区域,请参阅 Compute Engine 的区域和可用区文档。

任务 2. 创建多个网络服务器实例

对于此实验中的负载均衡场景,您需要创建三个 Compute Engine 虚拟机实例,并在这些实例上安装 Apache,然后添加一条允许 HTTP 流量访问这些实例的防火墙规则。

下方所示代码将可用区设置为 。通过设置 tags 字段,您可以一次性同时引用所有这些实例,例如在设置防火墙规则时。这些命令也会在每个实例上安装 Apache,还会为每个实例提供唯一的首页。

  1. 运用以下代码,在默认可用区中创建一个虚拟机 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'
  2. 运用以下代码,在默认可用区中创建一个虚拟机 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'
  3. 在默认可用区中创建一个虚拟机 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'
  4. 创建允许外部流量访问虚拟机实例的防火墙规则:

    gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80

现在,您需要获取这些实例的外部 IP 地址,并验证它们正在运行。

  1. 运行以下命令,列出您的实例。您可以在 EXTERNAL_IP 列查看这些实例的 IP 地址:

    gcloud compute instances list
  2. 运行 curl 命令,将 [IP_ADDRESS] 替换为您每个虚拟机的外部 IP 地址,从而验证这些虚拟机正在运行:

    curl http://[IP_ADDRESS]

    点击检查我的进度,验证您创建了一组网络服务器。 创建多个网络服务器实例

任务 3. 创建应用负载均衡器

应用负载均衡是以 Google Front End (GFE) 为基础实现的。这些 GFE 分布于全球各地,可通过 Google 的全球网络和控制平面协同运作。 您可以将网址规则配置为将一些网址路由到一组实例,然后将其他网址路由到其他实例。

请求始终会被路由到距离用户最近的那组实例,当然,该组实例必须有足够的处理能力且适合处理该请求才行。如果最近的那组实例没有足够的处理能力,则系统会将该请求发送到有足够处理能力的最近一组实例。

如需使用 Compute Engine 后端设置负载均衡器,您的虚拟机必须属于某个实例组。托管式实例组提供了一组虚拟机,用于运行外部应用负载均衡器的后端服务器。对于此实验,后端会传送其各自的主机名。

  1. 首先,创建负载均衡器模板:

    gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.default_region | 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'

    代管式实例组 (MIG) 可让您在多个相同的虚拟机上运行应用。您可以利用自动化 MIG 服务让您的工作负载具有可扩缩性和高可用性,这些服务包括自动扩缩、自动修复、区域(多可用区)部署和自动更新。

  2. 基于该模板创建一个托管式实例组:

    gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone={{{project_0.default_zone | Zone}}}
  3. 创建 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 注意:入站流量规则允许来自 Google Cloud 健康检查系统(130.211.0.0/2235.191.0.0/16)的流量。 本实验使用目标标记 allow-health-check 来标识虚拟机
  4. 现在您的实例已启动并正在运行,接下来设置一个全局静态外部 IP 地址,供客户用来访问您的负载均衡器:

    gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global

    请注意预留的 IPv4 地址:

    gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global 注意:请保存此 IP 地址,因为在本实验的后续环节需要用到它。
  5. 为负载均衡器创建健康检查(以确保仅向运行状况良好的后端发送流量):

    gcloud compute health-checks create http http-basic-check \ --port 80
  6. 创建后端服务:

    gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
  7. 将您的实例组作为后端添加到后端服务:

    gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone={{{project_0.default_zone | Zone}}} \ --global
  8. 创建网址映射关系,以将传入的请求路由到默认的后端服务:

    gcloud compute url-maps create web-map-http \ --default-service web-backend-service 注意:网址映射是一个 Google Cloud 配置资源,用于向后端服务或后端存储桶路由请求。 例如,对于外部应用负载均衡器,您可以使用单个网址映射,根据网址映射中配置的规则将请求路由到不同的目的地:

    • 针对 https://example.com/video 的请求会路由到一个后端服务。
    • 针对 https://example.com/audio 的请求会路由到另一个后端服务。
    • 针对 https://example.com/images 的请求会路由到一个 Cloud Storage 后端存储桶。
    • 针对任何其他主机和路径组合的请求会路由到默认后端服务。
  9. 创建一个目标 HTTP 代理,以将请求路由到您的网址映射:

    gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http
  10. 创建一条全局转发规则,将传入的请求路由到相应代理:

    gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
注意转发规则及其对应的 IP 地址构成 Google Cloud 负载均衡器的前端配置。 如需详细了解转发规则的基本知识,请参阅转发规则概览指南。

点击检查我的进度,验证您已创建 L7 应用负载均衡器。 创建应用负载均衡器

任务 4. 测试发送到实例的流量

  1. 在 Google Cloud 控制台的搜索字段中输入负载均衡,然后从搜索结果中选择负载均衡

  2. 点击您刚刚创建的负载均衡器 web-map-http

  3. 后端部分,点击后端的名称,并确认虚拟机健康状况良好。如果虚拟机健康状况不佳,请稍等片刻,然后尝试重新加载页面。

  4. 当虚拟机健康状况良好时,请打开网络浏览器并前往 http://IP_ADDRESS/(将 IP_ADDRESS 替换为之前复制的负载均衡器的 IP 地址),以此测试负载均衡器。

注意:测试过程可能需要三到五分钟时间。如果无法连接,请等待一分钟,然后重新加载浏览器。

您的浏览器应该会呈现一个页面,其中的内容显示提供该页面的实例的名称及其可用区(例如,Page served from: lb-backend-group-xxxx)。

点击检查我的进度,测试发送到实例的流量。使用网络浏览器测试负载均衡器

恭喜!

在本实验中,您创建了应用负载均衡器,并练习了如何使用实例模板和托管式实例组将流量发送到 Web 服务器实例。

后续步骤/了解详情

其他负载均衡器文档:

Google Cloud 提供的健康检查机制可确定后端实例是否能够正确响应流量。

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

本手册的最后更新时间:2025 年 7 月 18 日

本实验的最后测试时间:2025 年 7 月 18 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。