首页/云/Kubernetes 速查/externalTrafficPolicy 源 IP 保留
网络与服务55 条

externalTrafficPolicy 源 IP 保留

NodePort/LoadBalancer 的流量分布策略:Cluster(默认,可跨节点转发)与 Local(只转发本节点后端,保留客户端源 IP、少一跳)。

Kubernetes 速查云更新于 2026-10-12

策略对比

取值行为代价
Cluster流量可转发到任意节点后端源 IP 经 SNAT 丢失,多一跳
Local只转发到本节点上的后端 Pod节点无后端时不接流量;源 IP 保留

配置与观察

配置与观察
spec:
  externalTrafficPolicy: Local

命令

命令
kubectl get svc web-lb -o jsonpath='{.spec.externalTrafficPolicy}'
kubectl get pods -o wide -l app=web    # 对照后端分布的节点
需要真实客户端 IP(风控、限流、审计)时用 Local,并保证后端在足够多的节点上有副本。

易错点

  • Local 时若某节点没有后端副本,该节点进来的流量被丢弃(云 LB 健康检查通常据此摘节点)
  • 配合 PDB/反亲和让后端分散到多节点,否则 Local 会把流量压到少数节点

数据来源与参考

  • Kubernetes 官方文档 · Service(Traffic Policies)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌