我一直在试验ICP实例(ICP 2.1.0.2):1个主节点和2个工作节点。
我注意到我的ICP Kubernetes群集中的pod没有出站互联网连接(或者有DNS查询问题)
例如,如果我在群集中启动busybox pod,并尝试执行" nslookup github.com"或者" ping google.com" ..它失败了..
kubectl run curl --image=radial/busyboxplus:curl -i --tty
root@curl-545bbf5f9c-gssbg:/ ]$ nslookup github.com
Server: 10.0.0.10
Address 1: 10.0.0.10
nslookup: can't resolve 'github.com'
我检查了一下" kube-dns" (service,pod,daemonset.extensions,daemonset.apps)似乎确实在运行。
当我登录(例如SSH)ICP主机和工作节点机器时,我能够成功ping这些外部站点。
有关如何解决此问题的任何建议?谢谢!
答案 0 :(得分:0)
我们遇到了一个相反的问题-我们可以在Internet或其他域上查找任何内容,而不能在群集所在的域中查找任何内容。
原来,这是有关config.yaml中cluster_domain和cluster_CA_domain含义的模糊文档。但除此之外,我们还必须学习更多有关这些知识以及有关配置kube-dns的信息。
基本上,cluster_domain应该是kube-dns具有权威性的群集的私有虚拟域。它应将主机的resolve.conf名称服务器用作上游服务器。如果您怀疑自己的DNS服务器没有被用于公共DNS,则可以更新kube-dns configMap来指定它应使用的上游服务器。
https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/
这当然是假设您正确配置了cluster_domain和cluster_CA_domain。
它们应该看起来像
try {
return new Promise((resolve, reject) => {
try{
realm().write(() => {
resolve(realm().create("ServicesModule", {title: 'Test exception'}, true));
});
}catch(error){
reject(error);
}
});
} catch(e) {
console.error(e.message);
}