常见的 Node Conditions 和

常见的 Node Conditions

每个 Condition 都有以下几个关键字段:

  • type:条件的类型。常见的有:

    • Ready:这是最重要的一个条件。如果为 True,表示节点健康并可以接收 Pod;如果为 False,表示节点不健康,不会调度新的 Pod 上去;如果是 Unknown,表示节点控制器在一段时间内没有收到节点的心跳。

    • MemoryPressure:如果为 True,表示节点内存不足。

    • DiskPressure:如果为 True,表示节点磁盘空间不足。

    • PIDPressure:如果为 True,表示节点上进程过多,可用的进程 ID 不足。

    • NetworkUnavailable:如果为 True,表示节点的网络配置不正确。

  • status:该条件的当前状态。通常是 TrueFalse,或 Unknown

  • reason:一个机器可读的、简短的原因代码,说明条件为何处于当前状态(例如,KubeletReady, NodeStatusUnknown)。

  • message:一条人类可读的详细信息,解释了状态的详细原因。

  • lastHeartbeatTime:节点最后一次上报此条件状态的时间。

  • lastTransitionTime:该条件上一次从一个状态转换到另一个状态的时间。这是非常关键的一个字段,因为它记录了状态发生变化的具体时刻。

什么是 “Conditions变更记录”?

“Conditions变更记录” 指的就是上述过程中,Node 的 conditions 字段(特别是 Ready 条件)随着时间推移而发生的变化历史。

您可以通过以下命令来查看这些信息:

  • 查看节点当前详细状态(包含最新的 Conditions):

    bash
    kubectl describe node <node-name>

    输出中会有一个 Conditions 章节,清晰地列出每个条件的类型、状态、原因、消息和最后转变时间。

  • 以更机器可读的方式(如 JSON)查看,其中包含了更精确的时间戳:

    bash
    kubectl get node <node-name> -o json | jq '.status.conditions'

通过分析 lastTransitionTime 和 status 的变化,您就可以精确地画出一张节点健康状态的时间线图,例如:

  • 2023-10-27 02:00:00 - Ready 状态从 True 变为 False

  • 2023-10-27 02:15:00 - (如果Docker恢复)Ready 状态从 False 变回 True

posted @ 2025-11-10 14:14  滴滴滴  阅读(14)  评论(0)    收藏  举报