0

所以我有一个部署,它创建了 N 个工作 pod,以及一个内部平衡流量的服务。我从虚拟机访问服务。VM 发出请求,Pod 以它的主机名响应,以便 VM 可以直接连接到它(这用于从实际完成工作的 Pod 中拉回结果)。

我遇到的问题是我的 pod 正在返回虚拟机无法解析的 my-pod-5ff75ddd86-2xdjq 主机名。我想知道是否可以将 pod 的主机名设置为其 IP,因为这意味着我不必更改 pod 中的任何代码或在我的 VM 中运行的工具。

4

2 回答 2

2

如果您不想更改代码,则需要公开kube-dns集群的内部并将其设置为 VM 的默认 DNS 服务器。

关于那个另一个问题有一些信息

如何为集群外的查询公开 kube-dns 服务?

在 nginx-controller 文档中,您有一个在 UDP 上公开 53 端口的好例子

https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/

通过启动并运行 nginx 控制器,您必须正确创建一个入口以供该控制器使用,然后只需添加以下内容configMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: udp-services
  namespace: ingress-nginx
data:
  53: "kube-system/kube-dns:53"
于 2019-07-30T09:52:44.530 回答
1

根据您的集群设置,您的 VM 可能即使使用其 IP 也无法连接到该 pod。默认情况下,Pod IP 位于只能在集群内部访问的覆盖网络上。

如果 VM 在集群中,您确定您针对 kube DNS 正确引用了 pod 主机名吗?这是有关 pod 的 DNS 的文档

于 2019-07-30T13:40:50.030 回答