Internal-Dns

Kubernetes Pod DNS 解析

  • March 19, 2020

目前能夠將所有服務解析為 IP 地址和 telnet 並 ping 它們。無法將 pod 解析為 IP 地址。雖然可以使用 kubectl 和 telnet 查找 pod IP 地址並 ping 它們。我需要如何配置 DNS 來解析 Kubernetes 1.9.6、dns-controller:1.9.1 中的 pod。

@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

好處是它在執行後刪除了部署/ Pod。


對我來說,問題是我的 pod 處於 statefulset 中,因此 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/

這是可能出錯的一件事。您可能想提供有關您的特定案例的更多資訊。

引用自:https://serverfault.com/questions/929211