了解后端服务

后端服务是一种资源,其字段包含以下 Google Cloud Platform 负载平衡服务的配置值:

  • HTTP(S) 负载平衡
  • SSL 代理负载平衡
  • TCP 代理负载平衡
  • 内部 TCP/UDP 负载平衡
  • 内部 HTTP(S) 负载平衡(测试版)

后端服务将流量定向至后端,即实例组或网络端点组。

后端服务可执行各种功能,例如:

  • 根据平衡模式定向流量。平衡模式在每个后端的后端服务中定义。
  • 根据运行状况检查监控后端运行状况
  • 维护会话粘性

架构

每个负载平衡器的后端服务数量取决于负载平衡器类型:

负载平衡器类型 后端服务数量
HTTP(S) 负载平衡 多个
SSL 负载平衡 1
TCP 代理负载平衡 1
内部 TCP/UDP 负载平衡 1
内部 HTTP(S) 负载平衡 多个

每个后端服务都包含一个或多个后端。

对于给定的后端服务,所有后端都必须是实例组或网络端点组。您可以将不同类型的实例组(例如托管实例组和非托管实例组)与同一后端服务相关联,但不能将实例组和网络端点组与同一后端服务相关联。

后端服务设置

每个后端服务都具有以下可配置设置:

  • 会话粘性(可选)。通常,负载平衡器使用哈希算法在可用的实例之间分配请求。在常规使用情形中,哈希基于来源 IP 地址、目标 IP 地址、来源端口、目标端口和协议(5 元组哈希)运算。会话粘性会调整哈希中包含的内容,并尝试将来自同一客户端的所有请求发送到同一个虚拟机实例。
  • 后端服务超时。该值可解释为不同的含义,具体取决于负载平衡器的类型和使用的协议:
    • 对于 HTTP(S) 负载平衡器,后端服务超时是请求/响应超时,但升级为使用 Websocket 协议的连接除外。
    • 将 WebSocket 流量发送到 HTTP(S) 负载平衡器时,后端服务超时被解释为空闲或活跃的 WebSocket 可以保持打开状态的最长时间。
    • 对于 SSL 代理或 TCP 代理负载平衡器,后端服务超时被解释为所有流量的空闲超时。
    • 对于内部 TCP/UDP 负载平衡器,系统会忽略后端服务超时参数。
  • 运行状况检查。运行状况检查程序以配置的时间间隔轮询连接到后端服务的实例。通过运行状况检查的实例可以接收新的请求。运行状况不佳的实例则不会收到请求,直到其运行状况恢复正常。

如需了解使用后端服务时可用属性的说明,请参阅后端服务 API 资源或 gcloud 命令行工具用户指南。

后端

每个后端都是接收 GCP 负载平衡器分配的流量的资源。有两种不同类型的资源可以用作后端:

对于给定的后端服务,后端必须要么全部是实例组,要么全部是 NEG(如果支持)。您不能同时将实例组和 NEG 用作同一后端服务上的后端。此外:

  • 内部 TCP/UDP 负载平衡器的后端仅支持实例组后端。
  • 如果 HTTP(S) 负载平衡器具有两个(或更多)后端服务,则您可以将实例组用作一个后端服务的后端,将 NEG 用作另一个后端服务的后端。

后端和外部 IP 地址

后端虚拟机不需要外部 IP 地址:

  • 对于 HTTP(S)、SSL 代理和 TCP 代理负载平衡器:客户端使用负载平衡器的外部 IP 地址与 Google 前端 (GFE) 进行通信。GFE 使用主网络接口的内部 IP 地址与后端虚拟机进行通信。由于 GFE 是代理,因此后端虚拟机本身不需要外部 IP 地址。

  • 对于网络负载平衡器:网络负载平衡器使用双向网络地址转换 (NAT) 路由数据包。当后端虚拟机向客户端发送回复时,会将负载平衡器的转发规则的外部 IP 地址用作来源 IP 地址。

  • 对于内部负载平衡器:内部负载平衡器的后端虚拟机不需要外部 IP 地址。

流量分配

后端行为的某些方面由后端服务资源中以下字段的值决定:

  • 平衡模式,告知负载平衡系统如何确定后端的使用率何时达到上限。如果一个区域中的后端服务的所有后端使用率都达到上限,则新请求会自动路由到仍可以处理请求的最近区域。平衡模式可以基于连接数、CPU 利用率或每秒请求次数(速率)
  • 容量设置。容量是另一种与平衡模式设置互动的控制机制。例如,如果您希望实例运作时的 CPU 利用率通常不超过 80%,则需要将平衡模式设置为 CPU 利用率,并将容量设置为 80%。如果希望实例利用率减半,您可以将容量保持在 80% 的 CPU 利用率,将容量调节程序设置为 0.5。要排空后端服务,请将容量调节程序设置为 0,将容量保持不变。如需详细了解容量和 CPU 利用率,请阅读根据 CPU 或负载平衡服务容量进行扩缩

注意事项:

  • 如果连接到同一后端服务的后端实例组中所有实例的平均 CPU 利用率低于 10%,则 GCP 可能会首选特定地区。当您使用托管区域实例组、托管地区实例组和非托管地区实例组时,可能会发生这种情况。当负载平衡器接收到更多流量时,这种地区不平衡会自动自行解决。其他区域的后端服务不会对此产生任何影响。

Traffic Director 也会使用后端服务资源。具体来说,Traffic Director 使用负载平衡方案为 INTERNAL_SELF_MANAGED 的后端服务。对于内部自行管理的后端服务,流量分配通过结合使用负载平衡模式和负载平衡政策完成。后端服务根据后端的平衡模式将流量定向到后端(实例组或 NEG),在选择了后端后,Traffic Director 根据负载平衡政策分配流量。

内部自行管理的后端服务支持以下平衡模式:

  • UTILIZATION(如果所有后端都是实例组)
  • RATE(如果所有后端都是实例组或 NEG)

如果选择 RATE 平衡模式,您必须为每个后端、实例或端点指定最高速率。

后端协议

创建后端服务时,必须指定用于与其后端通信的协议。后端服务只能使用一个协议。您不能指定次要协议来作为后备。

可用协议包括:

  • HTTP
  • HTTPS
  • HTTP/2
  • SSL
  • TCP
  • UDP

哪种协议有效取决于您创建的负载平衡器类型,包括其负载平衡方案。如需详细了解可用于相应后端服务的协议,请参阅各类型负载平衡器的文档。

后端协议 HTTP/2 也可用于通过 Ingress 进行负载平衡

后端服务和区域

HTTP(S) 负载平衡是一项全局性服务。您可以在一个区域中使用多个后端服务,并且可以将后端服务分配给多个区域,所有区域都由同一全局负载平衡器提供服务。流量将按如下方式分配给后端服务:

  1. 当用户请求传入时,负载平衡服务根据来源 IP 地址确定请求的大致来源。
  2. 负载平衡服务了解后端服务所拥有的实例的位置、实例的总体容量以及实例当前的总体使用率。
  3. 如果距离用户最近的实例具有可用容量,则请求会被转发给最近的一组实例。
  4. 发送到指定区域的传入请求会在该区域中的所有可用后端服务和实例之间均匀分配。不过,如果负载非常小,则分配可能看上去就不均匀。
  5. 如果指定区域中没有运行状况良好且有可用容量的实例,负载平衡器会改为将请求发送到具有可用容量的次近区域。

实例组

后端服务和自动扩缩的托管实例组

如果您需要以相同的方式配置多台机器,并且您希望根据需要自动添加或移除实例,则自动扩缩的托管实例组非常有用。

自动扩缩百分比适用于后端服务平衡模式。例如,假设您将平衡模式设置为 80% 的 CPU 利用率,让容量调节程序将容量保持在 100%,并且将自动调节程序中的目标负载平衡使用率设置为 80%。只要该组的 CPU 利用率超过 64%(80% 的 80%),自动调节程序就会基于模板实例化新实例,直到使用率下降到大约 64% 为止。如果总体使用率下降到 64% 以下,自动调节程序将移除实例,直到使用率恢复到 64% 为止。

新实例需要经过冷却期才被视为组的一部分,因此在这段时间内,流量可能会超过后端服务的 80% 的 CPU 利用率,导致超额的流量路由到下一个可用的后端服务。当这些实例可以使用后,系统就会将新流量路由到这些实例。此外,如果实例的数量达到自动调节程序设置所允许的最大值,则无论使用率是多少,自动调节程序都将停止添加实例。在这种情况下,超额的流量将被负载平衡服务引向下一个可用区域。

配置自动扩缩的托管实例组

要配置自动扩缩的托管实例组,请执行以下步骤:

  1. 为您的实例组创建实例模板
  2. 创建托管实例组并为其分配模板。
  3. 根据负载平衡服务容量启用自动扩缩功能。

有关实例组的限制和指南

由于 Cloud Load Balancing 在负载平衡配置方式方面提供了极大的灵活性,因此可能会产生性能欠佳的配置。在创建用于负载平衡的实例组时,请记住以下限制和指南。

  • 不要将一个虚拟机实例放在多个实例组中。
  • 不要删除后端正在使用的实例组。
  • 如果没有将同一实例组添加到两个不同的后端,则配置就会比较简单。如果您必须将同一实例组添加到两个后端:
    • 两个后端必须使用相同的平衡模式(UTILIZATIONRATE)。
    • 您可以将 maxRatePerInstancemaxRatePerGroup 结合使用。可以将一个后端设置为使用 maxRatePerInstance,将另一个后端设置为使用 maxRatePerGroup
    • 如果您的实例组分别为若干个后端提供两个或多个端口,则必须在实例组中指定不同的端口名称。
  • 托管或非托管实例组中的所有实例必须位于同一 VPC 网络和同一子网(如果有)中。
  • 如果您使用已启用自动扩缩功能的托管实例组,请勿在后端服务中使用 maxRate 平衡模式。您可以使用 maxUtilizationmaxRatePerInstance 模式。
  • 请勿将自动扩缩的托管实例组作为两个不同负载平衡器的目标。
  • 调整托管实例组的大小时,组的大小上限应该小于或等于子网的大小。

网络端点组

网络端点是 IP 地址和端口的组合,可通过以下两种方式之一指定:

  • 通过指定 IP address:port 对,例如 10.0.1.1:80
  • 通过仅指定网络端点 IP 地址。NEG 的默认端口会自动用作 IP address:port 对的端口。

网络端点通过其 IP 地址和端口来表示服务,而不是引用特定的虚拟机。网络端点组 (NEG) 是网络端点的逻辑分组。

使用网络端点组作为后端的后端服务在虚拟机实例内运行的应用或容器之间分配流量。如需了解详情,请参阅负载平衡概念中的网络端点组

会话粘性

如果没有会话粘性,负载平衡器会根据后端实例组或 NEG 的平衡模式分配新请求。某些应用(比如广告投放、游戏或具有大量内部缓存的服务所使用的有状态服务器)需要将给定用户发出的多个请求定向到同一实例。

会话粘性可以满足此需求,它根据客户端的 IP 地址或 Cookie 值等参数来识别来自同一客户端的 TCP 流量,如果后端运行状况良好且有容量,则根据其平衡模式将这些请求定向到同一后端实例。

会话粘性对 UDP 流量的影响很小,因为 UDP 会话是单个请求和响应。

如果实例运行状况不佳或过载,则会话粘性可能就会被破坏,因此您不应假定存在完美的粘性。

对于 HTTP(S) 负载平衡,会话粘性最适合与 RATE 平衡模式搭配使用。

不同的负载平衡器支持不同的会话粘性选项,如下表所示:

负载平衡器 会话粘性选项
内部 • 无
• 客户端 IP
• 客户端 IP 和协议
• 客户端 IP、协议和端口
TCP 代理
SSL 代理
• 无
• 客户端 IP
HTTP(S) • 无
• 客户端 IP
• 生成的 Cookie
网络 网络负载平衡不使用后端服务。请通过目标池为网络负载平衡器设置会话粘性。请参阅目标池中的 sessionAffinity 参数。

以下部分讨论两种常见的会话粘性类型。

使用客户端 IP 粘性

客户端 IP 粘性根据客户端 IP 地址的哈希将来自同一客户端 IP 地址的请求定向到同一后端实例。客户端 IP 粘性适用于所有使用后端服务的 GCP 负载平衡器。

使用客户端 IP 粘性时,请注意以下几点:

  • 如果原始客户端位于 NAT 后面或通过代理发出请求,则负载平衡器看到的客户端 IP 地址可能不是原始客户端。通过 NAT 或代理发出的请求会将 NAT 路由器或代理的 IP 地址用作客户端 IP 地址。这会导致传入的流量无谓汇集到同一个后端实例上。

  • 如果客户端从一个网络切换到另一个网络,其 IP 地址会发生变化,导致粘性被破坏。

控制台


要设置客户端 IP 粘性,请执行以下操作:

  1. 在 Google Cloud Platform Console 中,转到“负载平衡器”页面的后端配置部分。
    转到“负载平衡”页面
  2. 选择您的负载平衡器对应的修改铅笔图标。
  3. 选择后端配置
  4. 选择后端服务对应的修改铅笔图标。
  5. 修改后端服务对话框中,从会话粘性下拉菜单中选择 Client IP
    此操作会启用客户端 IP 会话粘性。粘性 Cookie TTL 字段呈灰显状态,因为该字段对于客户端 IP 粘性没有意义。
  6. 点击后端服务对应的更新按钮。
  7. 点击负载平衡器对应的更新按钮。

gcloud


您可以使用 create 命令为新的后端服务设置会话粘性,也可以使用 update 命令为现有的后端服务设置会话粘性。下面的示例显示了如何通过 update 命令来使用会话粘性。

gcloud compute backend-services update [BACKEND_SERVICE_NAME] \
    --session-affinity client_ip

API


请参阅后端服务的 API 参考信息

如果设置了生成的 Cookie 粘性,负载平衡器会针对第一个请求发出一个名为 GCLB 的 Cookie,然后将每个具有相同 Cookie 的后续请求定向到同一实例。利用基于 Cookie 的粘性,负载平衡器可以区分使用同一 IP 地址的不同客户端,如此便能在各实例之间更均匀地分布这些客户端。即使客户端的 IP 地址发生更改,基于 Cookie 的粘性也会使负载平衡器保持实例粘性。

Cookie 的路径始终为 /,因此如果同一个主机名上有两个后端服务启用了基于 Cookie 的粘性,这两个服务将由同一 Cookie 进行平衡。

负载平衡器生成的 HTTP Cookie 的生命周期是可配置的。该生命周期可以设置为 0(默认值,意味着 Cookie 只是会话 Cookie),也可以设置为 186400 秒(24 小时)。

控制台


要设置生成的 Cookie 粘性,请执行以下操作:

  1. 在 Google Cloud Platform Console 中,您可以在“HTTP(S) 负载平衡器”页面的后端配置部分修改“生成的 Cookie 粘性”。
    转到“负载平衡”页面
  2. 选择您的负载平衡器对应的修改铅笔图标。
  3. 选择后端配置
  4. 选择后端服务对应的修改铅笔图标。
  5. 会话粘性下拉菜单中选择 Generated cookie 以选择“生成的 Cookie 粘性”。
  6. 粘性 Cookie TTL 字段中,设置 Cookie 的生命周期(以秒为单位)。
  7. 点击后端服务对应的更新按钮。
  8. 点击负载平衡器对应的更新按钮。

gcloud


通过将 --session-affinity 设置为 generated_cookie 并将 --affinity-cookie-ttl 设置为 Cookie 生命周期(以秒为单位)来开启生成的 Cookie 粘性。您可以使用 create 命令为新的后端服务设置会话粘性,也可以使用 update 命令为现有的后端服务设置会话粘性。下面的示例显示了如何通过 update 命令来使用会话粘性。

gcloud compute backend-services update [BACKEND_SERVICE_NAME] \
    --session-affinity generated_cookie \
    --affinity-cookie-ttl 86400

API


请参阅后端服务的 API 参考信息

停用会话粘性

您可以通过更新后端服务并将会话粘性设置为“none”来关闭会话粘性,也可以在文本编辑器中修改后端服务并将会话粘性设置为“none”。您还可以使用任一命令来修改 Cookie 生命周期。

Console


要停用会话粘性,请执行以下操作:

  1. 在 Google Cloud Platform Console 中,您可以在“负载平衡器”页面的后端配置部分停用会话粘性。
    转到“负载平衡”页面
  2. 选择您的负载平衡器对应的修改铅笔图标。
  3. 选择后端配置
  4. 选择后端服务对应的修改铅笔图标。
  5. 会话粘性下拉菜单中选择 None 以关闭会话粘性。
  6. 点击后端服务对应的更新按钮。
  7. 点击负载平衡器对应的更新按钮。

gcloud


要停用会话粘性,请运行以下命令:

  gcloud compute backend-services update [BACKEND_SERVICE_NAME] \
  --session-affinity none


gcloud compute backend-services edit [BACKEND_SERVICE_NAME]

API


请参阅后端服务的 API 参考信息

失去会话粘性

在下列情况下,无论选择何种类型的粘性,客户端都可能会失去与实例的粘性。

  • 实例组的容量被用完,流量不得不路由到其他地区。在这种情况下,来自现有会话的流量可能会发送到新地区,导致粘性被破坏。要解决此问题,请确保您的实例组具有可处理所有本地用户的足够容量。
  • 自动扩缩功能会在实例组中添加或移除实例。在这两种情况下,后端服务都会重新分配负载,而且目标可能会移动。要解决此问题,请确保通过自动扩缩功能预配的实例数下限足以处理预期负载,然后仅使用自动扩缩功能来处理负载意外增加的情况。
  • 目标实例未通过运行状况检查。当会话转移到运行状况良好的实例时,会失去粘性。
  • 平衡模式设置为 CPU 利用率,这可能会导致跨区域的计算容量发生变化,使部分流量发送至该区域内的其他地区。如果计算容量不太稳定,则在低流量时更有可能发生这种情况。
  • 如果后端位于多个云区域,并且您的客户端路由设计为连接中的首个和后续请求从不同的地理位置发出,您可能会失去会话粘性。这是因为其他请求可能会路由到由其新的出站位置决定的其他云区域。

配置超时设置

如果从负载平衡器到后端服务的连接持续时间较长,请将超时设置配置为大于 30 秒(默认值)的值。

控制台


要配置超时设置,请执行以下操作:

  1. 在 Google Cloud Platform Console 中,您可以在“HTTP(S) 负载平衡器”页面的后端配置部分修改超时设置。
    转到“负载平衡”页面
  2. 选择您的负载平衡器对应的修改铅笔图标。
  3. 选择后端配置
  4. 选择后端服务对应的修改铅笔图标。
  5. 协议、端口和超时设置对应的行中,选择修改铅笔图标。
  6. 输入新的超时设置(以秒为单位)。
  7. 点击后端服务对应的更新按钮。
  8. 点击负载平衡器对应的更新按钮。

gcloud


要使用 gcloud 命令行工具来更改超时设置,请使用“gcloud compute backend-services update”命令。在该命令中附加 --help 可获取详细信息。

gcloud compute backend-services update [BACKEND_SERVICE] [--timeout=TIMEOUT]

API


请参阅后端服务的 REST API 参考信息

已命名端口

对于内部 HTTP(S)、外部 HTTP(S)、SSL 代理和 TCP 代理负载平衡器,如果后端是实例组,则后端服务必须具有关联的已命名端口。已命名端口会通知负载平衡器应该在后端实例组中使用配置的已命名端口,如此即可将其转换为端口号。这是负载平衡器用于连接到后端虚拟机的端口,可能会与客户端用来联系负载平衡器本身的端口不同。

已命名端口是键值对,用于表示服务名称和运行服务的端口号。键值对在实例组中定义。当后端服务将该实例组用作后端时,它可以“订阅”已命名端口:

  • 每个实例组最多可定义 5 个已命名端口(键值对)。
  • 使用实例组后端的 HTTP(S)、SSL 代理或 TCP 代理负载平衡器的每个后端服务只能“订阅”一个已命名端口。
  • 为后端服务指定已命名端口时,所有后端实例组必须至少定义一个使用相同名称的已命名端口。

遇到以下情况时,不能使用已命名端口:

  • 对于 NEG 后端:NEG 会为每个端点定义端口,并且不存在与 NEG 关联的已命名端口键值对。
  • 对于内部 TCP/UDP 负载平衡器:由于内部 TCP/UDP 负载平衡器是直通式负载平衡器(而非代理),因此其后端服务不支持设置已命名端口。

运行状况检查

每个后端服务都必须与运行状况检查关联。运行状况检查可持续运行,其结果有助于确定哪些实例应接收新请求。

运行状况不佳的实例不会收到新的请求,并且会继续接受轮询。如果运行状况不佳的实例通过了运行状况检查,则该实例会被视为运行状况良好,并且将开始接收新的连接。

运行状况检查的最佳做法

配置运行状况检查时的最佳做法是在同一端口上检查运行状况及处理流量。不过,您也可以在一个端口上执行运行状况检查,在另一个端口上处理流量。如果您使用两个不同的端口,请确保正确配置在实例上运行的防火墙规则和服务。如果您在同一端口上执行运行状况检查及处理流量,但在某个时刻决定切换端口,请务必更新后端服务和运行状况检查。

如果后端服务没有引用该服务的有效转发规则,系统将不会对该服务进行运行状况检查,因此也不会显示其运行状况。

创建运行状况检查

您需要创建运行状况检查,然后再创建后端服务。我们建议针对您要进行负载平衡的流量所用的相同协议创建运行状况检查。

控制台

在控制台中,您可以在创建后端服务时创建运行状况检查。

gcloud

对于 gcloud 命令,请参阅运行状况检查页面以创建运行状况检查。

API

对于 API 命令,请参阅运行状况检查页面。

创建后端服务

控制台


要创建新的后端服务,请执行以下操作:

  1. 在 Google Cloud Platform Console 中,您可以在 HTTP(S) 负载平衡器页面的后端配置部分创建后端服务。
    转到“负载平衡”页面
  2. 选择您的负载平衡器对应的修改铅笔图标。
  3. 选择后端配置
  4. 创建或选择后端服务和后端存储分区下拉菜单中,选择后端服务 -> 创建后端服务
  5. 输入后端服务的名称
  6. (可选)输入说明
  7. 协议、端口和超时设置对应的行中,选择修改铅笔图标。
    • 选择 httphttpshttp2 协议
    • 输入已命名的端口port name
    • (可选)更改默认的超时设置。
  8. 后端类型下,选择实例组单选按钮。
  9. 后端对话框中,您可以创建一个或多个后端。
    1. 新后端对话框的下拉菜单中,选择现有的实例组
    2. 输入一个或多个端口号(以英文逗号分隔),后端将通过这些端口号接收请求。
      • 对于 http 协议,此字段会设为 80
      • 对于 https 协议,此字段会设为 443
      • 对于 http2 协议,此字段会设为 443
    3. 设置 CPU 利用率上限(百分比)。
    4. (可选)设置 RPS 上限(对于 unlimited.,将该字段留空)。 设置每个实例的 RPS每个组的 RPS
    5. 设置容量(百分比)。
    6. 点击完成按钮。
  10. 选中或取消选中启用 Cloud CDN 复选框。
  11. 运行状况检查下拉菜单中,选择现有的运行状况检查或者通过完成以下步骤来另创建一项运行状况检查
    1. 设置名称
    2. (可选)设置说明
    3. 设置协议端口。请参阅运行状况检查部分以了解最佳做法。
    4. 设置代理协议
    5. (可选)设置请求响应的值。
    6. 运行状况判断标准下方,设置以下各项:
      1. 设置检查间隔(以秒为单位)。
      2. 设置超时(以秒为单位)。
      3. 状况良好判断阈值中设置 number of consecutive successes
      4. 状况不佳判断阈值中设置 number of consecutive failures
      5. 点击保存并继续
    7. 点击高级配置以修改会话粘性连接排空超时时间自定义请求标头安全政策
      1. 要设置会话粘性,请选择客户端 IP生成的 Cookie。如果您选择“生成的 Cookie”,请设置粘性 Cookie TTL(以秒为单位)。
      2. 要设置连接排空超时时间,请输入实例等待正在执行的连接完成所需的秒数。
      3. 要创建自定义请求标头,请点击 +添加标头,然后为标头添加标头名称标头值
      4. 要启用安全政策,请从下拉菜单中选择一项。
    8. 点击后端服务对应的更新按钮。
    9. 点击负载平衡器对应的更新按钮。

gcloud


要使用 gcloud 命令行工具创建后端服务,请参阅 Cloud SDK 文档。

API


对于 API 命令,请参阅后端服务页面以创建后端服务。

修改后端服务

对后端服务的更改不是即时的。您的更改可能需要几分钟才能在整个网络中生效。

控制台


要修改现有后端服务,请执行以下操作:

  1. 在 Google Cloud Platform Console 中,您可以在“HTTP(S) 负载平衡器”页面的后端配置部分修改后端服务。
    转到“负载平衡”页面
  2. 选择您的负载平衡器对应的修改铅笔图标。
  3. 选择后端配置
  4. 后端服务下,选择后端服务对应的修改铅笔图标。您可以修改以下字段:
    1. 后端下,添加新的后端或者选择现有的后端对应的修改铅笔图标。
    2. 协议、端口和超时设置对应的行中,选择修改铅笔图标。
    3. 选择现有的运行状况检查,或者按照先前的运行状况检查创建步骤创建新的运行状况检查。
    4. 修改会话粘性粘性 Cookie TTL(如有必要)。
    5. 点击高级配置以修改连接排空超时时间
    6. 选中或取消选中启用 Cloud CDN 复选框。
  5. 点击高级配置以修改会话粘性连接排空超时时间自定义请求标头安全政策
    1. 要设置会话粘性,请选择客户端 IP生成的 Cookie。如果您选择“生成的 Cookie”,请设置粘性 Cookie TTL(以秒为单位)。
    2. 要设置连接排空超时时间,请输入实例等待正在执行的连接完成所需的秒数。
    3. 要创建自定义请求标头,请点击 +添加标头,然后为标头添加标头名称标头值
    4. 要启用安全政策,请从下拉菜单中选择一项。
    5. 点击后端服务对应的更新按钮。
    6. 点击负载平衡器对应的更新按钮。

gcloud


要使用 gcloud 命令行工具来修改后端服务,请参阅 Cloud SDK 文档。

API


要使用 API 来修改后端服务,请参阅 API 文档

将实例组添加到后端服务

要定义包含在后端服务中的实例,您必须添加一个后端并为其分配一个实例组。必须先创建实例组,然后才能将其添加到后端。

将实例组添加到后端时,还必须定义某些参数。

控制台


要将实例组添加到后端服务,请执行以下操作:

  1. 在 Google Cloud Platform Console 中,您可以在“HTTP(S) 负载平衡器”页面的后端配置部分中,将实例组添加到后端。
    转到“负载平衡”页面
  2. 选择您的负载平衡器对应的修改铅笔图标。
  3. 选择后端配置
  4. 选择后端配置对应的修改铅笔。
  5. 选择后端对应的修改铅笔图标。
  6. 修改后端对话框的实例组下拉菜单中,选择 Instance group
  7. 点击修改后端对应的完成按钮。
  8. 点击后端服务对应的更新按钮。
  9. 点击负载平衡器对应的更新按钮。

gcloud


要使用 gcloud 命令行工具将实例组添加到后端服务,请参阅 Cloud SDK 文档。

API


要使用 API 将实例组添加到后端服务,请参阅 API 文档

将网络端点组添加到后端服务

要将网络端点组添加到后端服务,请参阅将网络端点组添加到后端服务

查看后端服务运行状况检查的结果

创建运行状况检查和后端服务之后,便可查看运行状况检查结果。

控制台


要查看后端服务的运行状况检查结果,请执行以下操作:

  1. 转到负载平衡摘要页面。
    转到“负载平衡”页面
  2. 点击负载平衡器的名称。
  3. 后端下,针对某项后端服务查看实例组表中的运行状况良好列。

gcloud


要使用 gcloud 命令行工具来查看最新的运行状况检查结果,请使用 backend-services get-health 命令。

gcloud compute backend-services get-health [BACKEND_SERVICE]

该命令会针对指定后端服务中的所有实例返回 healthState 值(HEALTHYUNHEALTHY):

  healthStatus:
    - healthState: UNHEALTHY
      instance: us-central1-b/instances/www-video1
    - healthState: HEALTHY
      instance: us-central1-b/instances/www-video2
  kind: compute#backendServiceGroupHealth
  

API


对于 API 命令,请参阅运行状况检查页面。

其他说明

GCP 负载平衡器不支持以下 Traffic Director 功能:

  • 熔断
  • 离群值检测
  • 负载平衡政策
  • 基于 HTTP Cookie 的会话粘性
  • 基于 HTTP 标头的会话粘性

后续步骤

要获得说明如何在负载平衡中使用后端服务的相关文档和信息,请查看以下内容: