顯示頁面舊版反向連結Fold/unfold all回到頁頂 本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。 ====== 檢測 K8s 內的 DNS ====== K8s 內有自己的網路, 相同 name space 內的服務都可以透過內部網路直接溝通, 也有自己的 DNS 可以將我們建立的 service name 轉成內部的 IP, 因此內部 DNS 如果無法正常運作, 就會造成內部使用 service name 進行溝通的服務出現問題 ===== 檢查是否正常運作 ===== * DNS Pod 是否存在 <cli> kubectl -n kube-system get pods -l k8s-app=kube-dns </cli>結果類似以下<cli> localadmin@devops1:~$ kubectl -n kube-system get pods -l k8s-app=kube-dns NAME READY STATUS RESTARTS AGE coredns-849545576b-8l4tx 1/1 Running 0 17h </cli> * 是否 DNS 使用正確的 cluster-ip<cli> kubectl -n kube-system get svc -l k8s-app=kube-dns </cli>結果類似以下<cli> localadmin@devops1:~$ kubectl -n kube-system get svc -l k8s-app=kube-dns NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 17h </cli> * 驗證 DNS 是否可以解析內部名稱 <cli> kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup kubernetes.default </cli>結果類似以下<cli> localadmin@devops1:~$ kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup kubernetes.default Server: 10.43.0.10 Address 1: 10.43.0.10 kube-dns.kube-system.svc.cluster.local Name: kubernetes.default Address 1: 10.43.0.1 kubernetes.default.svc.cluster.local pod "busybox" deleted </cli> * 驗證 DNS 是否可以解析外部名稱 <cli> kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup www.google.com </cli>結果類似以下<cli> localadmin@devops1:~$ kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup www.google.com Server: 10.43.0.10 Address 1: 10.43.0.10 kube-dns.kube-system.svc.cluster.local Name: www.google.com Address 1: 2404:6800:4008:800::2004 tsa01s07-in-x04.1e100.net Address 2: 172.217.160.100 tsa03s06-in-f4.1e100.net pod "busybox" deleted </cli> ===== 參考網址 ===== * https://rancher.com/docs/rancher/v2.x/en/troubleshooting/dns/ * https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/ {{tag>K8s kubectl}} tech/k8s-dns.txt 上一次變更: 2021/05/10 17:33由 jonathan