Service复用已有负载均衡BLB
概述
本文档介绍如何在容器引擎 CCE 中通过 service.beta.kubernetes.io/cce-load-balancer-id: <LoadBalanceId> 注解使用已有负载均衡实例,以及在满足条件时让多个 Service 复用同一个已有 BLB。
说明:
仅CCE LB Controller组件版本为1.30.1及以上支持复用BLB,低版本不支持复用,您可以在集群的组件管理 > 网络中进行版本升级,更多信息请见 CCE LB Controller 说明。
前提条件
- 已创建可访问的 CCE 集群,并已通过
kubectl或 kube-apiserver 具备向目标集群提交Service资源的能力。 - 已准备一个与目标集群处于同一 VPC 内的已有应用型 BLB。
- 如需配置多个 Service 复用同一个已有 BLB,目标集群中的 CCE LB Controller 组件版本需满足复用要求。## 使用负载均衡设置BLB标签行为
创建 LoadBalancer 类型 Service 时新建 BLB 时,CCE 会自动为对应 BLB 设置 cce-created 和 cce-resource-name 标签,标签内容为:
cce-created:<ClusterID>/Service/UID/<Service UID>表示该 BLB 由 CCE 创建,Service 会在销毁时默认删除对应资源。cce-resource-name:<ClusterID>/Service/UID/<Service UID>表示该 BLB 已被集群中对应的 Service 使用。
创建 LoadBalancer 类型 Service 时使用已有 BLB 时,CCE 会自动为对应 BLB 设置 cce-resource-name 标签,CCE LB Controller 组件不同版本的标签内容及作用不同:
- CCE LB Controller 组件版本为 1.30.1 及以上时,标签为
cce-resource-name:<ClusterID>。该标签用于标识已被集群使用,且支持该集群下的其他 Service 复用。删除 Service 时,仅会删除 BLB 中对应的监听器和目标组。 - CCE LB Controller 组件版本低于 1.30.1 时,标签格式为
cce-resource-name:<ClusterID>/Service/UID/<Service UID>。该标签用于标识已被集群中对应的 Service 使用,不支持该集群下的其他 Service 复用。
注意:
请不要修改和删除CCE设置的
cce-created和cce-resource-name这两个标签,否则可能会导致资源泄漏,
使用限制
- 仅支持复用已有应用型负载均衡BLB。
- 复用的BLB需要和集群处于同一个VPC内。
- 不支持复用CCE自动创建的BLB实例。
- 多个Service复用BLB时,Service的端口不能重复。
- 不支持跨集群复用。
Service示例
导航路径:容器引擎 CCE->集群列表->目标集群->基本信息。
在已连接的目标集群中创建 LoadBalancer 类型的 Service,并在 metadata.annotations 中设置 service.beta.kubernetes.io/cce-load-balancer-id 注解。
如需配置多个 Service 复用同一个已有 BLB,请为各 Service 设置相同的 service.beta.kubernetes.io/cce-load-balancer-id 注解,并确保各 Service 的端口不重复。`yaml
apiVersion: v1
kind: Service
metadata:
name:
评价此篇文章
