手把手创建 Google Cloud 网络负载均衡器

本指南介绍如何创建基本网络负载平衡配置。该示例假定您在 Compute Engine 实例上有多个网络服务器,您希望在这些实例之间平衡流量。此场景设置了一个第 3 层负载平衡配置,以在运行状况良好的实例之间分配 HTTP 流量。基本 HTTP 运行状况检查已配置,确保仅将流量发送给运行状况良好的实例。

配置 Compute Engine 实例

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

设置实例

  • 转到 Google Cloud Console 中的“虚拟机实例”页面。
  • 点击创建实例。
  • 将名称设置为 www1。
  • 将区域设置为 us-central1。
  • 将地区设置为 us-central1-b。
  • 在启动磁盘下,默认操作系统映像 Debian GNU/Linux 9 (stretch) 已选定。
  • 点击管理、安全、磁盘、网络、单独租用以显示高级设置。
    • 在管理标签页上,将以下脚本插入到启动脚本字段

    #! /bin/bash

    sudo apt-get update

    sudo apt-get install apache2 -y

    sudo service apache2 restart

    echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html

    • 在网络下,使用 network-lb-tag 填充标记字段。
    • 其余字段保留默认值。
    • 点击创建。
  • 使用相同的设置创建实例 www2,但要在自动化、启动脚本字段中插入以下脚本。

    #! /bin/bash

    sudo apt-get update

    sudo apt-get install apache2 -y

    sudo service apache2 restart

    echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html

创建一条防火墙规则以允许外部流量进入这些虚拟机实例

  • 转到 Google Cloud Console 中的“防火墙”页面。
  • 点击创建防火墙规则。
  • 输入 www-firewall-network-lb 作为名称。
  • 选择要应用防火墙规则的网络(默认)
  • 在目标下,选择指定的目标标记。
  • 在目标标记字段中,输入 network-lb-tag。
  • 将来源 IP 地址范围设置为 0.0.0.0/0(允许来自任何来源的流量)。
  • 在指定的协议和端口下,点击 TCP 旁边的复选框,然后输入22,80。
  • 点击创建,新的防火墙规则可能需要一段时间才能在控制台中显示,或者您可能需要点击刷新才能看到规则。

配置负载均衡服务

配置负载平衡服务时,虚拟机实例将接收发往您配置的静态外部 IP 地址的数据包。

  • 转到 Google Cloud Console 中的创建负载平衡器页面。
  • 在 TCP 负载平衡下,点击开始配置按钮。
  • 注意:如需通过网络负载平衡器对 UDP 流量进行负载平衡,则点击 UDP 负载平衡下的开始配置。然后,您需要完成类似的步骤来设置负载平衡器。
  • 在面向互联网或仅限内部下,选择 From Internet to my VMs。
  • 在多区域或单区域下,选择 Single region only。
  • 点击继续按钮。

配置后端

  • 在新建 TCP 负载平衡器屏幕上的名称中,输入新负载平衡器的名称 www-network-lb。
  • 点击后端配置
  • 您将看到您之前输入的负载平衡器名称,但无法进行修改。
  • 对于区域,请选择 us-central1。
  • 在后端下,点击选择现有实例标签页,然后点击添加实例。输入实例 www1。对实例 www2 和 www3 重复此步骤。
  • 在运行状况检查下,点击创建新的运行状况检查或另创建一项运行状况检查:
  • 输入 basic-check 作为运行状况检查的名称。
  • 保留默认设置。
  • 点击保存并继续按钮。
  • 后端配置左侧带对勾标记的蓝色圆圈表示设置成功。


配置转发规则

  • 点击前端配置。
  • 输入 www-rule 作为名称。

  • 在 IP 下,点击下拉菜单并选择创建 IP 地址。
  • 在保留静态 IP 地址屏幕上,指定名称 lb-ip-1。
  • 点击保留。
  • 请输入端口 22-80。
  • 点击完成按钮。
  • 前端配置左侧带对勾标记的蓝色圆圈表示设置成功。


检查配置

点击检查并最终确定按钮,检查负载平衡器的所有配置设置。

如果设置正确,请点击创建。创建负载平衡器需要几分钟的时间。

在负载平衡屏幕上,在新负载平衡器的“后端”列下,您会看到一个绿色对勾标记,表明新的负载平衡器运行正常。

将流量发送到您的实例

在配置了负载平衡服务后,您可以开始将流量发送到转发规则并观察流量分散到不同的实例。

使用 curl 命令访问外部 IP 地址

来自 curl 命令的响应在三个实例之间随机交替。如果响应最初不成功,您可能需要等待大约 30 秒才能完全加载配置,并在再次尝试前将实例的状态标记为运行状况良好:

    while true; do curl -m1 [IP_ADDRESS]; done

使用 ssh 命令获取 access-token

该场景为了满足客户从 GCP 的 VM 上获取 access-token,使本地程序可以用此token 来访问 translation api

在创建的 www1 和 www2上配置 ssh 公钥,如图:


本地命令行,使用负载均衡器的静态 IP 地址获取到 token

    % ssh bruce.tian@34.72.23.38 "gcloud auth application-default print-access-token"

    The authenticity of host '34.72.23.38 (34.72.23.38)' can't be established.

    ECDSA key fingerprint is SHA256:bxrygu+/Pb44nJAmSH1iNaROuVjXEcuKGid4eSHCorM.

    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

    Warning: Permanently added '34.72.23.38' (ECDSA) to the list of known hosts.

    ya29.........


WebEye 是中国大陆地区首家获得 Google Cloud MSP 资质的合作伙伴。点击了解:企业上云服务

WebEye 为全球企业提供⼀站式数字媒体营销解决方案、增长效率工具平台、云服务、安全合规、游戏发行服务。我们汇集全球优质的移动营销资源,用大数据精准决策,用AI管理创意素材,用智能化平台实现聚合广告投放。WebEye云计算服务与多云管理平台、安全合规服务助力企业全面数字化转型。子品牌ModooPlay为国内外游戏开发者提供全渠道、一站式的游戏发行服务。

返回全部