【问题标题】:Service discovery on KubernetesKubernetes 上的服务发现
【发布时间】:2017-10-23 14:29:29
【问题描述】:

我在裸机 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

【问题讨论】:

  • 从哪里运行curl 命令?从集群内部?
  • 是的,来自主节点
  • 本文向您展示了从一个 Pod 到另一个 Pod 的服务发现,因此为了匹配它,您应该从 Pod/容器内的交互式会话中运行 curl 命令。您还可以根据kubernetes.io/docs/concepts/services-networking/dns-pod-service 的文档仔细检查它是否与服务发现模式匹配 - 即 ...svc.cluster.local
  • @Ryan 这需要在 Kubernetes 中运行。在命名空间kube-system 中创建一个 pod 并在 pod 中尝试。

标签: kubernetes kube-dns


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-27
      • 2017-08-26
      • 2018-04-21
      • 2018-07-19
      • 2021-04-22
      • 2019-01-29
      • 2016-02-22
      • 1970-01-01
      相关资源
      最近更新 更多