You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为ClusterIP Service配置IPVS负载均衡策略?

IPVS负载均衡策略对ClusterIP Service的支持说明

你列出的6种IPVS负载均衡策略全部适用于ClusterIP类型Service,NodePort、LoadBalancer、ExternalIP等所有经过kube-proxy转发的Service类型都支持这些策略。集群默认调度策略为rr(轮询),支持全局默认配置修改、单Service独立配置两种调整方式,配置生效前请先确认集群kube-proxy运行在IPVS模式:

# 校验kube-proxy代理模式
kubectl get configmap kube-proxy -n kube-system -o yaml | grep -A1 ipvs
# 输出中mode字段为ipvs即为正常,若为iptables模式需先切换至IPVS再做后续配置
# 可通过ipvsadm命令校验规则是否正常下发
kubectl exec -it kube-proxy-<你的kube-proxy pod后缀> -n kube-system -- ipvsadm -ln

具体配置方式

全局默认策略修改

直接编辑kube-system命名空间下的kube-proxy ConfigMap,在ipvs配置块下修改scheduler字段为目标策略即可,支持的取值对应关系:

  • rr:轮询(默认值)
  • lc:最小连接数(优先转发给当前活跃连接数最少的后端Pod)
  • dh:目标地址哈希
  • sh:源地址哈希
  • sed:最短预期延迟
  • nq:永不排队

配置片段参考:

ipvs:
  scheduler: "lc" # 填写你需要设置的全局默认策略
  minSyncPeriod: 0s
  syncPeriod: 30s

保存配置后kube-proxy会自动热加载规则,无需重启Pod,等待30-60秒后通过ipvsadm -ln即可看到所有Service对应的调度规则已更新。

单Service自定义策略

如果仅需要给特定Service设置独立的负载均衡策略,不需要调整全局默认值,直接给目标Service添加对应annotation即可,该配置优先级高于全局默认配置:

apiVersion: v1
kind: Service
metadata:
  name: test-clusterip-svc
  annotations:
    kube-proxy.alpha.kubernetes.io/ipvs-scheduler: "sed" # 填写该Service专属调度策略
spec:
  type: ClusterIP
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: test-app

添加annotation后同样等待数十秒,即可通过ipvsadm看到对应虚拟IP的调度规则已更新。

实践参考

  1. 你提到的无会话保持场景选择lc或sed的思路完全合理,尤其适用于后端Pod资源规格不一致、请求处理耗时差异大、长连接占比高的业务(比如gRPC、WebSocket服务):默认rr策略仅按固定顺序轮询转发,完全不感知后端实际负载,很容易出现部分Pod连接堆积、部分Pod闲置的问题;lc会优先选择活跃连接数最少的后端,sed会在最小连接数基础上额外考量转发延迟,负载均衡效果比默认rr提升非常明显。
  2. 有会话保持需求时不建议硬用sh源地址哈希策略,直接使用Service原生的sessionAffinity: ClientIP配置即可,IPVS模式下会自动适配规则,还支持自定义会话超时时间,灵活性远高于直接指定sh调度器。
  3. nq策略适合请求处理时延极低的场景(比如静态资源服务、纯缓存查询接口):请求到来时如果有空闲Pod会直接转发,不会进入排队流程,无空闲Pod时才会走最小连接数逻辑,尾延迟表现比lc更好。
  4. dh目标地址哈希策略基本只在对接外部负载均衡、需要按目标地址固定调度的场景使用,纯集群内ClusterIP Service几乎用不到,不建议随意配置。
  5. 踩坑提示:如果集群使用Cilium、Calico等替代kube-proxy实现的CNI插件,需要提前确认对应CNI对IPVS调度策略的支持情况,部分CNI默认不接管该类annotation配置,修改后不会生效。

内容的提问来源于stack exchange,提问作者dei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:27:29