Merge pull request #2653 from pikasTech/docs/2641-public-controller-watch-recovery
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Success
Pipelines as Code CI / platform-infra-gitea-nc01- Failed
Pipelines as Code CI / unidesk-host- Success

docs: 补充 Tekton controller 假健康恢复
This commit is contained in:
Lyon
2026-07-20 15:34:21 +08:00
committed by GitHub
@@ -211,14 +211,16 @@
- 被点名 credential 文件的写入者与 source of truth
- 受控 CLI 对该 fatal 的诊断、可恢复备份和验收能力。
### PaC watcher 跨节点失联与 Pending 队列恢复
### PaC/Tekton controller 假健康与 Pending 队列恢复
- 适用指纹:
- PaC watcher Deployment 显示 Ready,但日志停止推进;
- PaC watcher 或 Tekton controller Deployment 显示 Ready,但日志停止推进;
- 多个 consumer 的 PipelineRun 长期停在 `PipelineRunPending`,没有 TaskRun
- watcher 访问集群内 Gitea Service 超时,而 Gitea Pod、Service endpoint
和同节点探针正常;
- watcher 位于已 cordon 或 Pod 网段异常的 workerGitea 位于控制面节点。
- PipelineRun 已 Running,但 step 只完成 entrypoint 解码并持续等待
`/tekton/downward/ready`,同时 Tekton controller 日志早于该 TaskRun 停止。
- 先区分公共控制面与具体 Provider:
- watcher、Tekton controller、Gitea、Service 网络和共享 PaC 队列属于公共 CI/CD;
- AgentRun runner、HWLAB node、业务 Deployment 和 Provider 数据通道不在恢复范围;
@@ -227,7 +229,9 @@
- 先确认 node、Gitea Pod、Service endpoint 和 watcher placement
- 公共无状态 controller 卡在不可调度且跨节点网络失效的 worker 时,
只删除该精确 Pod,让 Deployment 在 YAML 允许的健康节点重建;
- controller 重新取得 leader 且能访问 Gitea 后,再处理队列;
- watcher 重新取得 leader 且能访问 Gitea 后,再处理 Pending 队列;
- Tekton controller 未观察新 TaskRun 时,只重启该精确 Deployment
让现有 PipelineRun 和 TaskRun 由 controller 重新调和;
- 不得先批量删除 PipelineRun,也不得用业务重跑掩盖公共依赖故障。
- watcher 停机后可能只重建内存队列,无法补发已经完成的前序事件:
- 用 `execution-order`、source commit、`spec.status`、TaskRun 数量和终态条件