You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Prometheus采集Kubernetes节点终止时间(UNIX时间戳)

采集Kubernetes节点终止时间(UNIX时间戳)的方案

由于kube-state-metrics未直接导出节点的终止时间字段,可通过监控kube_node_status_condition指标的状态变化来获取,具体如下:

核心监控指标与状态

节点进入终止流程时,Kubernetes会通过节点状态条件(Condition)标记,需重点关注以下两个状态:

  • DisruptionTarget:当节点被标记为待终止(如执行kubectl delete node)时,该条件的status会变为true,对应的kube_node_status_condition指标值即为触发终止的UNIX时间戳,这是最精准的终止触发时间点。
  • Ready:若集群版本不支持DisruptionTarget(Kubernetes 1.25+引入该条件),可通过Ready状态从true转为false或unknown的时间来近似节点终止时间,对应指标为kube_node_status_condition{condition="Ready",status=~"false|unknown"},其数值为状态切换的UNIX时间戳。

具体操作步骤

  1. 确认kube-state-metrics配置:确保已启用节点指标采集(默认开启,若自定义启动参数需包含--collectors=nodes)。
  2. PromQL查询示例
    • 获取精准终止触发时间:
      kube_node_status_condition{condition="DisruptionTarget",status="true"}
      
    • 兼容旧版本集群的近似终止时间:
      kube_node_status_condition{condition="Ready",status="false"}
      
    • 将UNIX时间戳转为可读格式:
      format_time(kube_node_status_condition{condition="DisruptionTarget",status="true"}, "%Y-%m-%d %H:%M:%S")
      

补充说明

节点的终止流程与Pod不同,Kubernetes并未为节点设置类似Pod的terminationTimestamp元数字段,因此只能通过状态条件的lastTransitionTime(对应kube-state-metrics导出的指标数值)来获取终止相关时间点。

内容的提问来源于stack exchange,提问作者Daniel Wasserlauf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 20:20:34