为什么节点上的dockerd会变坏?

时间:2018-11-14 03:12:00

标签: docker kubernetes

在kubernetes主机上运行dockerd几天后,该主机由kubelet调度了pod,dockerd变得很糟糕-消耗了大量资源(50%的内存-〜4gigs)。

到达此状态时,它无法对似乎通过$ docker ps运行的容器的命令执行操作。另外,在主机上检查ps -ef时,这些容器不会映射到任何基础主机进程。

$ docker exec产生-

level=error msg="Error running exec in container: rpc error: code = 2 desc = containerd: container not found"

Cannot kill container 6a8d4....8: rpc error: code = 14 desc = grpc: the connection is unavailable"

level=fatal msg="open /var/run/docker/libcontainerd/containerd/7657...4/65...6/process.json: no such file or directory"

浏览主机上的进程树,似乎有很多已经失效的进程,它们指向dockerd作为父ID。关于该问题可能是什么或在哪里可以进一步看待的任何指针?

dockerd上启用调试以查看问题是否再次发生,通过dockerd重新启动可解决该问题。

1 个答案:

答案 0 :(得分:1)

听起来像您的容器行为异常,而docker无法收起它。我将看看在您看到问题的节点上已计划了什么。您看到的错误似乎是docker守护程序未响应docker CLI发出的API请求。一些指针:

  • 容器成功退出还是出现错误?
  • 它们的容器是否由于某种原因而被杀死?
  • 检查kubelet日志
  • 查看kube-scheduler日志吗?
  • 关注节点docker logs -f <containerid>上容器中的日志