Резольвер Nginx для Кубернетес со скиднами - PullRequest
0 голосов
/ 05 ноября 2018

Я не могу найти способ заставить модуль nginx разрешать URL-адреса других сервисов kubernetes.

Я НЕ использую kube-dns , мы используем исключительно kube2sky и пока не собираемся внедрять kube-dns, поэтому мне нужно исправить в этом сценарии.

Например, я хочу, чтобы nginx разрешил URL-адрес службы app.mynamespace.svc.skydns.local, но если я запускаю эхо-запрос на этот URL-адрес, он разрешается успешно.

Моя часть конфигурации nginx:

location /api/v1/namespaces/mynamespace/services/app/proxy/ {
          resolver 127.0.0.1
          set \$endpoint \"http://app.mynamespace.svc.skydns.local/\";
          proxy_pass \$endpoint;
          proxy_http_version 1.1;
          proxy_set_header Connection \"upgrade\";
        }

Мне нужно указать целевой восходящий поток в переменной, потому что я хочу, чтобы nginx запускался, даже если цель недоступна, если я не указал переменную, nginx аварийно завершает работу при запуске, потому что восходящий поток должен быть доступен и разрешаем.

Проблема, я думаю, заключается в значении решателя, которое я пробовал с 127.0.0.1, с 127.0.0.11 и с IP-адресом skydns, указанным в конфигурации 172.40.0.2:53:

etcdctl get /skydns/config
{"dns_addr":"0.0.0.0:53","ttl":4294967290,"nameservers":["172.40.0.2:53"]}

Но nginx пока не может разрешить URL.

Какой IP-адрес я должен указать в поле решателя в конфигурации nginx для конфигурации kubernetes и skydns?

Помните, что у нас нет kube-dns.

Спасибо.

1 Ответ

0 голосов
/ 05 ноября 2018

Не думаю, что разрешение app.mynamespace.svc.skydns.local имеет какое-либо отношение к настройке вышестоящих DNS-серверов. Как правило, для этого вы настраиваете известный DNS-сервер, такой как 8.8.8.8, или DNS-сервер облачной инфраструктуры, который может быть 172.40.0.2. Например, как описано в документах :

$ curl -XPUT http://127.0.0.1:4001/v2/keys/skydns/config \
-d value='{"dns_addr":"127.0.0.1:5354","ttl":3600, "nameservers": ["8.8.8.8:53","8.8.4.4:53"]}'

Возможно, вы захотите проверить журналы вашего модуля kube2sky2 для получения каких-либо указаний и чтобы все параметры конфигурации были указаны как --kube-master-url, --etcd-server. Возможно, он не может общаться с мастером Kubernetes и получать обновления работающих модулей, чтобы записи SRV получали обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...