在Kubernetes中DNS服务如何工作?

时间:2019-06-13 08:31:03

标签: kubernetes dns

我是Kubernetes的新手,我试图了解如何将其应用于我的用例场景。 我设法在同一网络中的VM上安装了一个3节点群集。搜索有关K8S的概念并阅读相关文章,仍然找不到以下问题的答案。如果您对此有所了解,请告诉我:

我注意到K8S的内部DNS服务适用于Pod,因此服务可以使用主机名而不是IP相互查找。

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

这个问题的原因是我想到的情况:

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

1 个答案:

答案 0 :(得分:1)

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

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

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