Nginx 如何使用Kubernetes DNS查找从

Nginx 如何使用Kubernetes DNS查找从,nginx,kubernetes,dns,kubernetes-ingress,Nginx,Kubernetes,Dns,Kubernetes Ingress,我已经在我的K8集群中编写了一个NGINX whitelister服务。因为进入集群的所有内容都要通过负载平衡器,所以我必须将转发的IP地址(而不是直接将源IP)列入白名单 在测试中,我在NGINX配置中硬编码如下: set_real_ip_from x.x.x.x; real_ip_header X-Forwarded-For; 其中x.x.x.x是负载平衡器的IP 这起作用了 我无法在实际部署中对IP进行硬编码,因此我希望使用kube dns服务,就像我用于proxy\u pass: re

我已经在我的K8集群中编写了一个NGINX whitelister服务。因为进入集群的所有内容都要通过负载平衡器,所以我必须将转发的IP地址(而不是直接将源IP)列入白名单

在测试中,我在NGINX配置中硬编码如下:

set_real_ip_from x.x.x.x;
real_ip_header X-Forwarded-For;
其中
x.x.x.x
是负载平衡器的IP

这起作用了

我无法在实际部署中对IP进行硬编码,因此我希望使用
kube dns
服务,就像我用于
proxy\u pass

resolver kube-dns.kube-system.svc.cluster.local;
proxy_pass http://{service}.{namespace}.svc.cluster.local:$server_port;
这同样有效

但是,此DNS查找似乎不适用于
设置\u real\u ip\u from

resolver kube-dns.kube-system.svc.cluster.local;
set_real_ip_from {load balancer service}.kube-system.svc.cluster.local;
real_ip_header X-Forwarded-For;
当我运行这个程序时,我只得到了规则禁止的
访问,客户端:x.x.x.x
(它不在白名单中),其中
x.x.x
是负载平衡器的IP。这有点道理,因为
set\u real\u ip\u from
可能不知道如何查找ip

是否可以让NGINX对转发器地址进行DNS查找?

如果没有,也许有人有更好的方法


谢谢

我想我只是需要好好考虑一下。比我做的简单多了

我知道负载平衡器应该属于哪个范围,所以我可以从为
set\u real\u ip\u执行一个CIDR块

例如:

set_real_ip_from 10.60.0.0/16;
real_ip_header X-Forwarded-For;

而且不需要DNS查找。

您可以附上您的yaml定义文件,例如负载平衡器服务的文件吗?
kube-dns.kube-system.svc.cluster.local是否可以从nginx-pod解析?