为 Kubernetes 入口保留客户端源 IP?

Preserve client source IP for Kubernetes ingress?

我正在使用这个 Ingress,它类似于 Nginx:https://cloud.ibm.com/docs/containers?topic=containers-ingress_annotation#general

当我这样做时:

request -> LoadBalancer Service -> client source public IP returned
request -> Ingress -> LoadBalancer Service -> some private IP returned

我想保留客户端来源public IP。在我的服务中,我正在设置 ExternalTrafficPolicy: Local,它在直接点击 LoadBalancer 时有效,但我不知道在通过 Ingress 时我需要什么设置。

要保留 Ingress 源 IP,请参阅以下步骤:https://cloud.ibm.com/docs/containers?topic=containers-comm-ingress-annotations#preserve_source_ip_classic

基本上您所做的与您所描述的相同,只是您编辑了现有的 alb 服务。


步骤:

  • kubectl edit svc -n kube-system
  • 根据规范,将 externalTrafficPolicy 的值从 Cluster 更改为 Local。