我目前正在致力于将 AWS EKS 集群复制到 Azure AKS。在我们的 EKS 中,我们使用带有代理协议的外部 Nginx 来识别客户端真实 IP 并检查它是否在我们的 Nginx 中列入白名单。
为此,我们在 AWS 中添加了 Kubernetes 服务注释aws-load-balancer-proxy-protocol以支持 Nginxproxy_protocol指令。
现在这一天已经到来,我们希望也在 Azure AKS 上运行我们的集群,我正在尝试执行相同的机制。
我看到 AKS 负载均衡器对 IP 进行哈希处理,因此我proxy_protocol从 Nginx 配置中删除了该指令,我尝试了几件事,我知道 Azure 负载均衡器不用作代理,但我确实在这里阅读:
AKS 负载均衡器标准
我尝试将 IP 列入白名单在 Kubernetes 服务级别使用loadBalancerSourceRangesapi,而不是在 Nginx 级别。
但我认为负载均衡器将 IP 发送到已经散列的集群(这是正确的术语吗?),并且集群似乎忽略了下面的 iploadBalancerSourceRanges并传递它们。
我现在陷入困境,试图了解我缺乏知识的地方,我尝试从两端(负载均衡器和 kubernetes 服务)处理它,但它们似乎都不与我合作。
鉴于我的失败,将客户端真实 IP 地址传递到我的 AKS 群集的“正确”方法是什么?