1

我在裸机 kubernetes 集群上设置了 kubeDNS。我认为这将允许我访问此处描述的服务(http:// 对于那些不想点击链接的人),但是当我运行时

curl https://monitoring-influxdb:8083

我得到错误

curl:(6)无法解析主机:monitoring-influxdb

当我对任何命名空间中的服务名称运行 curl 时,情况就是如此。这是我的 kubDNS 设置错误还是我需要采取不同的步骤才能实现这一点?在本文结尾处运行测试时,我得到了预期的输出。

以供参考:

kubeDNS 控制器 yaml 文件

kubeDNS 服务 yaml 文件

kubelet 标志

kubectl 的输出在默认和 kube-system 命名空间中获取 svc

4

2 回答 2

6

您尝试的服务发现记录在https://kubernetes.io/docs/concepts/services-networking/dns-pod-serv ‌​ice,用于一个 pod 内与现有服务进行通信,不是从节点(或主节点)与 Kubernetes 服务对话。

<servicename>.<namespace>您将希望以或的形式将 DNS 用于服务<servicename>.<namespace>.svc.cluster.local。要查看此操作,请使用以下内容启动一个带有 busybox 的交互式 pod(或使用您自己的现有 pod):

  • kubectl run -i --tty alpine-interactive --image=alpine --restart=Never

并在那里提供的外壳中,制作一个 nslookup 命令。从您的示例中,我猜您正在尝试从https://github.com/kubernetes/heapster/tree/master/deploy/kube-config/influxdb访问 influxDB ,然后它将被安装到kube-system命名空间中,并且您在集群内部从另一个 Pod 使用的服务名称将是:

  • monitoring-influxdb.kube-system.svc.cluster.local

例如:

kubectl run -i --tty alpine --image=alpine --restart=Never
If you don't see a command prompt, try pressing enter.
/ # nslookup monitoring-influxdb.kube-system.svc.cluster.local
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      monitoring-influxdb.kube-system.svc.cluster.local
Address 1: 10.102.27.233 monitoring-influxdb.kube-system.svc.cluster.local
于 2017-10-23T21:05:31.783 回答
1

正如@Michael Hausenblas 在评论中指出的那样,curl http://monitoring-influxdb:8086需要从一个吊舱内运行。这样做提供了预期的结果

于 2017-10-26T16:52:40.473 回答