Openshift中的NGINX-NGINX无法解析内部主机名

时间:2019-03-02 14:56:02

标签: nginx dns openshift openshift-origin resolver

当使用变量重写并代理Nginx容器的proxy_pass配置中的内部Openshift服务时,由于需要解析器,NGINX无法解析服务的DNS。例如:

kube-dns.kube-system.svc.cluster.local

使用标准Kubernetes时,我可以使用resolver kube-dns.kube-system.svc.cluster.local; 作为解析器:

/etc/resolv.conf

但是Openshift不提供此功能。我尝试使用容器nslookup service.namespace.svc中的IP,该IP只是群集中运行DNS服务器的节点之一,但仍然无法解析。

最奇怪的部分是/etc/resolv.conf,来自集装箱码头内部,它使用pandas中的名称服务器,并且工作正常。

我可以使用Openshift中的Kubernetes DNS主机名等效项,还是解决该问题的另一种解决方案?

3 个答案:

答案 0 :(得分:1)

在 OpenShift 4.7 中运行 ngnix 我能够通过添加来解决这个问题

resolver dns-default.openshift-dns.svc.cluster.local

server 配置。显然,ngnix 没有解析 /etc/resolv.conf,但是(在我的例子中),dns-default.openshift-dns.svc.cluster.local 也解析为 172.30.0.10,它被定义为 nameserver 中的 /etc/resolv.conf

答案 1 :(得分:0)

答案 2 :(得分:0)

在Openshift群集中,每个主节点上都有SkyDNS服务。通常它会监听8053端口。只要将它们用作nginx config的解析器,就可以了:

resolver your-openshift-master-node1-ip:8053 your-openshift-master-node2-ip:8053;