我找不到一种方法来使一个nginx荚解析另一个kubernetes服务URL。
我不使用kube2sky ,我们只使用kube2sky,我们还不打算实现kube2sky,所以我需要在这个场景中修复。
例如,我希望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和配置172.40.0.2:53中指定的skydns IP
etcdctl get /skydns/config
{"dns_addr":"0.0.0.0:53","ttl":4294967290,"nameservers":["172.40.0.2:53"]}但是nginx还不能解析URL。
对于kubernetes和skydns配置,我应该在nginx配置中的解析器字段中指定什么IP?
记住我们没有库贝-dns。
谢谢。
发布于 2018-11-05 18:20:05
我不认为解决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主程序对话,并接收运行的pods的更新,这样SRV条目就可以得到更新。
https://stackoverflow.com/questions/53159623
复制相似问题