跳转至

2026-07-11

今日主题

  • K8s Service 挂载已有云负载均衡的服务器组行为

新增认知

K8s Service 挂载已有云负载均衡的服务器组行为

  • 脉络:从火山引擎到阿里云的服务器组策略对比:对话从一段火山引擎 Service YAML 出发,
    逐步解析了 volcengine-loadbalancer-server-group-id 注解的含义、阿里云是否支持类似能力、以及两者的本质差异。核心发现是:
    火山引擎允许精确指定已有的服务器组 ID,而阿里云 CCM 没有这个能力,只能往默认服务器组加节点——
    这个差异直接影响"已有 SLB 上存在自定义 vServerGroup"场景下的迁移策略。

  • 火山引擎支持精确指定服务器组
    通过 service.beta.kubernetes.io/volcengine-loadbalancer-server-group-id 注解,
    格式为 rsp-xxx:端口,多个用逗号分隔。CCM 会把 K8s Pod 自动注册到指定组,扩缩容时自动更新。
    这使得用户可以在 CLB 已有多个自定义服务器组的情况下,精确控制 Pod 注册到哪个组,而不影响其他组。

  • 阿里云 CCM 只能往默认服务器组加节点:阿里云完整注解列表中没有类似火山引擎的 vServerGroup 指定能力。
    挂载已有 SLB 时(v1.9.3+),CCM 默认不覆盖已有监听器,只管理后端节点——节点被加到每个监听器的默认服务器组(主服务器组)。
    如果监听器转发目标指向自定义虚拟服务器组而非默认组,CCM 加的节点对流量实际不起作用,这是设计上隐含的陷阱。

  • rsp 前缀是火山引擎资源 ID 命名约定:rsp = Resource Server Pool(后端服务器组),
    类似 clb = Container Load Balancer、subnet = 子网。这是火山引擎内部标识资源类型的 ID 前缀,
    与 AWS 的 sg-、lb- 同套路,方便一眼识别资源类型。获取 rsp ID 可通过控制台负载均衡 → 后端服务器组页面查看,
    或调用 DescribeServerGroups API。