gpt4 book ai didi

nginx - 使用 azure aks 获取客户端原始 IP 地址

转载 作者:行者123 更新时间:2023-12-05 01:10:58 27 4
gpt4 key购买 nike

我目前正在将 AWS EKS 集群复制到 Azure AKS。在我们的 EKS 中,我们使用带有代理协议(protocol)的外部 Nginx 来识别客户端真实 IP 并检查它是否在我们的 Nginx 中列入白名单。
在 AWS 中我们为 Kubernetes 服务注解添加了 aws-load-balancer-proxy-protocol 以支持 Nginx proxy_protocol 指令。

现在这一天已经到来,我们希望也在 Azure AKS 上运行我们的集群,我正在尝试执行相同的机制。
我看到 AKS 负载均衡器对 IP 进行哈希处理,所以我从我的 Nginx conf 中删除了 proxy_protocol 指令,我尝试了几件事,我知道 Azure 负载均衡器不用作代理,但我确实在这里阅读: AKS Load Balancer Standard
我尝试使用 loadBalancerSourceRanges api 在 Kubernetes 服务级别将 IP 列入白名单,而不是在 Nginx 级别。

但我认为负载均衡器将 IP 发送到已经散列的集群(这是正确的术语吗?)并且集群似乎忽略了 loadBalancerSourceRanges 下的 ips 并通过它们。

我现在正试图了解我缺乏知识的地方,我试图从两端(负载均衡器和 kubernetes 服务)处理它,但他们似乎都不与我合作。
鉴于我的失败,将客户端真实 IP 地址传递给我的 AKS 群集的“正确”方式是什么?

最佳答案

来自文档:https://learn.microsoft.com/en-us/azure/aks/ingress-basic#create-an-ingress-controller

If you would like to enable client source IP preservation for requeststo containers in your cluster, add --set controller.service.externalTrafficPolicy=Local to the Helm installcommand. The client source IP is stored in the request header underX-Forwarded-For. When using an ingress controller with client sourceIP preservation enabled, SSL pass-through will not work.

更多信息也在这里:https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip

您可以使用 real_ipgeo 模块来创建 IP 白名单配置。或者,loadBalancerSourceRanges应该让您通过更新关联的 NSG 将任何客户端 IP 范围列入白名单。

关于nginx - 使用 azure aks 获取客户端原始 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63547564/

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