故障现象
在使用containerd容器引擎场景下,拉取镜像到节点时,概率性缺少镜像层,导致工作负载容器创建失败。
问题根因
docker v1.10 之前支持mediaType 为 application/octet-stream 的layer,而containerd不支持application/octet-stream,导致没有拉取。
解决方法
有如下两种方式可解决该问题。
- 使用高版本Docker(>= docker v1.11)重新打包镜像。
- 手动下载镜像
- 登录节点。
- 执行如下命令手动下载镜像。
ctr -n k8s.io images pull --user u:p images
- 使用新下载的镜像重新创建工作负载。