Kubernetes的服务发现

Rya*_*yan 1 kubernetes kube-dns

我在裸机kubernetes集群上安装了kubeDNS.我认为这将允许我访问此处所述的服务(http://对于那些不想关注链接的人),但是当我运行时

curl https://monitoring-influxdb:8083
Run Code Online (Sandbox Code Playgroud)

我收到了错误

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

当我在任何命名空间中的服务名称上运行curl时都是如此.这是我的kubDNS设置错误还是我需要采取不同的步骤来实现这一目标?我得到预期的输出,当我运行在结束测试这篇文章.

以供参考:

kubeDNS控制器yaml文件

kubeDNS服务yaml文件

kubelet标志

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

hec*_*ckj 5

您尝试的服务发现记录在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

在那里提供的shell中,创建一个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
Run Code Online (Sandbox Code Playgroud)