0

在成功部署 CAM(已启动并运行了几天)后,突然“cam-mongo”微服务关闭了,在使用以下 2 命令检查 pod 日志时,它会给您 Error syncing pod

1) kubectl 描述 pods -n 服务

警告 BackOff 3s (x3 over 18s) kubelet, 9.109.191.126 Back-off restarting failed container

警告 FailedSync 3s (x3 over 18s) kubelet, 9.109.191.126 Error syncing pod

有了这些信息,您不知道出了什么问题以及如何解决它

2) kubectl -n services logs cam-mongo-5c89fcccbd-r2hv4 -p (使用 -p 选项,您可以从之前运行的容器中获取日志)上述命令显示以下信息:

initAndListen 中的异常:98 无法锁定文件:/data/db/mongod.lock 资源暂时不可用。mongod 实例是否已经在运行?,终止结论:

在“cam-mongo” pod 中启动容器时,它无法使用现有的 /data/db/mongod.lock 文件,因此您的 pod 将无法启动并运行,并且您无法访问 CAM

4

1 回答 1

0

经过进一步分析,我解决了以下问题:

1)启动一个容器并在其中安装 cam-mongo 卷。

为此,我使用了以下 pod 创建 yaml,它将在 /data/db/ 存在的位置安装关注 pv。

种类:豆荚

api版本:v1

元数据:

名称:mongo-troubleshoot-pod

规格:

卷:

  • 名称: cam-mongo-pv

    持久卷声明:

    索赔名称:cam-mongo-pv

容器:

  • 名称:mongo-疑难解答

    图片:nginx

    端口:

    • 容器端口:80

      名称:“http服务器”

    卷装:

    • 挂载路径:“/data/db”

      名称: cam-mongo-pv

运行:kubectl -n services create -f ./mongo-troubleshoot-pod.yaml

2)使用“docker exec -it /bin/bash”(从“kubectl -n services describe po/mongo-troubleshoot-pod-xxxxx”信息中查找)

cd /数据/数据库

rm mongod.lock

rm WiredTiger.lock

3) 杀死您为故障排除创建的 pod

4) 使用以下命令杀死损坏的 cam-mongo pod

kubectl 删除 pods -n 服务

它解决了这个问题。

于 2018-05-11T10:01:13.050 回答