我在使用 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
一个 pod 。$ 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 的服务发现(假设是 192.168.0.1),我希望我的 kubernetes 容器能够用于 dns 解析。
附言。 kubernetes 1.1 解决方案也是可以接受的:)
非常感谢您,
乔治
最佳答案
我最终设法通过配置 SkyDNS 来添加一个额外的名称服务器很容易地解决了这个问题,你只需添加环境变量 SKYDNS_NAMESERVERS
如 SkyDNS docs 中所定义在您的 SkyDNS 复制 Controller 中。它的影响很小,并且不依赖于节点更改等。
env:
- name: SKYDNS_NAMESERVERS
value: 10.0.0.254:53,10.0.64.254:53
关于dns - 将名称服务器添加到 Kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260745/