kubernetes - DNS服务在Kubernetes中如何工作?

标签 kubernetes dns

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

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

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

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

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

最佳答案

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

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

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

关于kubernetes - DNS服务在Kubernetes中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56576465/

相关文章:

dns - 将 3 个 SPF 记录合并到同一个记录中

kubernetes - 在 VSTS 中创建 Kubernetes Endpoint 会产生错误

docker - 容器 docker & Kubernetes apache tomcat 8.5.56 http status 404

Kubernetes CI 应用程序/Pod 中可变数量的容器

kubernetes - 我可以在 Docker for Mac 中为 Kubernetes API 使用不安全的端点吗?

python - 用Python实现DNS消息NAME压缩算法

linux - Linux 的 net 组/域的等效命令?

google-app-engine - 自动重定向谷歌应用引擎

kubernetes - 无法读取我新创建的Kubernetes secret

ubuntu - 在 NGINX 中更改域名的最简单方法