【问题标题】:How to get the real ip in the request in the pod in kubernetes如何在kubernetes的pod中获取请求中的真实ip
【发布时间】:2021-01-27 06:34:13
【问题描述】:

我必须从我的业务中的请求中获取真实的 ip。实际上,我每次在我的测试环境中都得到了10.2.100.1。有什么办法吗?

【问题讨论】:

标签: kubernetes


【解决方案1】:

这与GCE + K8S - Accessing referral IP addressHow to read client IP addresses from HTTP requests behind Kubernetes services? 是同一个问题。

从他们那里复制的答案是,这在 Kubernetes 的已发布版本中尚不可能。

服务通过 kube_proxy,它回答客户端连接并代理到后端(您的 Web 服务器)。您看到的地址将是连接通过的任何 kube-proxy 的 IP。

Work 正在使用 iptables 作为代理的solution 上主动完成,这将导致您的服务器看到真实的客户端 IP。

【讨论】:

  • 谢谢亚历克斯,我真的很想要这个!
  • 它将在 1.1(将于 10 月中下旬发布)中通过 kubelet 上的设置提供,默认情况下在 1.2 中提供(大约 3 个月后发布)
【解决方案2】:

尝试获取与该 pod 关联的服务 IP。

【讨论】:

  • 我的意思是,如果我在 kubernetes 集群中部署 Web 服务,我需要知道服务 pod 中客户端请求的源 IP。但我得到了 kube-proxy IP。这没有任何意义
【解决方案3】:

现在一个非常迂回的方法是设置一个 HTTP 活跃度探测并观察它的来源 IP。只要确保也适当地响应它,否则它会假定您的 pod 已关闭。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 2017-06-14
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2017-05-24
    相关资源
    最近更新 更多