由於無法分配ip而導致的FailedCreatePodSandBox
一、問題現象
描述:當pod排程到某主機上時,pod無法正常啟動並顯示如下圖事件。
二、排查思路
- 檢視網路外掛日誌。
- 去主機上看/var/lib/cni/networks/default-cni-network這個目錄 發現ip已經佔滿,如下圖現象。
三、問題原因
- 這是kubernetes的一個老問題了,與容器無法啟動/失敗時不清理容器ip有關
- 該問題的根本原因是由於pod生命週期的PodSync迴圈處理策略與cni外掛的衝突導致的,即本應該作為GC goroutine(一個go語言的排程器,或者可以直接理解為kubelet)的一部分的cni delete沒有被呼叫而導致了IP洩露。因此該問題並非是網路外掛單方面問題,和k8s自身和docker都有所關聯。由於該問題復現較為困難,目前我們也並沒有使用calico去嘗試復現該問題,因此並不確定calico一定不會出現此問題。
- 可以嘗試通過手動刪除IP池中沒有被使用到的IP,但這種方式並不能根本性的解決,只能保證新起pod有IP可用。如果您現在的環境無法重啟docker,可以先通過手動刪除的方式來臨時解決,等存在重啟docker的視窗期時再去重啟docker來修復。
四、解決辦法
- 需要把/var/lib/cni/networks/default-cni-network這個目錄mv一個bak出來,然後新建一個目錄,重啟docker
- 讓這個主機上的pod全部重新分配IP
systemctl stop docker
cp -r /var/lib/cni/network/default-cni-network/ /var/lib/cni/network/default-cni-network_bak/
cd /var/lib/cni/network/default-cni-network/
rm -f 10*
systemctl start docker
相關issues:
https://github.com/kubernetes/kubernetes/issues/86944
https://github.com/kubernetes/kubernetes/pull/94624
相關文章
- tomcat 由於 -Xss 太小導致無法載入應用Tomcat
- 【shmmax】由於shmmax設定過小導致dbca建庫無法完成HMM
- CentOS安裝Redis6由於GCC版本太低導致無法make的解決辦法CentOSRedisGC
- 怎樣解決遠端桌面由於帳戶限制導致無法登入
- java由於越界導致的報錯Java
- [Oracle]由於初始化引數檔案修改錯誤導致oracle無法startupOracle
- 一起由於Oracle 8.1.6 BUG而導致的ORA-03113錯誤Oracle
- oracle兩節點RAC,由於gipc導致某節點crs無法啟動問題分析Oracle
- vnc圖形介面登陸和訊號無法分配而db無法nomountVNC
- Microsoft承認Windows由於永久性記憶體而導致啟動緩慢ROSWindows記憶體
- Kubernetes node的防火牆問題導致pod ip無法訪問防火牆
- AIX下由於nfs故障導致oracle hangAINFSOracle
- 由adoacorectl.sh啟動失敗導致網頁無法顯示網頁
- 搭建DG過程由於沒有口令檔案而導致rman連不上主庫
- 導致IP被封的原因
- 由drop datafile導致的oracle bugOracle
- Laravel 關聯模型由於名稱一致性導致的問題Laravel模型
- 解決辦法:由於oracle版本不同導致匯入資料時失敗Oracle
- iptables導致無法遠端連線oracleOracle
- multicast導致節點無法加入叢集AST
- MySQL時區導致無法產生表MySql
- wpf popup導致MouseLeftButtonUp無法觸發
- 11gR2私有ip修改錯誤導致crs無法啟動解決方法
- echarts圖由於容器隱藏導致圖表不顯示問題解決辦法Echarts
- ajax的get請求快取導致無法更新問題快取
- spring boot 2.0.0由於版本不匹配導致的NoSuchMethodError問題解析Spring BootError
- 由於網路卡故障導致DATAGUARD傳輸檔案失敗
- openGauss 由於RemoveIPC未關閉導致資料庫crashREM資料庫
- 【DataGuard】由於備庫引數設定不當導致資料檔案無法新增的故障分析
- [重慶思莊每日技術分享]-由於備庫閃回區過小導致的備庫無法實時應用日誌應用日誌
- Win7 IIS7 配置錯誤由於許可權不足而無法讀取配置檔案的解決辦法Win7
- 【案例】Oracle報錯ORA-01194 ORA-01110 由於資料庫SCN不一致導致無法啟動Oracle資料庫
- 由hugepage設定導致的資料庫事故資料庫
- 【DataGuard】由於備庫引數設定不當導致資料檔案無法新增的故障分析(轉)
- eclipse: workspace出錯導致無法啟用的解決Eclipse
- 磁碟IO故障導致的SQLServer資料庫無法寫入SQLServer資料庫
- nfs導致的作業系統目錄無法訪問NFS作業系統
- 歸檔問題導致的資料庫無法啟動資料庫