磁盘空间超85%,导致苍穹容器Pod启动失败的解决方法
1 问题现象
通过kubectl get pod -A命令,可以看到大量的Evicted状态的POD,如上图所示。
注:若kubectl get pod -A 执行不了,则说明k8s相关服务已经被停止了,需要通过如下命令重启服务:
systemctl restart kubelet
systemctl restart docker
k8s、苍穹应用、gpaas等容器无法正常启动,提示ImagePullBackOff。
2 问题原因
出现上述现象绝大多数是因为磁盘空间超过85%,导致k8s自动触发驱逐容器和删除镜像的动作。
3 解决方法
(1). 通过命令删除Evicted pod,比如下方的pod批量删除命令:
kubectl get pods --all-namespaces | grep Evicted| awk '{cmd=" kubectl delete pod "$2" -n "$1;system(cmd)}'
(2). 重新导入gPaaS和苍穹应用镜像,然后检查容器是否正常启动运行。
镜像获取
(1).针对安装器搭建的环境:
gPaaS 镜像在主机目录 /kingdee/cosmic/tmp/k8s-install中,苍应用镜像在主机目录 /kingdee/cosmic/cosmic/cosmic-k8s/cosmic-images 中。其中,"/kingdee/cosmic" 为安装器界面录入的产品安装目录。
(2).针对非安装器搭建的环境:
可以联系金蝶实施顾问或从其他安装器搭建的环境获取镜像。
(3).若无环境,可去安装器安装包中获取,点击查看获取方式
镜像导入命令
导入gPaaS镜像(在每台gPaaS k8s主机上执行):
docker load -i harbor-1.10.images.tgz
docker load -i kce-images.tgz
导入苍穹应用镜像(在每台苍穹k8s主机上执行):
docker load -i cosmic-images.tar.gz
导入k8s镜像(在每台苍穹k8s主机上执行):
docker load -i k8s_basic.image.tar.gz
防止镜像被回收,可以把镜像上传到镜像仓库中,参考文章:把苍穹镜像上传到Harbor镜像仓库。
扩展方案(非必需):点击这里,深入了解k8s pod及镜像删除的参数调优方法。
磁盘空间超85%,导致苍穹容器Pod启动失败的解决方法
本文2024-09-23 01:10:05发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144207.html