NGINX в Openshift - NGINX не может разрешить внутренние имена хостов - PullRequest
0 голосов
/ 02 марта 2019

При использовании переменной для перезаписи и прокси во внутреннюю службу Openshift в конфигурации proxy_pass контейнера nginx, 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 не предоставляет этого.Я попытался использовать IP-адрес в контейнере /etc/resolv.conf, который является лишь одним из узлов в моем кластере, на котором работает DNS-сервер, но он все еще не может разрешить.

Самая странная частьnslookup service.namespace.svc изнутри контейнерного терминала использует сервер имен в /etc/resolv.conf, и он отлично работает.

Есть ли эквивалент OpenNift для имени хоста Kubernetes DNS или, возможно, другое решение, чтобы обойти это?

1 Ответ

0 голосов
/ 02 марта 2019

С https://docs.openshift.com/container-platform/3.11/architecture/networking/networking.html#architecture-additional-concepts-openshift-dns, похоже, что должно работать следующее

<service>.<pod_namespace>.svc.cluster.local
...