Files
2026-07-16 05:09:50 +02:00

2.1 KiB
Raw Permalink Blame History

R1.2.1 任务报告

结论

已为 NC01 devops-infra 增加 YAML-first Kubernetes 历史对象留存。手动 retention plan|run|status 与 systemd policy timer 复用 scripts/src/gc-remote-kubernetes-retention.py 的同一个 fail-closed 筛选器;只删除终态、超过保留窗口、分组可识别且不属于每组最新保留数量的 PipelineRun,通过 Background ownerRef 级联回收下游对象。

配置与保护

  • 配置真相:config/unidesk-cli.yaml#gc.remote.targets.NC01.kubernetesObjectRetention.policyTimer
  • 手动单批上限 500,自动单批上限 100,自动周期每 15 分钟。
  • 固定保护活跃、排队、过新、未知分组、时间不可解析、扫描截断和 Table 形状漂移对象。
  • 不直接删除 TaskRun、Pod、Secret、Event、PVC/PV 或 runtime workload。
  • NC01 policy 仅启用 kubernetes-object-retentionjournal、tmp、cache、image 和 PVC 阶段全部关闭。

真实运行证据

  • 初始 devops-infraPipelineRun 1923、TaskRun 1922、Pod 932、Secret 1613。
  • 三个异步 job 分别成功删除 500、500、484 个 PipelineRun,全部批次成功。
  • 终态 overviewPipelineRun 451、TaskRun 450、Pod 444、Secret 455;剩余对象主要为活跃、24 小时内对象和每组最新保留对象。
  • timer unidesk-devops-infra-retention.timerloaded/active/waiting,配置、runner 和状态文件均由 YAML 渲染。
  • 首次自动轮次 failedCount=0,只由 retention 阶段回收 6 个到龄 PipelineRun,下一轮已自动排期。
  • Python py_compilegit diff --checkbun scripts/cli.ts check --syntax-only 通过;未运行 Vitest。

内存判定

  • memory-distribution 只以 /proc/meminfoMemAvailable 判定,swap 单独披露。
  • 清理后 MemAvailable 约 2.8 GiB,距离 4 GiB 仍差约 1.25 GiBWebProbe 不具备启动资格,未启动 Chromium。
  • 剩余压力主要来自 k3s 常驻 PSS、Kafka/Tempo/Tekton 控制面和 Decision Center zombie;不得继续扩大为 raw delete、k3s 重启或无证据 reclaim。