Ⅰ 一次「不負責任」的 K8s 網路故障排查經驗分享
一次K8s網路故障排查的實戰分享
作者駱冰利在處理一起客戶K8s集群擴容失敗問題時,揭示了深入排查的整個過程。客戶使用的是1.13.10版本的Kubernetes,宿主機內核為4.18(CentOS 8.2),遇到節點無法加入集群的問題。故障現象表現為新節點無法通過master service VIP訪問,但直接訪問master hostIP則正常。以下是排查的關鍵步驟:
首先,常規排查顯示iptables模塊載入正常,iptables轉發規則默認接受,宿主機和容器網路都正常。接著,通過ipvsadm發現kube-proxy在啟動後存在異常連接,syn_recv狀態,表明K8s service網路出現問題。
進一步分析,通過tcpmp抓包發現SYN包未從本地發送,初步鎖定問題在kube-proxy。查看kube-proxy日誌後,發現與iptables-restore命令的執行異常有關,涉及到KUBE-MARK-DROP鏈的創建問題。深入源碼後,發現1.13.10版本在特定條件下存在邏輯缺陷,導致報錯。
問題的根源在於,CentOS 8.2的4.18內核環境下的iptables配置與kube-proxy容器內的配置不一致,因為Kubernetes的kubelet也在操作iptables。解決辦法是升級內核至3.10或5.0+,或者更新Kubernetes版本至1.16.10以上。
總結這次經驗,對於K8s網路故障,關鍵在於理解內核、kube-proxy、kubelet之間的交互,以及選用正確的工具,如iptables或nftables。希望這個案例能幫助其他開發者在遇到類似問題時能更快定位和解決。
如果想了解更多Erda項目信息,可以添加小助手微信(Erda202106)加入交流群。Erda是一個開源的雲原生PaaS平台,歡迎關注、貢獻代碼和Star支持。
Erda Github 地址 | Erda Cloud - 企業級數字平台
當你在處理關鍵任務時,遭遇網路頻繁不穩定,無疑令人沮喪。這種情況往往源於運營商線路、路由器等因素。解決這類問題,可以採取以下步驟:
首先,檢查網線和電話線水晶頭,如果發現老化或生銹,應立即更換新的連接頭,確保信號傳輸的穩定性。(步驟01)
其次,如果你發現多台電腦共享同一網路且速度緩慢,試著重啟路由器,考慮升級至企業級路由器,以提高整體性能。(步驟02)
如果網路問題與運營商的機房距離過遠,或者線路存在故障,建議聯系他們進行信號強度檢測和線路檢查,查找可能的損壞或線路問題,並嘗試更換埠。(步驟03)
如果以上方法都未能解決問題,你可以嘗試在電腦上使用騰訊電腦管家,進入"電腦門診"界面,搜索關鍵詞"網路中斷",系統會給出相應的解決方案,幫助你修復網路問題。(步驟04)
通過以上步驟,網路不穩定的問題應該能得到一定程度的解決。請記住,知識就是力量,這些實用的技巧能幫你有效應對網路不穩定的情況。以上內容源於網路,版權原作者所有。