Service复用已有负载均衡BLB
更新时间:2025-04-01
容器引擎CCE支持通过 service.beta.kubernetes.io/cce-load-balancer-id: <LoadBalanceId>
注解实现使用已有负载均衡的功能,您可使用该注解指定集群Service资源关联的负载均衡实例。当前还支持Service负载均衡复用功能,即指定多个Service使用同一个已有负载均衡,本文将介绍如何配置。
说明:
仅CCE LB Controller组件版本为1.30.1及以上支持复用BLB,低版本不支持复用,您可以在集群的组件管理 > 网络中进行版本升级,更多信息请见 CCE LB Controller 说明。
使用负载均衡设置BLB标签行为
创建LoadBalance类型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使用。
创建LoadBalance类型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示例
apiVersion: v1
kind: Service
metadata:
name: service-example
annotations:
prometheus.io/scrape: "true"
service.beta.kubernetes.io/cce-load-balancer-id: lb-xxxxxxxx #指定已有的应用型BLB实例
spec:
selector:
app: nginx
type: LoadBalancer
externalTrafficPolicy: Cluster # 默认值
sessionAffinity: None
ports:
- name: nginx
protocol: TCP
port: 80
targetPort: 80