You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
负载均衡(LoadBalancer)
复用已有负载均衡实例实现跨集群业务部署
复制全文
下载 pdf
复用已有负载均衡实例实现跨集群业务部署
跨集群部署服务能够提升业务的容灾与可靠性,实现高级别安全隔离。但如果每个集群中的 Service 都选择 LoadBalancer 类型,会因为创建多个负载均衡器实例导致资源浪费。您可以在已有负载均衡实例上同时挂载多个集群的内部端点,使用单一负载均衡实例达成跨集群部署服务的目的。​
注意​
  • 注解的内容需要严格区分大小写。​
背景信息​
场景一:将流量转发至集群和外部端点​
您可以在 CLB/NLB 实例上同时挂载集群内的 Service 和集群外的端点(例如 ECS),为部署在容器集群和 ECS 实例上的业务,提供统一的入口。​
​​​
场景二:将流量转发至多个集群内的 Service​
您可以在已有的 CLB/NLB 实例上同时挂载多个不同集群内的 Service,为它们提供统一的入口。当多个 Service 复用同一个 CLB/NLB 实例时,需要共用相同的监听以及后端服务器组。因此,您需要手动为 CLB/NLB 实例配置监听器和后端服务器组,然后在所有 Service 中复用此后端服务器组。同时,监听使用的端口需要与 Service 相同。​
​​​
使用限制​
  • 仅支持复用用户手工创建的 CLB/NLB 实例,不支持复用通过容器服务 LoadBalancer 类型的 Service 自动创建的 CLB/NLB。​
  • 不支持在已有 Service 中,添加、删除或修改service.beta.kubernetes.io/volcengine-loadbalancer-id字段。​
  • 不支持在已有 Service 中,添加、删除或修改service.beta.kubernetes.io/volcengine-loadbalancer-server-group-id字段。​
前提条件​
  • 已创建 CLB/NLB 实例、监听器和后端服务器组。​
  • 如需对接 NLB 实例,请升级 cloud-controller-manager 组件至 v1.45.1 及以上版本。详情请参见 升级组件。​
操作步骤​
​
复用 CLB 实例
复用 NLB 实例
​
在容器服务集群中,使用如下 YAML 配置,创建服务并复用已手动创建的 CLB 实例。​
​
apiVersion: v1​
kind: Service​
metadata:​
annotations:​
service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******" # 必填,已有 CLB 负载均衡实例的 ID​
service.beta.kubernetes.io/volcengine-loadbalancer-server-group-id: "rsp-22j***:80,rsp-22j***:443" # 必填,已有后端服务器组 ID 和端口号​
service.beta.kubernetes.io/volcengine-loadbalancer-weight: "10" # 必填,后端服务器组转发权重​
name: clb-service​
namespace: default​
spec:​
externalTrafficPolicy: Cluster​
selector:​
app: nginx​
ports:​
- name: test​
port: 80​
protocol: TCP​
targetPort: 80​
type: LoadBalancer​
​
​
​
Annotation 说明如下表所示。​
​
字段​
类型​
是否必须​
描述​
默认值​
是否支持修改​
service.beta.kubernetes.io/volcengine-loadbalancer-id​
String​
是​
已存在 CLB/NLB 负载均衡实例的 ID。​
无​
否​
service.beta.kubernetes.io/volcengine-loadbalancer-server-group-id​
String​
是​
已存在的后端服务器组 ID 和端口号。​
说明​
  • 后端服务器组 ID 后的端口号,为 Service spec配置中的port端口,而非target port或node port端口。​
  • 不同组合使用英文逗号隔开,无数量限制。​
无​
否​
service.beta.kubernetes.io/volcengine-loadbalancer-weight​
String​
是​
后端服务器权重。​
  • 整数形式,取值范围为 0~100,权重越大转发的请求越多。​
  • 权重配置为 0 时,表示该服务器不会再接受新请求。​
说明​
更多后端服务器权重含义,请参见 添加/移除后端服务器。​
无​
否​
​
说明​
在使用不同网络模型时,CLB/NLB 实例后端服务器组中挂载的对象不同:​
  • VPC-CNI 网络模型:​
  • 对接 CLB 实例时,默认未开启 Pod 直通模式,即集群会将 Service 后端 Pod 所在节点作为后端服务器挂载在 CLB 后端服务器组中。如果您想要开启 Pod 直通模式,请参见 使用 Annotation 配置 CLB 负载均衡服务。​
  • 对接 NLB 实例时,默认开启 Pod 直通模式,即集群会将 Service 后端 Pod 直接挂载在 NLB 后端服务器组中。​
  • Flannel 网络模型:​
  • 对接 CLB/NLB 实例时,若关联云服务器实例(ECS)方式部署的工作负载,集群会将 Service 后端 Pod 所在节点作为后端服务器挂载在 CLB/NLB 后端服务器组中。​
  • 对接 CLB/NLB 实例时,若关联弹性容器实例(VCI)方式部署的工作负载,集群会将 Pod 直接挂载在 CLB/NLB 后端服务器组中。​
结果验证​
  1. 执行以下命令,查看已创建的服务。​
  • ​
    kubectl get svc -n default​
    ​
  • 预期结果如下。其中,EXTERNAL-IP是与该服务对接的 CLB/NLB 公网 IP 地址。​
  • ​
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE​
    clb-service LoadBalancer 172.xxx.xxx.xxx 14.xxx.xxx.xxx 80:30891/TCP 44s​
    ​
  1. 执行以下命令,查看已创建服务的详细信息。​
  • ​
    kubectl describe svc clb-service -n default​
    ​
  • 预期结果如下。其中,Annotation 中展示了 CLB/NLB 的相关信息,包括:CLB/NLB 实例 ID、后端服务器组 ID 等,与您手工创建 CLB/NLB 实例相同。​
  • ​
    Name: clb-service​
    Namespace: default​
    Labels: service.beta.kubernetes.io/volcengine-loadbalancer-id=clb-22j***​
    Annotations: service.beta.kubernetes.io/system-volcengine-loadbalancer-last-applied-annotations:​
    {"service.beta.kubernetes.io/volcengine-loadbalancer-id":"clb-22j***","service.beta.kubernetes.io/volcengine-loadbalanc...​
    service.beta.kubernetes.io/volcengine-loadbalancer-id: clb-22j***​
    service.beta.kubernetes.io/volcengine-loadbalancer-server-group-id: rsp-22j***:80​
    service.beta.kubernetes.io/volcengine-loadbalancer-weights: 10​
    Selector: app=nginx​
    Type: LoadBalancer​
    IP Family Policy: SingleStack​
    IP Families: IPv4​
    IP: 172.21.xxx.xxx​
    IPs: 172.21.xxx.xxx​
    LoadBalancer Ingress: 14.xxx.xxx.xxx​
    Port: test 80/TCP​
    TargetPort: 80/TCP​
    NodePort: test 30036/TCP​
    Endpoints: 192.168.0.44:80​
    Session Affinity: None​
    External Traffic Policy: Cluster​
    Events:​
    Type Reason Age From Message​
    ---- ------ ---- ---- -------​
    Normal EnsuringLoadBalancer 2m19s (x2 over 2m22s) service-controller Ensuring load balancer​
    Normal EnsuredLoadBalancer 2m18s (x2 over 2m19s) service-controller Ensured load balancer​
    ​
  1. 登录 负载均衡控制台,查看对应的 CLB/NLB 实例和后端服务器组列表,可以查看后端服务器组中新增的后端服务器和权重。​
  • ​alt​​
相关文档​
更多负载均衡服务的 Annotation 配置方法,请参见 使用 Annotation 配置 CLB 负载均衡服务、使用 Annotation 配置 NLB 负载均衡服务。​
​
最近更新时间:2026.07.08 19:46:22
这个页面对您有帮助吗?
有用
有用
无用
无用