由於無法分配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
相關文章
- CentOS安裝Redis6由於GCC版本太低導致無法make的解決辦法CentOSRedisGC
- java由於越界導致的報錯Java
- oracle兩節點RAC,由於gipc導致某節點crs無法啟動問題分析Oracle
- Microsoft承認Windows由於永久性記憶體而導致啟動緩慢ROSWindows記憶體
- 【案例】Oracle報錯ORA-01194 ORA-01110 由於資料庫SCN不一致導致無法啟動Oracle資料庫
- 導致IP被封的原因
- wpf popup導致MouseLeftButtonUp無法觸發
- MySQL時區導致無法產生表MySql
- spring boot 2.0.0由於版本不匹配導致的NoSuchMethodError問題解析Spring BootError
- openGauss 由於RemoveIPC未關閉導致資料庫crashREM資料庫
- echarts圖由於容器隱藏導致圖表不顯示問題解決辦法Echarts
- eclipse: workspace出錯導致無法啟用的解決Eclipse
- Asp.netcore中由於頁面編碼導致的中文亂碼ASP.NETNetCore
- [重慶思莊每日技術分享]-由於備庫閃回區過小導致的備庫無法實時應用日誌應用日誌
- Win7 IIS7 配置錯誤由於許可權不足而無法讀取配置檔案的解決辦法Win7
- 磁碟IO故障導致的SQLServer資料庫無法寫入SQLServer資料庫
- nfs導致的作業系統目錄無法訪問NFS作業系統
- MYSQL 5.7 升級 8.0 後的 由於字符集導致的大問題 ?MySql
- 【epoll問題】EPOLLRDHUP使用導致無法接受資料
- 由Nginx的DNS快取導致的訪問404NginxDNS快取
- 神奇的DEBUG:因為異常導致MongoDB容器無法啟動MongoDB
- Snappy 構建jdk的環境不對導致無法載入APPJDK
- 因為跨域問題導致的無法讀取 response header跨域Header
- 伺服器由於防火牆問題導致埠不通解決方法伺服器防火牆
- RAC下主機修改時區導致db無法open
- Python3.7.0 SSL低版本導致Pip無法使用Python
- 記兩個未初始化而導致的坑
- 應用使用JNDI,資料庫無法連線,導致的程序無法啟動問題處理資料庫
- win10無法更新1803怎麼辦?顯示卡導致無法更新1803的解決方法Win10
- eMarketer:大多數公司由於成本高無法滿足CCPA的規定
- 【linux】【docker】Docker預設網段配置導致無法訪問LinuxDocker
- Standby_file_management引數導致日誌無法應用
- vim 編輯報錯導致無法正常退出和編輯
- css:touch-action導致安卓無法滾動頁面CSS安卓
- centos6.3誤刪python2.6導致yum無法使用CentOSPython
- Mac升級至macOS High Sierra後導致git無法使用MacGit
- SQLite 由於 mscoree.dll 損壞導致 BadImageFormatException 試圖載入格式不正確的程式SQLiteORMException
- a-select由於位置不夠,導致下拉選單擋住搜尋框的問題