配置 ALB
ALB 已被废弃。请改用 ingress-nginx-operator 或 envoy-gateway。
目录
ALB前提条件配置 ALB资源相关配置网络配置项目配置调优配置ALB 操作创建更新删除Frontend前提条件配置 FrontendFrontend 操作创建后续操作相关操作Rule前提条件使用 dslx 和优先级匹配请求dslx优先级动作后端后端协议服务组和会话保持策略Rule 操作使用 Web 控制台使用 CLIHTTPSIngress 中的证书注解规则中的证书TLS 模式IngressIngress 同步日志与监控查看日志监控指标ALB
ALB 是表示负载均衡器的自定义资源。alb-operator 默认嵌入所有集群中,监听 ALB 资源的创建/更新/删除操作,并据此创建相应的 Deployment 和 Service。
对于每个 ALB,会有一个对应的 Deployment 监听所有附加到该 ALB 的 Frontends 和 Rules,并根据这些配置将请求路由到后端。
前提条件
负载均衡器 的高可用性需要 VIP。请参考 配置 VIP。
配置 ALB
ALB 配置包含三部分。
资源相关配置
资源相关字段描述 alb 的部署配置。
网络配置
网络字段描述如何访问 ALB。例如,在 host 模式下,alb 使用 hostnetwork,可以通过节点 IP 访问 ALB。
项目配置
将 ALB 添加到项目意味着:
- 在 Web UI 中,只有该项目内的用户可以查找和配置此 ALB。
- 该 ALB 会处理属于该项目的 ingress 资源。请参考 ingress-sync。
- 在 Web UI 中,项目 X 创建的规则不能在项目 Y 下被查找或配置。
如果启用端口项目并为项目分配端口范围,则意味着:
- 不能创建不属于该项目分配端口范围的端口。
调优配置
alb cr 中有一些全局配置可以调优。
ALB 操作
创建
使用 Web 控制台
Web UI 中暴露了一些常用配置。创建负载均衡器的步骤如下:
- 进入 Administrator。
- 左侧边栏点击 网络管理 > 负载均衡器。
- 点击 创建负载均衡器。
Web UI 中的每个输入项对应 CR 的一个字段:
使用 CLI
更新
使用 Web 控制台
更新负载均衡器会导致 3 到 5 分钟的服务中断,请选择合适时间进行操作!
-
进入 Administrator。
-
左侧导航栏点击 网络管理 > 负载均衡器。
-
点击 ⋮ > 更新。
-
根据需要更新网络和资源配置。
- 请根据业务需求合理设置规格。也可参考相关文档 如何合理分配 CPU 和内存资源。
- 内部路由 仅支持从 禁用 状态更新为 启用 状态。
-
点击 更新。
删除
使用 Web 控制台
删除负载均衡器后,关联的端口和规则也会被删除且无法恢复。
-
进入 Administrator。
-
左侧导航栏点击 网络管理 > 负载均衡器。
-
点击 ⋮ > 删除,并确认。
使用 CLI
Frontend
Frontend 是定义 ALB 监听端口和协议的自定义资源。 支持的协议:L7(http|https|grpc|grpcs)和 L4(tcp|udp)。
- L4 代理直接用 frontend 配置后端服务。
- L7 代理用 frontend 配置监听端口,用 rule 配置后端服务。
如果需要添加 HTTPS 监听端口,还应联系管理员为当前项目分配 TLS 证书以实现加密。
前提条件
先创建 ALB。
配置 Frontend
-
alb 标签:必填,指明该
Frontend所属的 ALB 实例。 -
frontend 名称:格式为
$alb_name-$port。 -
port:监听的端口。
-
protocol:该端口使用的协议。
- L7 协议 https|http|grpcs|grpc 和 L4 协议 tcp|udp。
- 选择 HTTPS 时必须添加证书;gRPC 协议添加证书为可选。
- 选择 gRPC 协议时,后端协议默认为 gRPC,不支持会话保持。若为 gRPC 协议设置证书,负载均衡器会卸载 gRPC 证书并将未加密的 gRPC 流量转发到后端服务。
- 使用 Google GKE 集群时,同一 容器网络类型 的负载均衡器不能同时存在 TCP 和 UDP 监听协议。
-
certificate_name:用于 grpcs 和 https 协议的默认证书,格式为
$secret_ns/$secret_name。 -
backendProtocol:后端服务使用的协议。
-
默认
serviceGroup:- L4 代理:必填。ALB 直接将流量转发到默认服务组。
- L7 代理:可选。ALB 会先匹配该 Frontend 上的 Rules,若无匹配则回退到默认
serviceGroup。
Frontend 操作
创建
使用 Web 控制台

-
进入 Container Platform。
-
左侧导航栏点击 网络 > 负载均衡。
-
点击负载均衡器名称进入详情页。
-
点击 添加端口。
Web UI 中的每个输入项对应 CR 的一个字段:
使用 CLI
后续操作
对于 HTTP、gRPC 和 HTTPS 端口的流量,除了默认的内部路由组外,还可以设置更多多样化的后端服务匹配 规则。负载均衡器会先根据设置的规则匹配对应的后端服务;若规则匹配失败,则匹配上述内部路由组对应的后端服务。
相关操作
可以点击列表页右侧的 ⋮ 图标,或详情页右上角的 操作,根据需要更新默认路由或删除监听端口。
如果负载均衡器的资源分配方式为 端口,只有管理员可以在 Administrator 视图中删除相关监听端口。
Rule
Rule 是定义 ALB 如何匹配和处理请求的自定义资源。
ALB 处理的 ingress 可以被 自动转换为规则。
前提条件
下面是一个示例规则,帮助快速了解规则的使用。
规则必须通过标签附加到 frontend 和 alb。
- 必填,指明该规则所属的
Frontend。 - 必填,指明该规则所属的 ALB。
- backendProtocol
- certificate_name
- dslx
- 数值越小优先级越高。
- serviceGroup
使用 dslx 和优先级匹配请求
dslx
DSLX 是用于描述匹配条件的领域专用语言。 例如,下面的规则匹配满足 全部 以下条件的请求:
- url 以 /app-a 或 /app-b 开头
- method 是 post
- url 参数 group 为 vip
- host 以 *.app.com 结尾
- header 中 location 是 east-1 或 east-2
- 有名为 uid 的 cookie
- 源 IP 在 1.1.1.1-1.1.1.100 范围内
优先级
优先级是 0 到 10 的整数,数值越小优先级越高。Ingress 中配置规则优先级可使用如下注解格式:
规则中直接在 .spec.priority 使用整数设置优先级。
动作
请求匹配规则后,可以对请求应用以下动作:
后端
后端协议
默认后端协议为 HTTP。若需使用 TLS 重新加密,可配置为 HTTPS。
服务组和会话保持策略
规则中可配置一个或多个服务。
默认情况下,ALB 使用轮询(RR)算法在后端服务间分发请求。也可为单个服务分配权重,或选择其他负载均衡算法。
详情请参考 负载均衡算法。
Rule 操作
使用 Web 控制台

- 进入 Container Platform。
- 左侧导航栏点击 网络 > 负载均衡。
- 点击负载均衡器名称。
- 选择监听端口名称。
- 点击 添加规则。
- 参考下述描述配置相关参数。
- 点击 添加。
Web UI 中的每个输入项对应 CR 的一个字段。
使用 CLI
HTTPS
若 frontend 协议(ft)为 HTTPS 或 GRPCS,规则也可配置为使用 HTTPS。
证书可在规则或 ingress 中指定,用于匹配该端口的证书。
支持终止(termination),若后端协议为 HTTPS 可实现重新加密。但不能为与后端服务通信指定证书。
Ingress 中的证书注解
证书可通过注解跨命名空间引用。
规则中的证书
.spec.certificate_name 格式为 $secret_namespace/$secret_name
TLS 模式
Edge 模式
Edge 模式下,客户端与 ALB 使用 HTTPS 通信,ALB 与后端服务使用 HTTP 协议。 实现方式:
- 创建使用 https 协议的 ft
- 创建后端协议为 http 的 rule,并通过
.spec.certificate_name指定证书
重新加密模式
重新加密模式下,客户端与 ALB 使用 HTTPS 通信,ALB 与后端服务使用 HTTPS 协议。 实现方式:
- 创建使用 https 协议的 ft
- 创建后端协议为 https 的 rule,并通过
.spec.certificate_name指定证书
Ingress
Ingress 同步
每个 ALB 创建一个同名的 IngressClass,处理同项目内的 ingress。
当 ingress 命名空间带有标签如 cpaas.io/project: demo,表示该 ingress 属于 demo 项目。
ALB 中 .spec.config.projects 配置包含项目名 demo 的,会自动将这些 ingress 转换为规则。
ALB 监听 ingress 并自动创建 Frontend 或 Rule。source 字段定义如下:
spec.source.type目前仅支持ingress。spec.source.name是 ingress 名称。spec.source.namespace是 ingress 命名空间。
SSL 策略
对于未配置证书的 ingress,ALB 提供使用默认证书的策略。
可在 ALB 自定义资源中配置:
.spec.config.defaultSSLStrategy:定义未配置证书 ingress 的 SSL 策略.spec.config.defaultSSLCert:设置默认证书,格式为$secret_ns/$secret_name
可用 SSL 策略:
- Never:不在 HTTPS 端口创建规则(默认)
- Always:使用默认证书在 HTTPS 端口创建规则
日志与监控
结合日志和监控数据,可以快速定位和解决负载均衡器问题。
查看日志
-
进入 Administrator。
-
左侧导航栏点击 网络管理 > 负载均衡器。
-
点击 负载均衡器名称。
-
在 日志 标签页,从容器视角查看负载均衡器运行日志。
监控指标
负载均衡器所在集群必须部署监控服务。
-
进入 Administrator。
-
左侧导航栏点击 网络管理 > 负载均衡器。
-
点击 负载均衡器名称。
-
在 监控 标签页,从节点视角查看负载均衡器的指标趋势信息。
- 使用率:负载均衡器在当前节点的 CPU 和内存实时使用情况。
- 吞吐量:负载均衡器实例的整体进出流量。
更多监控指标详情请参考 ALB 监控。