配置 ALB
自 ACP 4.4 起,ALB 已弃用。无法创建新的 ALB 实例,且无法再通过 Web 控制台使用 ALB。在从早期版本升级的集群上,现有 ALB 实例会继续运行,并且仍可通过 API 管理,因此可以将其流量迁移到 Envoy Gateway 或 Ingress NGINX。迁移完成后,请移除 ALB 实例。
目录
ALB前提条件配置 ALB资源相关配置网络配置项目配置调整配置ALB 操作创建更新删除前端前置条件配置 FrontendFrontend 操作创建后续操作相关操作Rule前提条件使用 dslx 和优先级匹配请求dslx优先级ActionBackend后端协议Service Group 和会话亲和性策略Rule 操作使用 web console使用 CLIHttpsIngress 中的证书注解Rule 中的证书TLS 模式IngressIngress 同步日志与监控查看日志监控指标商标声明ALB
ALB 是表示负载均衡器的自定义资源。在从早期版本升级的集群上,alb-operator 会监视 ALB 资源的创建、更新和删除操作,并据此创建相应的部署和服务。
每个 ALB 都有一个对应的 Deployment,该 Deployment 会监视所有关联到此 ALB 的 Frontend 和 Rule,并根据这些配置将请求路由到后端。
前提条件
负载均衡器的高可用性需要 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 中提供了一些常见配置。请按照以下步骤创建负载均衡器:
- 进入管理员。
- 在左侧边栏中,点击网络管理 > 负载均衡器。
- 点击创建负载均衡器。
Web UI 中的每个输入项都对应 CR 的一个字段:
使用 CLI。
更新
使用 Web 控制台
更新负载均衡器会导致服务中断 3 至 5 分钟。请为此操作选择合适的时间!
-
进入管理员。
-
在左侧导航栏中,点击网络管理 > 负载均衡器。
-
点击 ⋮ > 更新。
-
根据需要更新网络和资源配置。
-
请根据业务需求合理设置规格。您也可以参阅相关的如何合理分配 CPU 和内存资源以获取指导。
-
内部路由仅支持从已禁用状态更新为已启用状态。
-
-
点击更新。
删除
使用 Web 控制台
删除负载均衡器后,关联的端口和规则也会一并删除,且无法恢复。
-
进入管理员。
-
在左侧导航栏中,点击网络管理 > 负载均衡器。
-
点击 ⋮ > 删除,并确认。
使用 CLI
前端
Frontend 是一种自定义资源,用于定义 ALB 的监听端口和协议。 支持的协议:L7(http|https|grpc|grpcs)和 L4(tcp|udp)。
- 在 L4 Proxy 中,使用 frontend 直接配置后端服务。
- 在 L7 Proxy 中,使用 frontend 配置监听端口,并使用 rule 配置后端服务。
如果需要添加 HTTPS 监听端口,还应联系管理员为当前项目分配 TLS 证书以进行加密。
前置条件
请先创建一个 ALB。
配置 Frontend
-
alb label:必填,表示此
Frontend所属的 ALB 实例。 -
frontend name:格式为
$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 proxy:必填。ALB 直接将流量转发到默认服务组。
- L7 proxy:选填。ALB 首先匹配此 Frontend 上的规则;如果没有匹配项,则回退到默认的
serviceGroup。
Frontend 操作
创建
使用 Web 控制台

-
进入容器平台。
-
在左侧导航栏中,点击网络 > 负载均衡。
-
点击负载均衡器名称,进入详情页。
-
点击添加端口。
Web UI 中的每个输入项对应 CR 的一个字段
使用 CLI
后续操作
对于来自 HTTP、gRPC 和 HTTPS 端口的流量,除了默认的内部路由组外,还可以设置更多样化的后端服务匹配规则。负载均衡器会先根据设置的规则匹配相应的后端服务;如果规则匹配失败,则会匹配上述内部路由组对应的后端服务。
相关操作
可以点击列表页右侧的 ⋮ 图标,或点击详情页右上角的操作,根据需要更新默认路由或删除监听端口。
如果负载均衡器的资源分配方式为端口,则只有管理员可以在管理员视图中删除相关监听端口。
Rule
Rule 是一种自定义资源(CR),用于定义 ALB 如何匹配和处理传入请求。
ALB 处理的 Ingress 可以自动转换为规则。
前提条件
下面是一个示例规则,可帮助你快速了解如何使用规则。
必须通过标签将 rule 关联到 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 中直接设置一个整数值作为优先级。
Action
请求匹配规则后,可以对该请求应用以下操作:
Backend
后端协议
默认情况下,后端协议设置为 HTTP。如果要使用 TLS 重新加密,可以将其配置为 HTTPS。
Service Group 和会话亲和性策略
可以在一个规则中配置一个或多个服务。
默认情况下,ALB 使用轮询(RR)算法在后端服务之间分配请求。不过,也可以为各个服务分配权重,或选择其他负载均衡算法。
详情请参阅负载均衡算法。
Rule 操作
使用 web console

- 进入容器平台。
- 在左侧导航栏中点击网络 > 负载均衡。
- 点击负载均衡器的名称。
- 选择监听端口名称。
- 点击添加规则。
- 参考以下说明配置相关参数。
- 点击添加。
webui 中的每个输入项都对应 CR 的一个字段。
使用 CLI
Https
如果 frontend 协议(ft)为 HTTPS 或 GRPCS,也可以将规则配置为使用 HTTPS。
可以在规则或 ingress 中指定证书,以匹配相应端口的证书。
支持终止 TLS;如果后端协议为 HTTPS,也可以进行重新加密。不过,不能为与后端服务的通信指定证书。
Ingress 中的证书注解
可以通过注解跨 namespace 引用证书。
Rule 中的证书
在 .spec.certificate_name 中,格式为 $secret_namespace/$secret_name
TLS 模式
Edge 模式
在 Edge 模式下,客户端通过 HTTPS 与 ALB 通信,而 ALB 使用 HTTP 协议与后端服务通信。 要实现此配置:
- 创建使用 HTTPS 协议的 ft
- 创建后端协议为 HTTP 的规则,并通过
.spec.certificate_name指定证书
重新加密模式
在重新加密模式下,客户端通过 HTTPS 与 ALB 通信,而 ALB 使用 HTTPS 协议与后端服务通信。 要实现此配置:
- 创建使用 HTTPS 协议的 ft
- 创建后端协议为 HTTPS 的规则,并通过
.spec.certificate_name指定证书
Ingress
Ingress 同步
每个 ALB 都会创建一个同名的 IngressClass,并处理同一项目中的 Ingress。
当 ingress namespace 带有类似 cpaas.io/project: demo 的标签时,表示该 ingress 属于 demo 项目。
在 .spec.config.projects 配置中将项目名称设为 demo 的 ALB,会自动将这些 ingress 转换为规则。
ALB 会监听 ingress 并自动创建 Frontend 或 Rule。source 字段定义如下:
spec.source.type目前仅支持ingress。spec.source.name是 ingress 名称。spec.source.namespace是 ingress namespace。
SSL 策略
对于未配置证书的 ingress,ALB 提供了一种使用默认证书的策略。
可以使用以下设置配置 ALB 自定义资源:
.spec.config.defaultSSLStrategy:定义未配置证书的 ingress 的 SSL 策略.spec.config.defaultSSLCert:按$secret_ns/$secret_name格式设置默认证书
可用的 SSL 策略:
- Never:不在 HTTPS 端口上创建规则(默认行为)
- Always:在 HTTPS 端口上使用默认证书创建规则
日志与监控
结合日志和监控数据,您可以快速识别并解决负载均衡器问题。
查看日志
-
进入管理员。
-
在左侧导航栏中,点击网络管理 > 负载均衡器。
-
点击负载均衡器名称。
-
在日志选项卡中,从容器视角查看负载均衡器运行时的日志。
监控指标
负载均衡器所在的集群必须部署监控服务。
-
进入管理员。
-
在左侧导航栏中,点击网络管理 > 负载均衡器。
-
点击负载均衡器名称。
-
在监控选项卡中,从节点视角查看负载均衡器的指标趋势信息。
-
使用率:负载均衡器在当前节点上对 CPU 和内存的实时使用情况。
-
吞吐量:负载均衡器实例的整体入站和出站流量。
-
有关监控指标的更多详细信息,请参阅 ALB 监控。
商标声明
Envoy® 是 The Linux Foundation 的注册商标。
NGINX® 是 F5, Inc. 在美国及其他国家/地区的注册商标。
Alauda 是独立供应商。本产品与 The Linux Foundation 或 F5, Inc. 不存在关联,也未获得其认可或赞助。所有商标均为其各自所有者的财产,此处仅用于识别目的。