为外部直通式网络负载均衡器配置故障切换

本指南通过一个示例介绍如何为基于后端服务的外部直通式网络负载均衡器配置故障切换。在按照本指南中的说明进行操作之前,请先熟悉以下内容:

权限

要按照本指南进行操作,您需要创建实例并修改项目中的网络。您应该具有项目的 Owner 或 Editor 角色,或者应该具有以下 Compute Engine IAM 角色

任务 所需角色
创建负载均衡器组件 Network Admin
添加和移除防火墙规则 Security Admin
创建实例 Compute Instance Admin

如需了解详情,请参阅以下指南:

设置

本指南介绍如何配置和测试使用故障切换的外部直通式网络负载均衡器。此部分中的步骤介绍了如何配置以下内容:

  1. 后端虚拟机:
    • 区域 us-west1-a 中非代管实例组中的一个主后端
    • 区域 us-west1-c 中的非代管实例组中的一个故障切换后端
  2. 允许后端虚拟机的传入连接的防火墙规则
  3. 一个用于测试连接并观察故障切换行为的客户端虚拟机
  4. 以下外部直通式网络负载均衡器组件:
    • 后端服务健康检查
    • us-west1 区域中的后端服务,用于管理后端虚拟机之间的连接分配
    • 负载平衡器前端的转发规则和 IP 地址

此示例的架构如下所示:

使用外部直通式网络负载均衡器进行故障切换。
使用外部直通式网络负载均衡器进行故障切换(点击可放大)。

创建后端虚拟机和实例组

在此步骤中,您要创建后端虚拟机和非代管式实例组:

  • us-west1-a 中的实例组 ig-a 是包含两个虚拟机的主后端:
    • vm-a1
    • vm-a2
  • us-west1-c 中的实例组 ig-c 是包含两个虚拟机的故障切换后端:
    • vm-c1
    • vm-c2

为便于说明以及展示一个区域发生故障时处理故障切换的方式,主后端和故障切换后端位于不同的区域中。

各主虚拟机和备用虚拟机均配置为在 TCP 端口 80 上运行 Apache Web 服务器。默认情况下,Apache 配置为绑定到任何 IP 地址。网络负载平衡器通过保留目标 IP 地址来传送数据包。

确保在主要虚拟机和备用虚拟机上运行的服务器软件在监听负载平衡器的转发规则的 IP 地址。由外部直通式网络负载均衡器传送到后端虚拟机的数据包的目标 IP 地址是转发规则的 IP 地址。

为便于说明,所有主虚拟机和备用虚拟机均运行 Debian GNU/Linux 9。

控制台

创建后端虚拟机

  1. 在 Google Cloud 控制台中,打开虚拟机实例页面。转到“虚拟机实例”
  2. 使用以下名称和可用区组合重复执行以下步骤,以创建四个虚拟机。
    • 名称:vm-a1,可用区:us-west1-a
    • 名称:vm-a2,可用区:us-west1-a
    • 名称:vm-c1,可用区:us-west1-c
    • 名称:vm-c2,可用区:us-west1-c
  3. 点击创建实例
  4. 按照第 2 步中的说明设置名称
  5. 对于地区,选择 us-west1,然后按照第 2 步中的说明选择一个区域
  6. 启动磁盘部分,确保所选映像为 Debian GNU/Linux 10 (buster)。如有必要,请点击选择更改映像。
  7. 点击高级选项
  8. 点击网络并配置以下字段:
    1. 对于网络标记,请输入 network-lb
  9. 点击管理。将以下脚本输入启动脚本字段。 所有四个虚拟机的脚本内容均相同:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    
  10. 点击创建

创建实例组

  1. 在 Google Cloud 控制台中,转到实例组页面。

    进入“实例组”

  2. 使用以下组合重复执行下述步骤,以创建两个非代管式实例组,每个组包含两个虚拟机。

    • 实例组:ig-a,可用区:us-west1-a,虚拟机:vm-a1vm-a2
    • 实例组:ig-c,可用区:us-west1-c,虚拟机:vm-c1vm-c2
  3. 点击创建实例组

  4. 点击新建非代管式实例组

  5. 按照第 2 步中的说明设置名称

  6. 位置部分,为区域选择 us-west1,然后按照第 2 步中的说明选择一个可用区

  7. 对于网络,请输入 default

  8. 虚拟机实例部分中,添加第 2 步中说明的虚拟机。

  9. 点击创建

gcloud

  1. 使用 VM-NAMEZONE 的下列四种组合运行以下命令四次,创建四个虚拟机。全部四个虚拟机的脚本内容均相同。

    • VM-NAMEvm-a1ZONEus-west1-a
    • VM-NAMEvm-a2ZONEus-west1-a
    • VM-NAMEvm-c1ZONEus-west1-c
    • VM-NAMEvm-c2ZONEus-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --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://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    
  2. 在每个可用区中创建两个非代管实例组:

    gcloud compute instance-groups unmanaged create ig-a \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone us-west1-c
    
  3. 将虚拟机添加到相应的实例组中:

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone us-west1-a \
        --instances vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone us-west1-c \
        --instances vm-c1,vm-c2
    

配置防火墙规则

创建一条防火墙规则,以允许外部流量到达后端实例。

控制台

  1. 在 Google Cloud 控制台中,转到防火墙页面。

    转到“防火墙政策”

  2. 点击创建防火墙规则,以创建允许任何来源的流量的规则。请使用以下值:

    1. 名称allow-network-lb
    2. 网络default
    3. 优先级1000
    4. 流量方向:入站
    5. 匹配时执行的操作:允许。
    6. 目标:指定的目标标记
    7. 目标标记network-lb
    8. 来源过滤条件IPv4 范围
    9. 来源 IPv4 地址范围0.0.0.0/0(允许来自任何来源的流量)。这样,外部流量和健康检查探测都会到达后端实例。
    10. 协议和端口:选择指定的协议和端口。 选中 TCP 复选框并输入 80
  3. 点击创建

  4. 再次点击创建防火墙规则,以创建允许到实例的传入 SSH 连接的规则。请使用以下值:

    1. 名称allow-ssh
    2. 网络default
    3. 优先级1000
    4. 流量方向:入站
    5. 匹配时执行的操作:允许
    6. 目标:指定的目标标记
    7. 目标标记network-lb
    8. 来源过滤条件IPv4 范围
    9. 来源 IPv4 范围0.0.0.0/0
    10. 协议和端口:选择指定的协议和端口。 选中 TCP 复选框并输入 22
  5. 点击创建

gcloud

gcloud compute firewall-rules create allow-network-lb \
    --target-tags network-lb \
    --allow tcp:80
gcloud compute firewall-rules create allow-ssh \
    --target-tags network-lb \
    --allow tcp:22

配置负载均衡器组件

这些步骤配置以下外部直通式网络负载均衡器组件:

  • 健康检查:本示例使用仅检查 HTTP 200 (OK) 响应的 HTTP 健康检查。

  • 后端服务:由于本示例通过负载平衡器传递 HTTP 流量,因此配置中指定 TCP,而非 UDP。为演示故障切换,此后端服务的故障切换率为 0.75

  • 转发规则:本示例创建了一条转发规则。

控制台

开始配置

  1. 在 Google Cloud 控制台中,转到负载均衡页面。

    转到“负载均衡”

  2. 点击创建负载均衡器
  3. 对于负载均衡器的类型,选择网络负载均衡器 (TCP/UDP/SSL),然后点击下一步
  4. 对于代理或直通,选择直通式负载均衡器,然后点击下一步
  5. 公共或内部字段中,选择公共(外部),然后点击下一步
  6. 点击配置

后端配置

  1. 创建外部直通式网络负载均衡器页面上,输入新负载均衡器的名称 tcp-network-lb
  2. 点击后端配置。您将看到您之前输入的负载平衡器名称,但无法进行修改。
  3. 点击后端配置 并进行以下更改:
    1. 对于区域,选择 us-west1
    2. 后端下,使用实例组下拉菜单选择 ig-a。点击完成
    3. 点击添加后端,然后重复此步骤以添加 ig-c。选中将此实例组作为备份的故障切换组复选框。
    4. 健康检查下,选择创建新的健康检查另创建一项健康检查,然后输入以下信息:
      • 名称hc-http-80
      • 协议TCP
      • 端口80
    5. 点击保存并继续
    6. 点击高级配置
    7. 对于故障切换比率,输入 0.75
    8. 请先确认后端配置旁边是否有蓝色对勾标记,然后再继续操作。

前端配置

  1. 点击前端配置
  2. 输入 network-lb-forwarding-rule 作为名称
  3. IP 下,点击下拉菜单并选择创建 IP 地址
    1. 保留静态 IP 地址屏幕上,指定名称 network-lb-ip
    2. 点击预留
  4. 选择单个,然后输入 80 作为端口号
  5. 点击完成按钮。

    前端配置左侧带对勾标记的蓝色圆圈表示设置成功。

检查配置

  1. 点击检查并最终确定按钮,检查负载均衡器的所有配置设置。
  2. 如果设置正确,请点击创建。创建负载均衡器需要几分钟的时间。

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

gcloud

  1. 为负载平衡器创建静态外部 IP 地址

    gcloud compute addresses create network-lb-ip \
        --region us-west1
    
  2. 创建一个新的 HTTP 健康检查,以测试端口 80 上的虚拟机的 TCP 连接。

    gcloud compute health-checks create http hc-http-80 \
        --region us-west1 \
        --port 80
    
  3. 为 HTTP 流量创建后端服务:

    gcloud compute backend-services create network-lb-backend-service \
        --protocol tcp \
        --region us-west1 \
        --health-checks hc-http-80 \
        --health-checks-region us-west1 \
        --failover-ratio 0.75
    
  4. 向后端服务添加主后端:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-a \
        --instance-group-zone us-west1-a
    
  5. 将故障转移后端添加到后端服务:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-c \
        --instance-group-zone us-west1-c \
        --failover
    
  6. 为后端服务创建转发规则。使用第 1 步中预留的 IP 地址作为负载平衡器的静态外部 IP 地址。

    gcloud compute forwarding-rules create network-lb-forwarding-rule \
        --region us-west1 \
        --load-balancing-scheme external \
        --address network-lb-ip\
        --ports 80 \
        --backend-service network-lb-backend-service
    

测试

这部分中的测试展示了如何验证负载平衡器配置并了解其预期行为。

将流量发送到负载平衡器

此过程会将外部流量发送到负载平衡器。 您将利用此过程完成其他测试。

  1. 连接到客户端虚拟机实例。

    gcloud compute forwarding-rules describe network-lb-forwarding-rule \
        --region us-west1
    
  2. 使用 curl 连接负载平衡器的 IP 地址,通过这种方式向负载平衡器发送 Web 请求。

    curl http://IP_ADDRESS
    
  3. 请注意 curl 命令返回的结果。该结果文本中显示了生成响应的后端虚拟机的名称,例如:Page served from: vm-a1

测试初始状态

在配置示例负载平衡器之后,全部四个后端虚拟机都应该保持良好的运行状况:

  • 两个主虚拟机:vm-a1vm-a2
  • 两个备用虚拟机:vm-c1vm-c2

按照测试步骤操作以将流量发送到负载平衡器。重复执行第 2 步多次。预期行为是:两个主虚拟机(vm-a1vm-a2)都传送流量,因为两者均运行状况良好。您应该看到两个主虚拟机各在大约一半的时间里提供响应,因为我们尚未为此平衡器配置会话亲和性

测试故障切换

此测试模拟了 vm-a1 故障的情形,因此您可以观察故障转移行为。

  1. 连接到 vm-a1 虚拟机。

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. 停止 Apache Web 服务器。经过 10 秒之后,Google Cloud 会将此虚拟机视为运行状况不良。(您在设置过程中创建的 hc-http-80 健康检查使用 5 秒的默认检查间隔时间,以及连续两次探测失败的健康状况不良阈值。)

    sudo apachectl stop
    
  3. 按照测试步骤操作以将流量发送到负载平衡器。重复执行第 2 步多次。预期行为是:两个备用虚拟机(vm-c1vm-c2)都传送流量。因为只有 vm-a2 这一个主虚拟机运行状况良好,运行状况良好的主虚拟机与主虚拟机总数的比率为 0.5。 这个数字低于故障切换阈值(即 0.75),因此 Google Cloud 会重新配置负载均衡器的活跃池,使其使用备用虚拟机。只要我们尚未为此负载平衡器配置会话亲和性,您就应该看到两个备用虚拟机各在大约一半的时间里提供响应。

测试故障恢复

此测试通过重启位于 vm-a1 的 Apache 服务器模拟故障恢复。

  1. 连接到 vm-a1 虚拟机。

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. 启动 Apache Web 服务器并等待 10 秒钟。

    sudo apachectl start
    
  3. 遵循客户端测试过程执行操作。重复执行第 2 步多次。预期行为是:两个主虚拟机(vm-a1vm-a2)都传送流量。两个主虚拟机均健康状况良好,并且健康状况良好的主虚拟机与主虚拟机总数的比率为 1.0,高于故障切换阈值(即 0.75),因此 Google Cloud 将活跃池配置为再次使用主虚拟机。

添加更多后端虚拟机

本部分在前面的示例配置基础上进行了延伸,向负载平衡器添加了更多主虚拟机和备用虚拟机。为此,我们在本示例中额外创建了两个后端实例组,以演示您可以将主虚拟机和备用虚拟机分布设置在同一地区的多个不同区域中:

  • 第三个实例组(即 us-west1-c 中的 ig-d)用作具有如下两个虚拟机的主后端:
    • vm-d1
    • vm-d2
  • 第三个实例组(即 us-west1-a 中的 ig-b)用作具有如下两个虚拟机的故障切换后端:
    • vm-b1
    • vm-b2

经过修改后,此示例的修改架构如下所示:

多可用区外部直通式网络负载均衡器故障切换。
多可用区外部直通式网络负载均衡器故障切换(点击可放大)

创建额外的虚拟机和实例组

按照以下步骤创建额外的主虚拟机和备用虚拟机,以及与其对应的非代管式实例组。

控制台

创建后端虚拟机

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 使用以下名称和可用区组合重复执行以下步骤,以创建四个虚拟机。

    • 名称:vm-b1,可用区:us-west1-a
    • 名称:vm-b2,可用区:us-west1-a
    • 名称:vm-d1,可用区:us-west1-c
    • 名称:vm-d2,可用区:us-west1-c
  3. 点击创建实例

  4. 按照第 2 步中的说明设置名称

  5. 对于地区,选择 us-west1,然后按照第 2 步中的说明选择一个区域

  6. 启动磁盘部分,确保所选映像为 Debian GNU/Linux 9 Stretch。如有必要,请点击选择更改映像。

  7. 点击高级选项

  8. 点击网络并配置以下字段:

    1. 对于网络标记,请输入 network-lb
  9. 点击管理。将以下脚本输入启动脚本字段。 所有四个虚拟机的脚本内容均相同:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    
  10. 点击创建

创建实例组

  1. 在 Google Cloud 控制台中,转到实例组页面。

    进入“实例组”

  2. 使用这些组合重复执行以下步骤,以创建两个非代管式实例组,每个组包含两个虚拟机。

    • 实例组:ig-b,区域:us-west1-a,虚拟机:vm-b1vm-b2
    • 实例组:ig-d,可用区:us-west1-c,虚拟机:vm-d1vm-d2
  3. 点击创建实例组

  4. 点击新建非代管式实例组

  5. 按照第 2 步中的说明设置名称

  6. 位置部分,为区域选择 us-west1,然后按照第 2 步中的说明选择一个可用区

  7. 对于网络,请输入 default

  8. 虚拟机实例部分中,添加第 2 步中说明的虚拟机。

  9. 点击创建

gcloud

  1. 使用 VM-NAMEZONE 的下列四种组合运行以下命令四次,创建四个虚拟机。全部四个虚拟机的脚本内容均相同。

    • VM-NAMEvm-b1ZONEus-west1-a
    • VM-NAMEvm-b2ZONEus-west1-a
    • VM-NAMEvm-d1ZONEus-west1-c
    • VM-NAMEvm-d2ZONEus-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --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://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    
  2. 在每个可用区中创建两个非代管实例组:

    gcloud compute instance-groups unmanaged create ig-b \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-d \
        --zone us-west1-c
    
  3. 将虚拟机添加到相应的实例组中:

    gcloud compute instance-groups unmanaged add-instances ig-b \
        --zone us-west1-a \
        --instances vm-b1,vm-b2
    gcloud compute instance-groups unmanaged add-instances ig-d \
        --zone us-west1-c \
        --instances vm-d1,vm-d2
    

添加主后端

您可以将此过程用作模板,以了解如何将非代管式实例组添加到现有的外部直通式网络负载均衡器的后端服务作为主后端。此过程利用示例配置,向您展示如何将实例组 ig-d 作为主后端添加到 network-lb 负载平衡器。

控制台

修改负载平衡器配置以添加主要后端。

  1. 在 Google Cloud 控制台中,转到负载均衡页面。

    转到“负载均衡”

  2. 点击要修改的负载平衡器。

  3. 点击修改

  4. 点击后端配置 并进行以下更改:

    1. 后端下,点击添加后端
    2. 从下拉菜单中选择要添加为主要后端的实例组。在此示例中为 ig-d
    3. 点击完成
    4. 请先确认后端配置旁边是否有蓝色对勾标记,然后再继续操作。

检查配置

  1. 点击检查并最终确定按钮,并确认后端下显示新的主要后端。
  2. 如果设置正确,请点击创建。创建负载均衡器需要几分钟的时间。

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

gcloud

使用以下 gcloud 命令将主后端添加到现有外部直通式网络负载均衡器的后端服务。

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION

其中:

  • BACKEND_SERVICE_NAME 是负载平衡器的后端服务的名称。对于此示例,请使用 network-lb-backend-service
  • INSTANCE_GROUP_NAME 是要作为主后端添加的实例组的名称。对于此示例,请使用 ig-d
  • INSTANCE_GROUP_ZONE 是定义了该实例组的区域。 对于此示例,请使用 us-west1-c
  • REGION 是负载平衡器所在的地区。对于此示例,请使用 us-west1

添加故障切换后端

您可以将此过程用作模板,以了解如何将非代管式实例组添加到现有的外部直通式网络负载均衡器的后端服务作为故障切换后端。此过程利用示例配置,向您展示如何将实例组 ig-b 作为故障切换主后端添加到 network-lb 负载均衡器。

控制台

修改负载平衡器配置以添加主要后端。

  1. 在 Google Cloud 控制台中,转到负载均衡页面。

    转到“负载均衡”

  2. 点击要修改的负载平衡器。

  3. 点击修改

  4. 点击后端配置 并进行以下更改:

    1. 后端下,点击添加后端
    2. 从下拉菜单中选择要添加为故障切换后端的实例组。在此示例中为 ig-b
    3. 选中将此实例组作为备份的故障切换组复选框。
    4. 点击完成
    5. 请先确认后端配置旁边是否有蓝色对勾标记,然后再继续操作。

检查配置

  1. 点击检查并最终确定按钮,并确认后端下显示新的主要后端。
  2. 如果设置正确,请点击创建。创建负载均衡器需要几分钟的时间。

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

gcloud

使用以下 gcloud 命令将故障切换后端添加到现有外部直通式网络负载均衡器的后端服务。

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

其中:

  • BACKEND_SERVICE_NAME 是负载平衡器的后端服务的名称。对于此示例,请使用 network-lb-backend-service
  • INSTANCE_GROUP_NAME 是要作为故障切换后端添加的实例组的名称。对于此示例,请使用 ig-b
  • INSTANCE_GROUP_ZONE 是定义了该实例组的区域。 对于此示例,请使用 us-west1-a
  • REGION 是负载平衡器所在的地区。对于此示例,请使用 us-west1

转换主后端或故障切换后端

您可以将主后端转换为故障切换后端,反之亦然,而且不需要从外部直通式网络负载均衡器的后端服务中移除实例组。

gcloud

使用以下 gcloud 命令将现有主后端转换为故障转移后端:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

使用以下 gcloud 命令将现有故障转移后端转换为主后端:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --no-failover

其中:

  • BACKEND_SERVICE_NAME 是负载平衡器的后端服务的名称。
  • INSTANCE_GROUP_NAME 是实例组的名称。
  • INSTANCE_GROUP_ZONE 是定义了该实例组的区域。
  • REGION 是负载平衡器所在的地区。

配置故障转移政策

本部分介绍如何为外部直通式网络负载均衡器的后端服务管理故障切换政策。故障切换政策包含以下内容:

  • 故障转移比率
  • 当所有后端虚拟机运行状况都不佳时舍弃流量
  • 在进行故障切换时排空连接

如需详细了解故障切换政策的参数,请参阅:

定义故障切换政策

以下说明介绍如何为现有的外部直通式网络负载均衡器定义故障切换政策。

gcloud

如需使用 gcloud CLI 定义故障切换政策,请更新负载均衡器的后端服务:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
   --region REGION \
   --failover-ratio FAILOVER_RATIO \
   --connection-drain-on-failover \
   --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \
   --drop-traffic-if-unhealthy

其中:

  • BACKEND_SERVICE_NAME 是负载平衡器的后端服务的名称。对于此示例,请使用 network-lb
  • REGION 是负载平衡器所在的地区。对于此示例,请使用 us-west1
  • FAILOVER_RATIO 是故障转移比率。可能的值介于 0.01.0 之间。对于此示例,请使用 0.75
  • CONNECTION_DRAINING_TIMEOUT 允许 TCP 连接持续存在最长连接排空超时时长,即使是在活跃池中不再存在的虚拟机上也是如此。

查看故障切换政策

以下说明介绍如何查看外部直通式网络负载均衡器的现有故障切换政策。

gcloud

如需使用 gcloud CLI 列出故障切换政策设置,请使用以下命令。故障切换政策中的未定义设置会使用默认的故障切换政策值

gcloud compute backend-services describe BACKEND_SERVICE_NAME \
   --region REGION \
   --format="get(failoverPolicy)"

其中:

  • BACKEND_SERVICE_NAME 是负载平衡器的后端服务的名称。对于此示例,请使用 network-lb-backend-service
  • REGION 是负载平衡器所在的地区。对于此示例,请使用 us-west1

后续步骤