容器啓動失敗 ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346

完整錯誤信息:

ERROR: for log Cannot start service log: OCI runtime create failed: container_linux.go:346: starting container process caused “process_linux.go:319: getting the final child’s pid from pipe caused “EOF””: unknown

K8s集羣突然啓不了新服務了,通過日誌發現 docker 報上面的錯誤信息。谷歌搜了一圈大多數都是內核版本低導致安裝 Docker 後出現的問題。和我這裏的情況明顯不同。

通過 journactl -xe 發現內核報錯:

kernel: Unable to create nf_conn slab cache

通過上面的錯誤信息找到了更有用的一些資料:

根本原因是 linux 3.10 內核的 BUG,產生的原因是因爲內存碎片過多,無法分配大塊內存。

重啓服務器能直接解決,如果不能重啓可以參考最後一篇中的如下命令:

# 清理頁面緩存
echo 1 > /proc/sys/vm/drop_caches 
# or 
sysctl -w vm.drop_caches=1

我在使用上面命令後,服務就能啓動了,但是碎片仍然很嚴重,仍然存在很大的風險。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章