我找不到让 nginx pod 解析另一个 kubernetes 服务 URL 的方法。
我没有使用 kube-dns,我们只使用 kube2sky 并且我们还不打算实现 kube-dns,所以我需要在这种情况下进行修复。
例如,我希望 nginx 解析服务 URL app.mynamespace.svc.skydns.local
,但如果我对该 URL 运行 ping,它会成功解析。
我的 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
和 配置中指定的 skydns IP 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。
我应该在 nginx 配置的解析器字段中为 kubernetes 和 skydns 配置指定什么 IP?
请记住,我们没有 kube-dns。
谢谢你。