gpt4 book ai didi

kubernetes - 使用负载均衡器时在kubernetes日志中查看客户端ip地址

转载 作者:行者123 更新时间:2023-12-04 15:48:54 25 4
gpt4 key购买 nike

我在 GKE 上托管我的应用程序。服务器安装的kubectl版本是v1.10.11-gke.1,nginx-ingress是nginx-ingress-0.28.2

我想在我的日志中看到客户端 IP 地址。目前,我只能看到 pod IP 地址,例如:

2019-02-14 15:17:21.000 吃
10.60.1.1 - [10.60.1.1] - - [14/Feb/2019:12:17:21 +0000] "GET/user HTTP/2.0"404 9 "-""Mozilla/5.0 (Macintosh;

我的服务有 letsencrypt 管理的 tls。如何在日志中获取客户端 IP 地址?

screenshot of log files

最佳答案

我重现了您在测试中观察到的行为。在我自己的容器日志中,在使用 nginx-ingress Controller 运行的作业中,我们只能看到内部 IP 地址,假设 nginx-ingress-controller 服务 YAML 文件设置为:

externalTrafficPolicy: Cluster

将流量设置为“集群”意味着所有节点都可以接收请求。 '集群隐藏客户端源IP',请求也可以是SNAT'd到具有正在运行的 pod 的节点。

但是,如果你改变:

externalTrafficPolicy: Local

客户端源IP暴露。 “本地”保留了客户端源 IP,但可能会导致流量传播不平衡。这是因为只有运行 Pod 的节点才会被网络负载均衡器视为健康。请求将仅发送到健康节点。

有关如何 preserve source IP 的一些背景说明在您的容器中,并进一步阅读有关 Type=Nodeport 服务的源 IP 跃点的信息有助于了解正在发生的事情。

关于kubernetes - 使用负载均衡器时在kubernetes日志中查看客户端ip地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54690421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com