首页 文章

Kubernetes的服务发现

提问于
浏览
0

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

curl https://monitoring-influxdb:8083

我收到了错误

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

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

以供参考:

kubeDNS controller yaml files

kubeDNS service yaml file

kubelet flags

output of kubectl get svc in default and kube-system namespaces

2 回答

  • 4

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

    您将希望以 <servicename>.<namespace><servicename>.<namespace>.svc.cluster.local 的形式利用服务的DNS . 要在运行中看到这一点,请使用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
    
  • 0

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

相关问题