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

如何获取K8s集群中特定历史版本Deployment的发布日志

K8s Deployment旧版本发布日志获取方案

首先明确:只要对应版本的ReplicaSet还未被Deployment的历史版本回收机制清理,就可以获取到该版本的发布相关事件与配置信息,具体操作步骤如下:

步骤1:定位目标版本对应的ReplicaSet

首先执行以下命令,列出当前Deployment关联的所有ReplicaSet及其对应的版本号:

kubectl get replicaset -l app=<你的Deployment对应的应用标签> -o custom-columns=NAME:.metadata.name,REVISION:.metadata.annotations.deployment\.kubernetes\.io/revision,READY_REPLICAS:.status.readyReplicas,DESIRED_REPLICAS:.status.replicas

返回结果中REVISION列对应kubectl rollout history里的版本号,找到版本2对应的ReplicaSet名称(格式一般为[Deployment名]-[随机字符串])。

步骤2:查询该版本的发布事件日志

拿到ReplicaSet名称后,执行以下任一命令即可获取对应版本的发布事件:

  • 用describe命令查看完整RS信息,末尾自带事件列表:
    kubectl describe replicaset <你查到的版本2对应的RS名称>
  • 直接过滤该RS关联的事件:
    kubectl get events --field-selector involvedObject.kind=ReplicaSet,involvedObject.name=<你查到的版本2对应的RS名称>

如果你的集群配置了日志采集组件(比如Loki、ELK等),还可以通过RS名称、版本号作为过滤条件,检索当时该RS启动的Pod的运行时日志。

补充说明

  • 执行kubectl rollout history deployment/pod1-dep --revision=2,可以直接查看该版本对应的Pod模板配置,用于排查发布失败的配置问题。
  • Deployment默认的revisionHistoryLimit参数值为10,即只会保留最近10个历史版本的ReplicaSet,超过阈值的旧RS会被自动清理,一旦RS被清理就无法再获取对应版本的发布事件。
  • 集群默认的事件保留时间为1小时,如果要查询更早的发布事件,需要提前配置事件持久化存储。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:54:03