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

如何获取Kubernetes Pod的全部重启日期历史记录?

获取Kubernetes Pod的所有重启历史记录

以下几种方法可以帮你获取Pod的重启时间历史,确认是否存在未授权的重启或回滚操作:

1. 查看Pod的事件与容器重启详情

直接通过kubectl describe命令查看Pod的完整事件流和容器状态:

  • 执行命令:
    kubectl describe pod <你的Pod名称> -n <目标命名空间>
    
  • 在输出的Containers区块中,你可以看到容器的Restart Count(总重启次数),以及Last State字段下的终止时间(对应上次重启的触发时间)。
  • 滚动到Events区块,这里按时间倒序排列了Pod的所有关键事件,包括容器的Created、Started、Killed等操作,每个事件都带有精确时间戳,能清晰看到每次重启的时间点。

2. 检查控制器的版本历史(针对Deployment/StatefulSet管理的Pod)

如果你的Pod是由Deployment、StatefulSet这类控制器管理的,回滚操作会留下版本记录:

  • 查看所有版本历史:
    kubectl rollout history deployment/<你的Deployment名称> -n <目标命名空间>
    
    输出会列出所有版本的创建时间,以及版本变更的原因。
  • 查看特定版本的详细信息:
    kubectl rollout history deployment/<你的Deployment名称> -n <目标命名空间> --revision=<版本号>
    
    这里会显示该版本的创建时间、配置变更内容,能确认是否有回滚操作发生。

3. 导出Pod状态数据提取结构化重启信息

如果需要更精准的结构化数据,可以导出Pod的JSON/YAML状态后筛选:

  • 用jq工具提取容器状态:
    kubectl get pod <你的Pod名称> -n <目标命名空间> -o json | jq '.status.containerStatuses[] | {name: .name, restartCount: .restartCount, lastTerminationTime: .lastState.terminated.finishedAt}'
    
  • 或者直接导出YAML查看:
    kubectl get pod <你的Pod名称> -n <目标命名空间> -o yaml
    
    在status.containerStatuses字段下,lastState.terminated.finishedAt记录了上次容器终止的时间,state.running.startedAt记录了当前容器启动的时间。

4. 查看历史Pod实例

如果Pod被控制器重建过(比如回滚后创建了新的Pod实例),旧的Pod会被标记为终止状态,你可以查看所有历史Pod:

  • 执行命令:
    kubectl get pods -n <目标命名空间> --show-all
    
    对每个终止状态的Pod执行kubectl describe,查看它们的创建和终止时间,就能完整还原所有重启/重建的时间线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:01:35