我在使用kube-up.sh
部署的AWS上使用Kubernetes v1.0.6。
集群正在使用kube-dns
。
$ kubectl get svc kube-dns --namespace=kube-system
NAME LABELS SELECTOR IP(S) PORT(S)
kube-dns k8s-app=kube-dns,kubernetes.io/cluster-service=true,kubernetes.io/name=KubeDNS k8s-app=kube-dns 10.0.0.10 53/UDP
效果很好。
$ kubectl exec busybox -- nslookup kubernetes.default
Server: 10.0.0.10
Address 1: 10.0.0.10 ip-10-0-0-10.eu-west-1.compute.internal
Name: kubernetes.default
Address 1: 10.0.0.1 ip-10-0-0-1.eu-west-1.compute.internal
这是豆荚的resolv.conf
。
$ kubectl exec busybox -- cat /etc/resolv.conf
nameserver 10.0.0.10
nameserver 172.20.0.2
search default.svc.cluster.local svc.cluster.local cluster.local eu-west-1.compute.internal
是否有可能让容器使用额外的名称服务器?
我有一个基于DNS的辅助服务发现Oon,比如说192.168.0.1),我希望我的kubernetes容器能够用于dns解析。
ps。kubernetes 1.1解决方案也是可以接受的:)
乔治,提前谢谢你
发布于 2015-12-04 10:07:53
最后,我通过配置SkyDNS来添加一个额外的名称服务器,从而很容易地解决了这个问题,您只需在SkyDNS文档复制控制器中添加环境变量SKYDNS_NAMESERVERS
即可。它具有最小的影响,不依赖于节点的变化等。
env:
- name: SKYDNS_NAMESERVERS
value: 10.0.0.254:53,10.0.64.254:53
发布于 2015-10-21 14:30:02
DNS addon自述有一些关于这方面的细节。基本上,pod将继承它正在运行的节点的resolv.conf
设置,因此您可以将额外的DNS服务器添加到节点的/etc/resolv.conf
中。kubelet
还采用了一个论据,它可能为您注入额外的DNS服务器提供一种更显式的方式。不过,我还没有看到任何地方有这面旗帜的记载。
发布于 2015-10-28 18:19:32
在Kuberenetes (可能) 1.2中,我们将转移到一个模型,在这个模型中,假定nameservers
是可替换的。当不同的名称服务器为不同的DNS子集提供服务时,有太多的解析器会中断,而且这里没有我们可以指向的真正的规范。
换句话说,我们将开始从容器的合并resolv.conf中删除主机的名称服务器记录,并使我们自己的DNS服务器成为唯一的nameserver
行。我们的DNS将能够将请求转发给上游名称服务器。
https://stackoverflow.com/questions/33260745
复制相似问题