Kubernetes Pod DNS 解析

the*_*ank 4 internal-dns kubernetes

目前能够将所有服务解析为 IP 地址并进行 telnet 和 ping 操作。无法将 Pod 解析为 IP 地址。虽然可以使用 kubectl 和 telnet 查找 pod IP 地址并对它们执行 ping 操作。我需要如何配置 DNS 来解析 Kubernetes 1.9.6、dns-controller:1.9.1 中的 pod。

Bre*_*dly 6

@mk_sta 的答案更容易使用,您可以运行这个班轮来测试您的 DNS:

kubectl run busybox --image=busybox --rm --attach --command -- sh -c "cat /etc/resolv.conf; nslookup $POD.$NAMESPACE.pod.cluster.local"

输出示例:

If you don't see a command prompt, try pressing enter.

Server:         100.64.0.10
Address:        100.64.0.10:53


*** Can't find $POD.$NAMESPACE.pod.cluster.local: No answer

deployment.apps "busybox" deleted
Run Code Online (Sandbox Code Playgroud)

好处是它会在运行后删除部署/pod。


对我来说,问题是我的 Pod 处于有状态集中,因此 Pod DNS 解析有点不同。你必须使用(例如):

web-{0..N-1}.nginx.default.svc.cluster.local

pod-N.$GOVERNING_STATEFULSET.$NAMESPACE.svc.cluster.local

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

这是可能出错的一件事。您可能想提供有关您的具体案例的更多信息。