【问题标题】:kubelet error skipping pod synchronization - container runtime is downkubelet 错误跳过 pod 同步 - 容器运行时已关闭
【发布时间】:2019-07-05 19:11:33
【问题描述】:

Kubernetes 版本 - 1.12.4 Docker 版本 - 18.06.1-ce 操作系统——CentOS Linux release 7.5.1804 (Core)

一切正常,但是当我重新启动 kubelet 服务时,我们在 kubelet 日志中的日志下方显示,节点状态更改为未就绪。它会持续 3 分钟。我们在 1.11.x 和 1.12.x 上观察到了这一点,还没有尝试 1.13.x。我们在所有 k8s 集群节点上都遇到了这个问题。 node(cpu/mem/iowait)上没有负载,一切都很好。

kubelet.go:1821] 跳过 pod 同步 - [容器运行时已关闭] kubelet.go:1821] 跳过 pod 同步 - [容器运行时已关闭]

【问题讨论】:

    标签: kubernetes kubelet


    【解决方案1】:

    为什么需要重启kubelet

    发生这种情况是因为在您重新启动 kubelet 时 - 它根本无法获得容器运行时的正确状态。因此,尽管您的容器运行时已启动并正在运行,但仍为您提供 container runtime is down

    Mar 12 13:51:13 kube-calico-2 kubelet[11597]: I0312 13:51:13.429889   11597 setters.go:518] Node became not ready: {Type:Ready Status:False LastHeartbeatTime:2019-03-12 13:51:13.429850911 +0000 UTC m=+0.652556738 LastTransitionTime:2019-03-12 13:51:13.429850911 +0000 UTC m=+0.652556738 Reason:KubeletNotReady Message:container runtime status check may not have completed yet}
    Mar 12 13:51:13 kube-calico-2 kubelet[11597]: I0312 13:51:13.483669   11597 kubelet.go:1846] skipping pod synchronization - [container runtime status check may not have completed yet]
    Mar 12 13:51:13 kube-calico-2 kubelet[11597]: I0312 13:51:13.884530   11597 kubelet.go:1846] skipping pod synchronization - [container runtime status check may not have completed yet]
    

    【讨论】:

    • 有时需要对 kubelet 配置进行一些更改,理想情况下它不应该发生,它刚刚开始发布几个版本,我使用的是 1.2 的 k8s,从未遇到过这个问题,它从 1.10 版本开始。
    【解决方案2】:

    我也遇到了 Kubernetes 1.14.3 的问题,解决方法是将 kubelet 设置 node-status-update-frequency 设置为 30s

    【讨论】:

      【解决方案3】:

      尝试使用命令 docker stats/inspect 杀死导致 kubelet 超时的容器进程

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-06
        • 1970-01-01
        • 1970-01-01
        • 2016-09-20
        • 1970-01-01
        • 2018-10-22
        • 1970-01-01
        • 2015-08-26
        相关资源
        最近更新 更多