【问题标题】:Nginx-ingress - Wrong src client ip (X-Real-Ip)Nginx-ingress - 错误的 src 客户端 ip (X-Real-Ip)
【发布时间】:2019-12-07 19:31:19
【问题描述】:

在 Kubernetes(通过 helm 安装)中使用 nginx-ingress 时,X-Real-Ip 不是我的真实 IP(不保留原始客户端 IP)

我按照建议尝试了externalTrafficPolicy: "Local"use-proxy-protocol: "true",但没有帮助...

【问题讨论】:

  • 你能发布你的入口和服务吗?
  • @Crou 这是nginx-ingress 的一个众所周知的问题

标签: kubernetes kubernetes-helm nginx-ingress


【解决方案1】:

您能否向我们提供更多信息,例如您使用的service

快速猜测,您似乎在错误的服务上应用了externalTrafficPolicy: "Local"

我之前也将它应用到我的 NodePort 服务而不是 Nginx 服务,但它不起作用

请检查LoadBalancer类型的服务,它通常命名为nginx-nginx-ingress-controller,快速kubectl get services --all-namespaces可以显示所有正在运行的服务的列表。

TLDL

Local 表示当数据包到达某个 pod 时,kube proxy 只会在同一个节点的 pod 内分配负载,即使同一个集群中的其他 pod 负载较少。

另一方面,在设置Cluster 值时,平衡不仅考虑节点,还考虑分配请求的 pod 数量,为了避免不平衡,Kubernetes 会在集群内进行平衡。

https://medium.com/pablo-perez/k8s-externaltrafficpolicy-local-or-cluster-40b259a19404

https://github.com/jetstack/kube-lego/issues/57#issuecomment-277777686

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2021-06-08
    • 2012-01-05
    • 2021-09-21
    • 2017-02-08
    • 2012-12-30
    • 2022-01-18
    相关资源
    最近更新 更多