Docker

docker 不會執行 k8s 容器(包括控制平面):“無法找到使用者 0:無效參數”

  • October 9, 2020

我有一個 k8s 集群執行了一段時間沒有問題。幾天前,它不會啟動,當 kubelet 啟動時,它會創建許多控制平面容器(在明顯的無限循環中),所有這些容器都標記為 Created,在 Docker 中出現以下錯誤,並且每個創建的容器的 kubelet 日誌:

Handler for POST /v1.40/containers/<ID>/start returned error: unable to find user 0: invalid argument

背景資料:

  • 當我注意到 kubelet 版本是 v1.19.1 時,集群仍在執行 v1.19.0
  • docker 是 Debian 上的 19.03.12 版本(在測試中使用 Linux 5.7.0-3 和 5.8.0-1 進行了測試)
  • 我最初懷疑升級到 kubelet v1.19.1(從 v1.19.0),但逆向升級並沒有解決問題
  • 我嘗試了一些不同的圖像,但它們執行良好,包括在命令行上docker run -it <image> sh -i使用卷掛載-v和轉發埠時;-p這些容器執行良好
  • 即使在重新安裝之前刪除,重新安裝 dockerapt purge ... && apt install ...也無法解決問題/var/lib/{docker,kubelet}
  • 也沒有kubeadm reset ... && kubeadm init
  • docker 使用 overlay2 storage-driver 和 systemd cgroup-driver
  • 我沒有從它開始時的日誌,因為我有幾天沒有使用這個(開發)集群,隨後的錯誤填滿了日誌

任何提示和建議表示讚賞。不幸的是,錯誤消息不足以找出問題所在,甚至是在依賴鏈中的哪個位置。

正如@mdaniel 在評論中提到的,這個問題可能與 docker 版本相關。

此問題已通過使用者ncresswell的此 github文章中的步驟解決。

好的,在 Debian 10 上執行良好,即使安裝了 AppArmour 並執行策略。

我從 Docker 官方 Repo 安裝了 Docker CE。 https://docs.docker.com/engine/install/debian/

請做同樣的事情並恢復。請注意,在 Debian 11 發佈為“穩定”之前,我們不會提供任何支持。

![圖片]([https://user-images.githubusercontent.com/23178133/92718216-a3be2880-f3b5-11ea-9ef4-e9af69de882b.png](https://user-images.githubusercontent.com/23178133/92718216 -a3be2880-f3b5-11ea-9ef4-e9af69de882b.png))

作為記錄,其他人也遇到過這種情況並在此處向 Debian 維護者報告:bugs.debian.org/cgi-bin/bugreport.cgi?bug=970525

引用自:https://serverfault.com/questions/1033754