更新时间:2024-06-21 gmt 08:00
工作负载异常:一直处于创建中-九游平台
问题描述
节点上的工作负载一直处于创建中。
排查思路
以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。
如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。
排查项一:cce-pause镜像是否被误删除
问题现象
创建工作负载时报如下错误,显示无法创建sandbox,原因是拉取cce-pause:3.1镜像失败。
failed to create pod sandbox: rpc error: code = unknown desc = failed to get sandbox image "cce-pause:3.1": failed to pull image "cce-pause:3.1": failed to pull and unpack image "docker.io/library/cce-pause:3.1": failed to resolve reference "docker.io/library/cce-pause:3.1": pulling from host **** failed with status code [manifests 3.1]: 400 bad request
问题原因
该镜像为创建节点时添加的系统镜像,如果手动误删除该镜像,会导致工作负载pod一直无法创建。
九游平台的解决方案:
- 登录该问题节点。
- 手动解压节点上的cce-pause镜像安装包。
tar -xzvf /opt/cloud/cce/package/node-package/pause-*.tgz
- 导入镜像。
- docker节点:
docker load -i ./pause/package/image/cce-pause-*.tar
- containerd节点:
ctr -n k8s.io images import --all-platforms ./pause/package/image/cce-pause-*.tar
- docker节点:
- 镜像导入成功后,即可正常创建工作负载。
排查项二:集群开启cpu管理策略后变更节点规格
集群开启cpu管理策略(绑核)时,kubelet启动参数中会将cpu manager的策略设置为static,允许为节点上具有某些资源特征的pod赋予增强的cpu亲和性和独占性。用户如果直接在ecs控制台对cce节点变更规格,会由于变更前后cpu信息不匹配,导致节点上的负载无法重新拉起,也无法创建新负载。
- 登录cce节点(弹性云服务器)并删除cpu_manager_state文件。
删除命令示例如下:
rm -rf /mnt/paas/kubernetes/kubelet/cpu_manager_state
- 重启节点或重启kubelet,重启kubelet的方法如下:
systemctl restart kubelet
此时重新拉起或创建工作负载,已可成功执行。
解决方式链接:
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨