我在Google Container Engine上有一个简单的容器,它已运行数月,没有问题。突然,我无法解析任何外部域。在进行故障排除时,我已经多次重新创建容器,并将群集版本升级到1.4.7,试图解决问题而无需更改。外部DNS解析在容器引擎中停止工作
为了排除应用程序代码进行尽可能多的,甚至是基本的Node.js代码无法解析外部域:
const dns = require('dns');
dns.lookup('nodejs.org', function(err, addresses, family) {
console.log('addresses:', addresses);
});
/* logs 'undefined' */
在本地机器或本地搬运工集装箱作品上的同跑预期。
这kubectl调用失败,以及:
# kubectl exec -ti busybox -- nslookup kubernetes.default
nslookup: can't resolve 'kubernetes.default'
两个显示越来越KUBE-DNS吊舱(当然不知道这是预期)
# kubectl get pods --namespace=kube-system -l k8s-app=kube-dns
NAME READY STATUS RESTARTS AGE
kube-dns-v20-v8pd6 3/3 Running 0 1h
kube-dns-v20-vtz4o 3/3 Running 0 1h
都试图检查时说,这时候对于DNS pod中的错误:
# kubectl logs --namespace=kube-system pod/kube-dns-v20-v8pd6 -c kube-dns
Error from server: container kube-dns is not valid for pod kube-dns-v20-v8pd6
我期望内部创建的kube-dns不正确拉外部DNS结果或其他一些联系消失。
我会接受几乎任何解决方法,因为这是一个生产应用程序 - 也许可以在Kubernetes控制器YAML文件或其他位置手动设置名称服务器。在Dockerfile中设置/etc/resolv.conf的内容似乎不起作用。