【问题标题】:How DNS service works in the Kubernetes?DNS 服务如何在 Kubernetes 中工作?
【发布时间】:2019-10-27 19:26:19
【问题描述】:

我是 Kubernetes 的新手,我试图了解如何将它应用到我的用例场景中。 我设法在同一网络内的虚拟机上安装了一个 3 节点集群。搜索 K8S 的概念并阅读相关文章,我仍然无法找到以下问题的答案。如果您有这方面的知识,请告诉我:

我注意到 K8S 的内部 DNS 服务适用于 Pod,这样服务可以通过主机名而不是 IP 来找到彼此。

这适用于不同节点的 pod 之间的通信还是仅在单个节点内的服务内? (换句话说,我们在 K8S 中是否有节点级别的 dns 服务,还是只有关于 pod 的服务?)

这个问题的原因是我想到的场景:

我需要使用 K8S 部署一个微服务应用程序(用 Java 编写)。我从我的应用程序中的每个服务制作了 docker 图像,并在本地工作。目前,这些服务通过预定义的 IP 地址连接。 有没有办法在单独的 K8S 节点中运行这些服务中的每一个,并使用其 DNS 服务来连接节点而无需预先定义 IP?

【问题讨论】:

标签: kubernetes dns


【解决方案1】:

服务充当内部端点和(取决于配置)负载均衡器到它后面的一个或多个 Pod。所有通信通常在服务之间完成,而不是在 Pod 之间。 Pod 在节点上运行,服务实际上并不运行任何东西,它们只是将流量路由到适当的 Pod。

服务是集群范围的配置,不依赖于节点,因此您可以在整个集群中使用服务名称,完全独立于 pod 所在的位置。

是的,您在不同节点上运行 pod 并在服务名称之间进行通信的用例是典型设置。

【讨论】:

  • 感谢您的回答。我不知道服务独立于 pod 和节点。这样我可以更好地理解它。你知道我是否可以在位于不同物理位置的虚拟机上设置集群,因此它们的 IP 范围不同?还是虚拟机必须具有相似的 IP 范围?
  • 我认为服务是找到我的 metadata.name 而不是主机名
  • 你能解释一下你的意思吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-30
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多