arrow_back

配置内部负载均衡器

登录 加入
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

配置内部负载均衡器

Lab 1 小时 30 分钟 universal_currency_alt 5 个积分 show_chart 入门级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

概览

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

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

网络架构图

目标

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

  • 创建内部流量和健康检查防火墙规则。
  • 使用 Cloud Router 创建 NAT 配置。
  • 配置两个实例模板。
  • 创建两个代管式实例组。
  • 配置和测试内部负载均衡器。

设置和要求

对于每个实验,您都会免费获得一个新的 Google Cloud 项目及一组资源,它们都有固定的使用时限。

  1. 请使用无痕式窗口登录 Qwiklabs。

  2. 留意实验的访问时限(例如 1:15:00)并确保能在相应时间段内完成实验。
    系统不提供暂停功能。如有需要,您可以重新开始实验,不过必须从头开始。

  3. 准备就绪时,点击开始实验

  4. 请记好您的实验凭据(用户名密码)。您需要使用这组凭据来登录 Google Cloud 控制台。

  5. 点击打开 Google 控制台

  6. 点击使用其他帐号,然后将实验的凭据复制并粘贴到相应提示框中。
    如果您使用其他凭据,将会收到错误消息或产生费用

  7. 接受条款并跳过恢复资源页面。

任务 1. 配置内部流量和健康检查防火墙规则

配置防火墙规则以允许来自 10.10.0.0/16 范围内来源的内部流量连接。此规则允许来自该子网的任何客户端的传入流量。

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

探索 my-internal-app 网络

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

  • 在 Cloud 控制台的导航菜单 (“导航菜单”图标) 中,点击 VPC 网络 > VPC 网络
    请注意 my-internal-app 网络包含子网 subnet-asubnet-b

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

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

创建防火墙规则以允许来自 10.10.0.0/16 范围内任何来源的流量

创建防火墙规则以允许 10.10.0.0/16 子网中的流量。

  1. 导航菜单 (“导航菜单”图标) 上,点击 VPC 网络 > 防火墙
    请注意 app-allow-icmpapp-allow-ssh-rdp 防火墙规则。

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

  2. 点击创建防火墙规则

  3. 指定以下内容,将其他设置保留默认值。

    属性 值(按照说明输入值或选择选项)
    名称 fw-allow-lb-access
    网络 my-internal-app
    目标 指定的目标标记
    目标标记 backend-service
    来源过滤条件 IPv4 范围
    来源 IPv4 范围 10.10.0.0/16
    协议和端口 全部允许
注意:请务必在来源 IPv4 范围中包含 /16
  1. 点击创建

创建健康检查规则

创建防火墙规则来允许进行健康检查。

  1. 导航菜单 (“导航菜单”图标) 上,点击 VPC 网络 > 防火墙

  2. 点击创建防火墙规则

  3. 指定以下内容,将其他设置保留默认值。

    属性 值(按照说明输入值或选择选项)
    名称 fw-allow-health-checks
    网络 my-internal-app
    目标 指定的目标标记
    目标标记 backend-service
    来源过滤条件 IPv4 范围
    来源 IPv4 范围 130.211.0.0/22 35.191.0.0/16
    协议和端口 指定的协议和端口
注意:请务必在来源 IPv4 范围中包含 /22/16
  1. 对于 tcp,请勾选复选框并指定端口 80
  2. 点击创建

点击“检查我的进度”以验证是否完成了以下目标: 配置内部流量和健康检查防火墙规则

任务 2. 使用 Cloud Router 创建 NAT 配置

您将在任务 3 中设置一些 Google Cloud 虚拟机后端实例,但这些实例不会使用外部 IP 地址进行配置。

相反,您需要设置 Cloud NAT 服务来仅允许这些虚拟机实例通过 Cloud NAT 发送出站流量,并允许它们通过负载均衡器接收入站流量。

创建 Cloud Router 实例

  1. 在 Cloud 控制台中,依次点击导航菜单 (“导航菜单”图标) > 查看所有产品,然后点击网络 > 网络服务 > Cloud NAT

  2. 点击开始使用

  3. 指定以下内容,将其他设置保留默认值。

    属性 值(按照说明输入值或选择选项)
    网关名称 nat-config
    网络 my-internal-app
    区域
  4. 点击 Cloud Router,然后选择创建新路由器

  5. 对于名称,输入 nat-router-

  6. 点击创建

  7. 在“创建 Cloud NAT 网关”部分,点击创建

注意:请等到“NAT 网关状态”变为“正在运行”之后,再开始执行下一个任务。

点击“检查我的进度”以验证是否完成了以下目标: 使用 Cloud Router 创建 NAT 配置

任务 3:配置实例模板并创建实例组

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

此任务已在本实验开始时为您执行完毕。您需要通过 SSH 连接到各个实例组虚拟机,并运行以下命令来设置环境。

  1. 导航菜单中,点击 Compute Engine > 虚拟机实例
    请注意以 instance-group-1instance-group-2 开头的实例。

  2. 选择 instance-group-1 旁边的 SSH 按钮,以通过 SSH 连接到虚拟机。

  3. 如果系统提示,允许通过浏览器中的 SSH 功能连接到虚拟机,请点击授权

  4. 运行以下命令,以重新运行实例的启动脚本:

sudo google_metadata_script_runner startup
  1. instance-group-2 重复前面几个步骤。

  2. 等待两个启动脚本执行完毕,然后关闭各个虚拟机的 SSH 终端。启动脚本的输出应如下所示:

Finished running startup scripts.

验证后端

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

  1. 导航菜单中,点击 Compute Engine > 虚拟机实例
    请注意以 instance-group-1instance-group-2 开头的实例。

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

  2. 点击创建实例

  3. 指定以下内容,将其他设置保留默认值。

    属性 值(按照说明输入值或选择选项)
    名称 utility-vm
    区域
    可用区
    系列 E2
    机器类型 e2-medium(2 个 vCPU、4 GB 内存)
    启动磁盘 Debian GNU/Linux 11 (bullseye)
  4. 点击高级选项

  5. 点击网络

  6. 对于网络接口,请点击下拉菜单进行修改。

  7. 指定以下内容,将其他设置保留默认值。

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

  9. 点击创建

  10. 请注意,后端的内部 IP 地址是 10.10.20.210.10.30.2

注意:如果这些 IP 地址不同,请在下面的两条 curl 命令中替换它们。

点击“检查我的进度”以验证是否完成了以下目标: 配置实例模板并创建实例组

  1. 对于 utility-vm,请点击 SSH 以启动一个终端并进行连接。

  2. 如果系统提示,允许通过浏览器中的 SSH 功能连接到虚拟机,请点击授权

  3. 如需验证 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:
  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:

注意:验证内部负载均衡器是否向这两个后端发送流量时,可以使用此命令。
  1. 关闭 utility-vm 的 SSH 终端:
exit

任务 4:配置内部负载均衡器

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

网络图

开始配置

  1. 在 Cloud 控制台中,依次点击导航菜单 (“导航菜单”图标) > 查看所有产品,然后点击网络 > 网络服务 > 负载均衡
  2. 点击创建负载均衡器
  3. 负载均衡器的类型下,选择网络负载均衡器 (TCP/UDP/SSL),然后点击下一步
  4. 对于代理或直通,选择直通式负载均衡器,然后点击下一步
  5. 对于公共或内部,选择内部,然后点击下一步
  6. 点击配置
  1. 名称部分,输入 my-ilb
  2. 区域部分,输入
  3. 网络部分,输入 my-internal-app

配置区域级后端服务

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

  1. 点击后端配置

  2. 指定以下内容,将其他设置保留默认值。

    属性 值(按照说明选择选项)
    实例组 instance-group-1 ()
  3. 点击完成

  4. 点击添加后端

  5. 对于实例组,请选择 instance-group-2 ()

  6. 点击完成

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

  8. 指定以下内容,将其他设置保留默认值。

    属性 值(按照说明选择选项)
    名称 my-ilb-health-check
    协议 TCP
    端口 80
    检查间隔 10 秒
    超时 5 秒
    状况良好判断阈值 2
    状况不佳判断阈值 3
注意:健康检查可确定哪些实例能接收新连接。此 HTTP 健康检查每 10 秒轮询一次实例,最多等待 5 秒时间以接收响应,并将 2 次成功尝试或 3 次失败尝试分别视为状况良好或状况不佳的判断阈值。
  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. 点击创建
    等待负载均衡器创建完毕,然后再执行下一个任务。

点击“检查我的进度”以验证是否完成了以下目标: 配置内部负载均衡器

任务 5:测试内部负载均衡器

验证 my-ilb IP 地址是否将流量转发到 中的 instance-group-1 中的 instance-group-2

访问内部负载均衡器

  1. 导航菜单中,点击 Compute Engine > 虚拟机实例
  2. 对于 utility-vm,请点击 SSH 以启动一个终端并进行连接。
  3. 如果系统提示,允许通过浏览器中的 SSH 功能连接到虚拟机,请点击授权
  4. 如需验证内部负载均衡器是否转发流量,请运行以下命令:
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-2-1zn8<h2>Server Location</h2>Region and Zone: {{{project_0.default_zone_2 | Zone 2}}} 注意:正如预期的那样,流量从内部负载均衡器 (10.10.30.5) 转发到后端。
  1. 多次运行同一命令:
curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5 curl 10.10.30.5

您应该能够看到来自 中的 instance-group-1 中的 instance-group-2 的响应。如果无法看到,请再次运行该命令。

恭喜!

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

结束实验

完成实验后,请点击结束实验。Google Cloud Skills Boost 会移除您使用过的资源并为您清理帐号。

系统会提示您为实验体验评分。请选择相应的星级数,输入评论,然后点击提交

星级数的含义如下:

  • 1 颗星 = 非常不满意
  • 2 颗星 = 不满意
  • 3 颗星 = 一般
  • 4 颗星 = 满意
  • 5 颗星 = 非常满意

如果您不想提供反馈,可以关闭该对话框。

如果要留言反馈、提出建议或做出更正,请使用支持标签页。

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