You need to enable JavaScript to run this app.
导航
负载均衡服务概述
最近更新时间:2024.11.27 14:42:15首次发布时间:2024.09.20 11:50:28

负载均衡(LoadBalancer)类型的 Service 通过使用外部负载均衡器,使流量能够平滑地分发到集群中的多个 Pod 上。本文介绍负载均衡类型 Service 的常见概念和技术原理。

基本原理

当创建一个 LoadBalancer 类型的 Service 时,系统会为该 Service 创建或复用一个外部的负载均衡器(Cloud Load Balancer,CLB),用于向公网或者内网暴露服务。负载均衡器支持转发到 NodePort 服务,也支持直接转发到处于 VPC-CNI 网络模式下的容器中。转发到 NodePort 服务时的基本原理,如下图所示。
alt

外部流量策略

当 Serivce 类型为 LoadBalancer 或 NodePort 时,支持配置该服务的外部流量策略,用于控制从外部网络到服务的流量路由。支持的配置项包括LocalCluster。在 Pod 直通模式或非 Pod 直通模式下,外部流量策略的转发行为略有不同。

非 Pod 直通

在非 Pod 直通模式下,流量经由节点 NodePort 转发到 Pod 中。此时,不同外部流量策略的主要区别如下:

  • Local:Pod 所在的节点被添加到 CLB 后端,外部流量只会到达有 Pod 所在的节点。节点的流量只转发给本节点的 Pod,即流量仅在同一个节点的 Pod 中进行转发。
  • Cluster:集群所有节点均会被添加到 CLB 后端,外部流量可能会转发到任意节点。节点的流量会转发到不同节点的 Pod。

说明

VCI Pod 一定会被添加到 CLB 后端。

alt

非 Pod 直通模式下,外部流量策略主要区别,如下表所示。

对比项LocalCluster
CLB 后端挂载仅 Pod 所在的节点会挂载到 CLB 后端。所有集群内的节点都将挂载到 CLB 后端。
CLB 配额CLB 配额消耗较少。详情请参见 配额限制集群内所有节点都挂载到 CLB 后端,会大量消耗 CLB 配额。详情请参见 配额限制
访问负载均衡地址仅 Pod 所在节点可以访问负载均衡地址。集群内任意节点均可访问负载均衡地址。
Pod 负载均衡默认 Pod 之间负载不均衡。默认 Pod 之间负载均衡。
保留来源IP支持。不支持。
会话保持支持。不支持。
适用场景适用于需要保留客户端原始 IP 地址的应用,例如基于原始 IP 地址的日志记录。适用于需要保证服务的高可用性,并且对源 IP 保存不敏感的应用,例如大型 Web 应用集群。

Pod 直通

在 Pod 直通模式下,Pod 会被直接添加到 CLB 后端,外部的请求会直接转发到 Pod,不会再经过节点进行转发。适用于对网络有性能要求的场景。

说明

  • Pod 直通模式仅支持 VPC-CNI 网络的集群中配置和生效。
  • VCI Pod 一定会被添加到 CLB 后端。

alt

Pod 直通模式下,外部流量策略主要区别,如下表所示。

对比项LocalCluster
CLB 后端挂载Pod 直接挂载到 CLB 后端。Pod 直接挂载到 CLB 后端。
CLB 配额仅挂载业务 Pod,CLB 配额消耗较少。详情请参见 配额限制仅挂载业务 Pod,CLB 配额消耗较少。详情请参见 配额限制
访问负载均衡地址仅 Pod 所在节点可以访问负载均衡地址。集群内任意节点均可访问负载均衡地址。
Pod 负载均衡默认 Pod之间负载均衡。默认 Pod之间负载均衡。
保留来源 IP支持。支持。
会话保持支持。支持。