Kubernetes Pod 无法解析主机:

jac*_*ack 5 kubernetes coredns azure-aks

我已经使用 kubenet 插件设置了 Azure Kubernetes 集群。所有 Pod 和服务都在运行。另外,当我执行 a 时,kubectl get pods -n kube-system 所有 Pod 都在运行。

我遇到的问题是,pod 无法通过主机名连接到其他 pod。但是,如果我使用 pod ip 地址:端口名,它们就能够连接。

当我登录到 pod 并执行 curl ex 时: pod-x$ curl http://my-pod-y:2000/analysis

我收到错误:

无法解析主机http://my-pod-y

但是,当我删除所有具有 kube-system 命名空间的 coredns pod,并在 pod 中重试curl 命令时,它们能够使用主机名访问其他 pod!

但是当我在 10 分钟后尝试时,它给出了无法解析主机错误。

对此的任何指示将不胜感激。

Phi*_*elz 0

Kuberentes 对 POD 使用不同的 DNS 方案。

默认 NS 中 IP 为 172.17.0.3 的 Pod 的 DNS 架构为:

172-17-0-3.default.pod.cluster.local
pod-ip-address.namespace.pod.cluster-domain.example
Run Code Online (Sandbox Code Playgroud)

如果您想使用 DNS 名称,则必须使用服务。对于默认 NS 中的服务测试,DNS 记录为:

test.default.svc.cluster.local
svc.namespace.svc.cluster-domain.example
Run Code Online (Sandbox Code Playgroud)

您可以在这里检查:https ://kubernetes.io/docs/concepts/services-networking/dns-pod-service/