【问题标题】:Pod from StatefulSet stuck in ContainerCreating state - FailedCreatePodSandBox来自 StatefulSet 的 Pod 卡在 ContainerCreating 状态 - FailedCreatePodSandBox
【发布时间】:2019-06-06 14:16:46
【问题描述】:

StatefulSet控制的Pod卡在ContainerCreating状态

kubectl 获取 pod

md-0                    1/1       Running             0          4h        10.242.208.59   node-5
md-1                    1/1       Running             0          4h        10.242.160.36   node-6
md-2                    0/1       ContainerCreating   0          4h        <none>          node-6

kubectl 描述 pod md-2

Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
...
Events:
  Type     Reason                  Age               From                                 Message
  ----     ------                  ----              ----                                 -------
  Warning  FailedCreatePodSandBox  2m (x68 over 4h)  kubelet, node-6  Failed create pod sandbox: rpc error: code = DeadlineExceeded desc = context deadline exceeded

kubectl 描述 statefulset md

Replicas:           3 desired | 3 total
Pods Status:        2 Running / 1 Waiting / 0 Succeeded / 0 Failed
...
Events:                         <none>

来自 node-6 的 kubelet 日志

RunPodSandbox from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
CreatePodSandbox for pod "md-2_exc(a995dd3d-158d-11e9-967b-6cb311235088)" failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
createPodSandbox for pod "md-2_exc(a995dd3d-158d-11e9-967b-6cb311235088)" failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Error syncing pod a995dd3d-158d-11e9-967b-6cb311235088 ("md-2_exc(a995dd3d-158d-11e9-967b-6cb311235088)"), skipping: failed to "CreatePodSandbox" for "md-2_exc(a995dd3d-158d-11e9-967b-6cb311235088)" with CreatePodSandboxError: "CreatePodSandbox for pod \"md-2_exc(a995dd3d-158d-11e9-967b-6cb311235088)\" failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded"

我还有另外两个 StatefulSet,它们按预期工作。由于某种原因,这个坏了。 也直接kubectl rundocker run 工作正常。

2019-01-18 更新

在恢复更改的时间线后,我看到这个特定的 pod 被 docker 命令绕过 kubernetes 删除了。

可能这以某种方式破坏了 Kubernetes 的状态或其他东西。

经过多次搜索、询问和故障排除后,我仍然无法找到问题所在。所以我不得不在分配了 pod 的节点上重新启动 kubelet (systemctl restart kubelet)。问题就解决了。

我希望了解如何检查 kubernetes(或 kubelet?​​)到底出了什么问题,但找不到任何线索。在这种情况下,kubelet 行为仍然是黑盒。

【问题讨论】:

  • 你能分享 docker.log 吗? docker 是否挂在节点上?
  • @EytanAvisror 目前只有这个 level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete" level=info msg="垫片搬运工-containerd-垫片启动”地址= “/ containerd-垫片/ MOBY / c89f44d12f912a4f93d5d7a526c65aac0eef8fac2184e9d54ccad9962d7c21e9 / shim.sock” 调试=假模块= “containerd /任务” PID = 73580水平=信息味精= “中间收获” ID = c89f44d12f912a4f93d5d7a526c65aac0eef8fac2184e9d54ccad9962d7c21e9模块="containerd/tasks" 并且每次 POD 重新启动时都会重复此消息。
  • @alexar 'kubectl logs md-2 -p' 是否返回更有用的信息?
  • @Nepomucen 没有什么有用的“来自服务器的错误(BadRequest):未找到 pod“md-2”中先前终止的容器“md”,对于当前 pod(kubectl 记录 md-2)也是“错误来自服务器(BadRequest):pod“md-2”中的容器“md”正在等待启动:ContainerCreating”
  • 你能为你的 StatefulSet 提供一个 YAML 文件吗?看起来问题完全出在应用程序方面。因此,您可能可以在应用程序支持网站上找到解决方案。

标签: kubernetes


【解决方案1】:

正如更新中提到的alexar

在恢复更改的时间线后,我看到这个特定的 pod 被 docker 命令绕过 kubernetes 删除了。

可能这以某种方式破坏了 Kubernetes 的状态或其他东西。

经过多次搜索、询问和故障排除后,我仍然无法找到问题所在。所以我不得不在分配了 pod 的节点上重新启动 kubelet(systemctl restart kubelet)。问题就解决了。

【讨论】:

    猜你喜欢
    • 2018-11-17
    • 2021-08-17
    • 2018-03-04
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2021-10-05
    • 2018-02-28
    • 2019-10-24
    相关资源
    最近更新 更多