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

ev0*_*n37 7 dns nginx resolver openshift openshift-origin

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

location /api/ {
   set $pass_url http://service.namespace.svc:8080$request_uri;
   proxy_pass  $pass_url;
}
Run Code Online (Sandbox Code Playgroud)

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

resolver kube-dns.kube-system.svc.cluster.local;
Run Code Online (Sandbox Code Playgroud)

但是 Openshift 不提供这个。我尝试使用容器中的 IP /etc/resolv.conf,它只是运行 DNS 服务器的集群中的节点之一,但它仍然无法解析。

最奇怪的部分是nslookup service.namespace.svc从容器终端内部使用名称服务器/etc/resolv.conf,它工作正常。

我可以使用 Openshift 中的 Kubernetes DNS 主机名,或者其他解决方案来解决这个问题?