【发布时间】:2019-07-24 09:10:49
【问题描述】:
在 nginx 容器的 proxy_pass 配置中使用变量重写和代理到内部 Openshift 服务时,由于需要解析器,NGINX 无法解析服务的 DNS。例如:
location /api/ {
set $pass_url http://service.namespace.svc:8080$request_uri;
proxy_pass $pass_url;
}
在使用标准 Kubernetes 时,我可以使用kube-dns.kube-system.svc.cluster.local作为解析器:
resolver kube-dns.kube-system.svc.cluster.local;
但 Openshift 不提供此功能。我尝试使用容器/etc/resolv.conf 中的 IP,它只是我集群中运行 DNS 服务器的节点之一,但仍然无法解析。
最奇怪的部分是容器终端内部的nslookup service.namespace.svc,它使用/etc/resolv.conf 中的名称服务器,它工作正常。
我是否可以使用与 Openshift 中的 Kubernetes DNS 主机名等效的名称,或者是否有其他解决方案可以解决这个问题?
【问题讨论】:
标签: nginx dns openshift openshift-origin resolver