Internal-Dns
Kubernetes Pod DNS 解析
目前能夠將所有服務解析為 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/
這是可能出錯的一件事。您可能想提供有關您的特定案例的更多資訊。