写入 Tekton Task 结果时结果超出限制
问题描述
当 Task 步骤向 Task result 写入相对较大的内容时,由于大小限制,输出可能会失败。
错误表现
-
Pod 日志显示 termination message 溢出(result 对默认 4 KB 上限来说过大):
根本原因分析
默认情况下,Tekton Pipelines 通过容器的 termination message 捕获 Task 结果,而 Kubernetes 将其限制为 4 KB。 这实际上将单个 Task 可用的 result 大小上限限制为 4096 bytes。
为了提高这个上限,Tekton 支持从 sidecar 日志 中读取结果,并对每个 result 应用可配置的 max-result-size。
故障排查
TIP
以下说明假设你已将 Tekton Pipeline 默认安装到 tekton-pipelines 命名空间中。
如果你安装到了其他命名空间,请将 tekton-pipelines 替换为你的命名空间。
下面是配置 result 大小限制的步骤:
-
按如下方式编辑 TektonConfig 资源,设置
spec.pipeline.results-from和spec.pipeline.max-result-size: -
feature-flagsConfigMap 将自动更新。 -
由于已启用
results-from: sidecar-logs功能,因此需要为 controller 配置日志访问权限:技术说明:此配置允许 controller 从 Pod 日志中检索 result 信息。有关详细信息,请参阅 Tekton 官方文档。
-
无需手动重启任何组件,变更将自动生效。