Kubernetes: kube-dns - 不能使用简短的 dns 条目

创建于 2016-06-29  ·  1评论  ·  资料来源: kubernetes/kubernetes

我们遇到了一个问题,我们有 2 个服务正在运行; auth-api 和 rabbit-mq。 从 auth-ui pod 中,我们试图让它找到 rabbit-mq pod,以便它可以从队列中读取。

当我们使用简短的 DNS 名称时: rabbitmq-master ,我收到以下错误;

kubectl exec auth-api-jf2ec -i nslookup rabbitmq-master
nslookup: can't resolve '(null)': Name does not resolve

nslookup: can't resolve 'rabbitmq-master': Try again
error: error executing remote command: Error executing command in container: Error executing in Docker Container: 1

如果我使用完整的 DNS 名称: rabbitmq-master.default.svc.cluster.local ,它可以正常工作:

kubectl exec auth-api-jf2ec -i nslookup rabbitmq-master.default.svc.cluster.local

Name:      rabbitmq-master.default.svc.cluster.local
Address 1: 10.0.61.158 ip-10-0-61-158.eu-west-1.compute.internal
nslookup: can't resolve '(null)': Name does not resolve

所以我们可以只使用完整的 DNS,但这意味着我们需要为我们想要使用的每个客户命名空间更改我们的部署脚本。

我检查了我们的集群,kube-dns pod 已启动并正在运行。

$ k get --all-namespaces pods
NAMESPACE     NAME                                                              READY     STATUS    RESTARTS   AGE
default       auth-api-jf2ec                                                    1/1       Running   0          15h
default       rabbitmq-master-6yu3o                                             1/1       Running   0          15h
kube-system   elasticsearch-logging-v1-o24ye                                    1/1       Running   0          6d
kube-system   elasticsearch-logging-v1-vlvw0                                    1/1       Running   1          6d
kube-system   fluentd-elasticsearch-ip-172-0-0-32.eu-west-1.compute.internal   1/1       Running   1          6d
kube-system   fluentd-elasticsearch-ip-172-0-0-33.eu-west-1.compute.internal   1/1       Running   0          6d
kube-system   fluentd-elasticsearch-ip-172-0-0-34.eu-west-1.compute.internal   1/1       Running   0          6d
kube-system   heapster-v1.0.2-2148290995-zl3wq                                  4/4       Running   0          6d
kube-system   kibana-logging-v1-e3ci3                                           1/1       Running   3          6d
kube-system   kube-dns-v11-ju72c                                                4/4       Running   0          6d
kube-system   kube-proxy-ip-172-0-0-32.eu-west-1.compute.internal              1/1       Running   1          6d
kube-system   kube-proxy-ip-172-0-0-33.eu-west-1.compute.internal              1/1       Running   0          6d
kube-system   kube-proxy-ip-172-0-0-34.eu-west-1.compute.internal              1/1       Running   0          6d
kube-system   kubernetes-dashboard-v1.0.1-tbyn2                                 1/1       Running   1          6d
kube-system   monitoring-influxdb-grafana-v3-gm426                              2/2       Running   0          6d

这是 auth-api pod 上/etc/resolv.conf文件的输出:

$ kubectl exec auth-api-jf2ec -i cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local eu-west-1.compute.internal
nameserver 10.0.0.10
options nods:5

我是否错误地配置了某些东西/根本没有配置任何东西?

最有用的评论

有一个信息关键部分,我错过了过这个问题......我们使用alpine:3.3作为基地,图像和不支持search指令在/etc/resolv.conf

升级到alpine:3.4 ,问题就解决了。

希望这对某人有用。

>所有评论

有一个信息关键部分,我错过了过这个问题......我们使用alpine:3.3作为基地,图像和不支持search指令在/etc/resolv.conf

升级到alpine:3.4 ,问题就解决了。

希望这对某人有用。

此页面是否有帮助?
0 / 5 - 0 等级