域名DNS異常排查
更新時間 2025-03-31 19:08:41
最近更新時間: 2025-03-31 19:08:41
分享文章
本文為您介紹Serverless集群的域名DNS解析異常常見問題。
域名解析失敗,如何定位處理?
問題現象:域名解析失敗。
可能原因:域名解析失敗可能有如下4種情況:Serverless集群內是否已經安裝了coreDNS插件、coreDNS服務是否正常、集群使用的安全組是否已經放開udp規則、pod容器到coreDNS網絡是否連通。
解決方法:
- 判斷當前的異常原因。
- 檢查業務Pod的DNS配置,是否已經接入CoreDNS。
- 檢查CoreDNS Pod運行狀態進行診斷。
- 檢查CoreDNS運行日志進行診斷。
- 檢查pod是否能訪問CoreDNS。
- 檢查安全組是否已經放開UDP協議的53端口。
CoreDNS插件已安裝但是在pod內部無法解析kubernetes等service域名
問題現象:在容器內部是可以ping通coredns pod的ip,查看容器內部的/etc/resolv.conf也是正常的,但是nslookup kubernetes就是不能解析出ip。
可能原因:在nslookup kubernetes的時候,容器先通過/etc/resolv.conf中的nameserver寫的coredns的serviceIP找到dns服務器,再通過dns服務器解析內部service域名。首先得確保coredns的service正常工作,使用curl 10.96.0.10:9153測試coredns的service明顯不通。
解決方法:需要排查kube-proxy是否正常。
安裝CoreDNS插件后并沒有修改容器內部的/etc/resolv.conf
問題現象:查看隨便一個pod,進入容器內部查看cat /etc/resolv.conf,發現并沒有被coredns修改。
可能原因:可能是CoreDNS工作不正常。檢查coredns pod是否有事件報錯健康檢查失敗。
解決方法:檢查coredns日志是否正常,重啟coreDNS。
安全組配置錯誤
問題現象:隨便進入一個pod容器內部,使用service ip:端口可以正常訪問,但是使用service域名:端口就不通。
可能原因:查看dns日志一直沒有變化,說明沒有請求到達dns。可能是修改了容器使用的安全組,攔截了UDP協議下53端口的通信。
解決方法:修改集群安全組,放開UDP協議的53端口規則。