来自pod内部的ibm-cloud-private DNS或Internet问题

时间:2018-06-12 18:37:36

标签: ibm-cloud-private

我一直在试验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这些外部站点。

有关如何解决此问题的任何建议?谢谢!

1 个答案:

答案 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);
}