arrow_back

创建内部负载均衡器

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

创建内部负载均衡器

实验 50 分钟 universal_currency_alt 5 个积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

GSP216

Google Cloud 自定进度实验

概览

Google Cloud 为基于 TCP/UDP 的流量提供内部负载均衡功能。借助内部负载均衡功能,您可以通过一个专用负载均衡 IP 地址(只能由内部虚拟机实例访问)运行和扩缩您的服务。

在本实验中,您需要在同一区域中创建两个托管式实例组。然后,需要配置一个以这些实例组作为后端的内部负载均衡器并对其进行测试,如以下网络图所示:

Network_Diagram.png

目标

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

  • 创建 HTTP 防火墙规则和健康检查防火墙规则
  • 配置两个实例模板
  • 创建两个代管式实例组
  • 配置和测试内部负载均衡器

设置和要求

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

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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 产品和服务的菜单,请点击左上角的导航菜单导航菜单图标

任务 1. 配置 HTTP 防火墙规则和健康检查防火墙规则

将防火墙规则配置为允许 HTTP 流量进入后端,以及允许接收来自 Google Cloud 健康检查工具的 TCP 流量。

探索 my-internal-app 网络

我们已为您配置了带有 subnet-a 和 subnet-b 的网络 my-internal-app,以及针对 RDP、SSH 和 ICMP 流量的防火墙规则。

  1. 在控制台中,前往导航菜单 > VPC 网络 > VPC 网络

  2. 向下滚动,找到 my-internal-app 网络及其子网 subnet-asubnet-b

    每个 Google Cloud 项目都从 default 网络开始。此外,我们已为您创建了 my-internal-app 网络作为您的网络图的一部分。

    您将在 subnet-asubnet-b 中创建托管式实例组。这两个子网都在 区域中,因为内部负载均衡器是区域级服务。托管式实例组将位于不同的可用区,使您的服务不受可用区故障的影响。

创建 HTTP 防火墙规则

创建防火墙规则,以允许来自负载均衡器和互联网的 HTTP 流量进入后端(以便在后端安装 Apache)。

  1. 仍然在 VPC 网络中,点击左侧窗格中的防火墙

  2. 请注意 app-allow-icmpapp-allow-ssh-rdp 防火墙规则。

    我们已为您创建了这些防火墙规则。

  3. 点击 + 创建防火墙规则

  4. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明输入值或选择选项)
    名称 app-allow-http
    网络 my-internal-app
    目标 指定的目标标记
    目标标记 lb-backend
    来源过滤条件 IPv4 范围
    来源 IPv4 范围 10.10.0.0/16
    协议和端口 指定的协议和端口;然后勾选“tcp”,并输入“80”
注意:确保在来源 IPv4 范围中包含 /16,以指定所有网络。
  1. 点击创建

创建健康检查防火墙规则

健康检查可确定负载均衡器的哪些实例能接收新连接。在进行内部负载均衡的过程中,对负载均衡实例的健康检查探测来自于 130.211.0.0/2235.191.0.0/16 范围内的地址。您的防火墙规则必须允许这些连接。

  1. 仍然在防火墙规则页面中,点击创建防火墙规则

  2. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明输入值或选择选项)
    名称 app-allow-health-check
    网络 my-internal-app
    目标 指定的目标标记
    目标标记 lb-backend
    来源过滤条件 IPv4 范围
    来源 IPv4 范围 130.211.0.0/22 和 35.191.0.0/16
    协议和端口 指定的协议和端口;然后勾选“tcp”
注意:请务必分别输入两个来源 IPv4 范围并在两者间按空格键。
  1. 点击创建

点击“检查我的进度”以验证是否完成了以下目标:

配置 HTTP 防火墙规则和健康检查防火墙规则

任务 2. 配置实例模板并创建实例组

托管式实例组可使用实例模板来创建一组相同的实例。您可以使用这些实例来创建内部负载均衡器的后端。

配置实例模板

实例模板是一种可用于创建虚拟机实例和代管式实例组的 API 资源。实例模板可定义机器类型、启动磁盘映像、子网、标签和其他实例属性。请为 my-internal-app 网络的两个子网创建实例模板。

  1. 在控制台中,前往导航菜单 > Compute Engine > 实例模板

  2. 点击创建实例模板

  3. 名称部分,输入 instance-template-1

  4. 位置部分,选择全球

  5. 对于系列,选择 E2

  6. 对于机器类型,选择共享核心 > e2-micro

  7. 点击高级选项

  8. 点击网络

  9. 网络标记部分,指定 lb-backend

    注意:网络标记 lb-backend 可确保将 HTTP 防火墙规则和健康检查防火墙规则应用于这些实例。
  10. 网络接口部分,点击下拉菜单图标进行修改。

  11. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明输入值或选择选项)
    网络 my-internal-app
    子网 subnet-a
    外部 IPv4 地址
  12. 点击完成

  13. 点击管理

  14. 元数据下,点击添加项,然后指定以下内容:

    键 1 值 1
    startup-script-url gs://cloud-training/gcpnet/ilb/startup.sh
注意startup-script-url 将指定实例启动时执行的脚本。此脚本会安装 Apache,并更改欢迎页面以包含客户端 IP 地址以及虚拟机实例的名称、区域和可用区。您可以随时查看此脚本
  1. 点击创建
  2. 等待实例模板创建完毕。

配置下一个实例模板

通过复制 instance-template-1subnet-b 创建另一个实例模板:

  1. 仍然在实例模板中,勾选 instance-template-1 旁边的复选框,然后点击复制。 务必将名称更新为 instance-template-2
  2. 点击高级选项
  3. 点击网络标签页。
  4. 网络接口部分,点击下拉菜单图标进行修改。
  5. 选择 subnet-b 作为子网
  6. 点击完成,然后点击创建

创建托管式实例组

subnet-asubnet-b 中各创建一个托管式实例组。

注意:请从 subnet-a 所处的区域中再选择一个可用区。例如,如果 subnet-a 的可用区是 us-west2-a,则可以为 subnet-b 选择 us-west2-b
  1. 仍然在 Compute Engine 中,点击左侧窗格中的实例组,然后点击创建实例组

  2. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明输入值或选择选项)
    名称 instance-group-1
    实例模板 instance-template-1
    位置 单个可用区
    区域
    可用区
    自动扩缩 > 实例数下限 1
    自动扩缩 > 实例数上限 5
    自动扩缩 > 自动扩缩信号(点击下拉菜单图标进行修改)> 信号类型 CPU 利用率
    目标 CPU 利用率 80
    初始化期 45
注意:托管式实例组提供的自动扩缩功能可让您根据负载的增减自动在托管式实例组中添加或移除实例。自动扩缩可帮助您的应用顺利应对流量增加的情况,并在资源需求量减少时降低费用。您只需定义自动扩缩政策,自动扩缩器即可根据测量到的负载执行自动扩缩。
  1. 点击创建

    对与 subnet-a 在同一区域中的另一个可用区中的 instance-group-2 重复执行相同的过程:

  2. 点击创建实例组

  3. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明输入值或选择选项)
    名称 instance-group-2
    实例模板 instance-template-2
    位置 单个可用区
    区域
    可用区 可用区(使用与 subnet-a 在同一区域的另一个可用区)
    自动扩缩 > 实例数下限 1
    自动扩缩 > 实例数上限 5
    自动扩缩 > 自动扩缩信号(点击下拉菜单图标进行修改)> 信号类型 CPU 利用率
    目标 CPU 利用率 80
    初始化期 45
  4. 点击创建

验证后端

验证是否在这两个子网中都创建了虚拟机实例,并创建一个实用程序虚拟机来访问后端的 HTTP 站点。

  1. 仍然在 Compute Engine 中,点击虚拟机实例

  2. 请注意以 instance-group-1instance-group-2 开头的两个实例。

    这两个实例位于不同的可用区中,它们的内部 IP 地址是 subnet-asubnet-b CIDR 块的一部分。

  3. 点击创建实例

  4. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明输入值或选择选项)
    名称 utility-vm
    区域
    可用区
    系列 E2
    机器类型 共享核心 > e2-micro(1 个共享 vCPU)
  5. 点击高级选项

  6. 点击网络

  7. 网络接口部分,点击下拉菜单图标进行修改。

  8. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明输入值或选择选项)
    网络 my-internal-app
    子网 subnet-a
    主要内部 IPv4 地址 临时(自定义)
    自定义临时 IP 地址 10.10.20.50
  9. 点击完成,然后点击创建

点击“检查我的进度”以验证是否完成了以下目标:

配置实例模板并创建实例组
  1. 请注意,后端的内部 IP 地址是 10.10.20.210.10.30.2
注意:如果这些 IP 地址不同,请在下面的两条 curl 命令中替换它们。
  1. 对于 utility-vm,请点击 SSH 以启动一个终端并进行连接。
  2. 如需验证 instance-group-1-xxxx 的欢迎页面,请运行以下命令:
curl 10.10.20.2

输出应如下所示:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-1-1zn8<h2>Server Location</h2>Region and Zone: us-central1-a
  1. 如需验证 instance-group-2-xxxx 的欢迎页面,请运行以下命令:
curl 10.10.30.2

输出应如下所示:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-2-q5wp<h2>Server Location</h2>Region and Zone: us-central1-b

注意:这些 curl 命令表明,每个虚拟机实例都会列出相应的客户端 IP 地址以及实例名称和位置。这在验证内部负载均衡器是否向这两个后端发送流量时很有用。
  1. 关闭 utility-vm 的 SSH 终端:
exit

任务 3. 配置内部负载均衡器

配置内部负载均衡器,在两个后端(instance-group-1instance-group-2)之间均衡流量,如下图所示。

显示内部负载均衡器在两个后端之间均衡流量的网络图

开始配置

  1. 在导航菜单中,选择查看所有产品。在网络下,选择网络服务
  2. 选择负载均衡页面。
  3. 点击创建负载均衡器
  4. 负载均衡器的类型部分,选择网络负载均衡器 (TCP/UDP/SSL)
  5. 代理或直通部分,选择直通式负载均衡器
  6. 公开或内部部分,选择内部
  7. 点击配置
  8. 名称部分,输入 my-ilb
  9. 对于区域,选择
  10. 网络部分,选择 my-internal-app

配置区域级后端服务

后端服务可监控实例组并防止它们超出配置的使用量。

  1. 点击后端配置

  2. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明选择选项)
    实例组 instance-group-1
  3. 点击添加后端

  4. 实例组部分,选择 instance-group-2

  5. 对于健康检查,请选择创建健康检查

  6. 设置以下值,将所有其他值保留为默认值:

    属性 值(按照说明选择选项)
    名称 my-ilb-health-check
    协议 TCP
    端口 80
注意:健康检查可确定哪些实例能接收新连接。此 HTTP 健康检查每 5 秒轮询一次实例,最多等待 5 秒来接收响应,并将 2 次成功尝试或 2 次失败尝试分别视为状况良好或状况不佳的判断标准。
  1. 点击保存
  2. 在 Cloud 控制台中确认后端配置旁边是否有蓝色对勾标记。如果没有,请仔细检查您是否完成了上述所有步骤。

配置前端

前端可将流量转发到后端。

  1. 点击前端配置

  2. 指定以下内容,并将其余项保留为默认值:

    属性 值(按照说明输入值或选择选项)
    子网 subnet-b
    内部 IP IP 地址下,选择创建 IP 地址
  3. 指定以下内容,并将其余项保留为默认值:

    属性 值(按照说明输入值或选择选项)
    名称 my-ilb-ip
    静态 IP 地址 让我选择
    自定义 IP 地址 10.10.30.5
  4. 点击预留

  5. 端口号部分,输入 80

  6. 点击完成

检查并创建内部负载均衡器

  1. 点击检查并最终确定

  2. 检查后端前端

  3. 点击创建。 等待负载均衡器创建完毕,然后再执行下一个任务。

点击“检查我的进度”以验证是否完成了以下目标:

配置内部负载均衡器

任务 4. 测试内部负载均衡器

验证 my-ilb IP 地址将流量转发到了 instance-group-1instance-group-2

访问内部负载均衡器

  1. 在 Cloud 控制台中,前往导航菜单 > Compute Engine > 虚拟机实例
  2. 对于 utility-vm,请点击 SSH 以启动一个终端并进行连接。
  3. 如需验证内部负载均衡器是否转发了流量,请运行以下命令:
curl 10.10.30.5

输出应如下所示:

<h1>Internal Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 10.10.20.50<h2>Hostname</h2>Server Hostname: instance-group-1-1zn8<h2>Server Location</h2>Region and Zone: us-central1-a 注意:正如预期的那样,流量从内部负载均衡器 (10.10.30.5) 转发到了后端。
  1. 再运行几次同一命令。

在输出中,您应该会看到 中的 instance-group-1 以及同一区域中另一个可用区中的 instance-group-2 发出的响应。

恭喜!

在本实验中,您在 区域中创建了两个托管式实例组,并将防火墙规则配置为允许 HTTP 流量进入这些实例,以及允许接收来自 Google Cloud 健康检查工具的 TCP 流量。然后,您为这些实例组配置并测试了内部负载均衡器。

后续步骤/了解详情

如需了解负载均衡的基本概念,请参阅 Google Cloud Load Balancing 文档

Google Cloud 培训和认证

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

上次更新手册的时间:2024 年 10 月 2 日

上次测试实验的时间:2023 年 10 月 2 日

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

此内容目前不可用

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

太好了!

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