Tekton 流水线资源优化器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/tekton-pipeline-resource-optimizer
技能介绍
要解决的问题
Tekton 的 Pipeline / Task 清单里,开发者通常会随手填一个 cpu / memory 的 request,甚至直接留空。等到流水线真正在集群里跑起来,就会出现两种典型症状:任务因为 Insufficient cpu 长时间 Pending,或者节点明明还有余量,却因为某个 Task 的 request 写得太保守而整体利用率偏低。当流水线数量变多,这种“拍脑袋”式配置会逐步放大调度压力,让 CI 整体吞吐难以预测。
技能如何工作
该技能面向已经运行过一段时间的 Tekton 集群,核心流程可以拆成三步:
- 读取定义与运行结果:通过 Tekton Results API 拉取
PipelineRun与TaskRun的历史记录,定位到每个 Task 实际执行过的资源请求与限制。 - 采集真实用量:从 Prometheus 中获取对应
TaskRun的 CPU / 内存时间序列,识别峰值、常态水位与偶发抖动,而不是只看平均值。 - 生成建议补丁:把历史实际用量与清单中声明的
requests做对比,输出可以直接回写到 YAML 的调整建议,例如把某个 Task 的memory.request从512Mi调到768Mi,或把长期跑不满的cpu.limit下调,减少无谓的 cgroup 节流。
因为分析基于真实时序数据,它更关注“集群里到底跑成什么样”,而不是通用的最佳实践模板。
适用边界与注意点
- 仅分析能从 Results API 读到的
TaskRun,如果某个 Task 从未成功运行过,技能不会有有效样本。 - 依赖 Prometheus 中已有指标。若 Task 运行时间极短、抓取间隔过大,用量曲线可能不够精细,建议项也会偏保守。
- 输出的是建议补丁,不是自动 apply。合并前仍需人工确认,尤其是跨多个 Pipeline 共享的
Task。 - 不负责节点容量规划,也不评估 Cluster Autoscaler /节点池配置,只聚焦在单个
Task的资源声明上。
使用场景
- Tekton流水线多个Task持续Pending,需要定位具体是哪个Task的CPU或内存request配置不足
- 团队想根据历史TaskRun的真实用量,调整各Task的request/limit参数,减少资源浪费或调度卡顿
- 多个Pipeline共享同一个Task,需要基于实际运行数据统一优化其资源声明
- CI集群整体利用率忽高忽低,想通过Tekton历史运行记录找出配置不合理的Task并修正
适合人员
- 负责Tekton CI运维的工程师,需要解决流水线调度卡顿或资源不足的问题
- 维护K8s集群资源预算的SRE,想降低Pipeline运行的无效资源占用
- 编写Tekton Task清单的开发者,需要根据真实运行数据调整资源参数
- 优化CI成本的团队负责人,想基于历史用量减少集群资源开销