0

只要任务由以下人员执行,我就可以登录到 taskrun pod:

kubectl exec $POD_NAME /bin/bash

但是,如果任务失败或完成。我无法通过 kubectl exec 命令登录,因为它声明“无法登录已完成的任务”。

如果需要调试失败的任务,是否有任何方法可以附加到 Tekton 中失败/已完成任务的控制台。

我在 minikube 环境中运行。

4

1 回答 1

0

Tekton 任务是 Pod。当它们完成或失败时:该 pod 退出,这使您无法进入。

故障排除,您可以编辑您的任务,捕获错误并启动一些“睡眠”命令,这可能有助于解决问题。

或者,在不冒影响其他工作的风险的情况下,我通常更愿意重新创建与我失败的任务相对应的 Pod。

$ kubectl get pods -n <ci-namespace> | grep <taskrun-name>
NAME
<tasksrun>-xxx-yyy
$ kubectl get pods -n <ci-namespace <taskrun>-xxx-yyy -o yaml >check.yaml

然后,编辑该 yaml 文件。删除所有元数据,除非名称/命名空间。更改 metadata.name,确保您的 pod 有自己的名称。删除状态块。在需要的地方捕捉失败并添加你的“睡眠”。然后 kubectl 创建该文件并输入您的 pod。

根据您的故障排除内容,将一些 PVC 工作区添加到您的任务中可能会更容易,确保您的工作目录、日志、构建的资产……最终位于可以从单独的容器挂载的某个卷中,应该您需要对其进行故障排除。

或者:如果你足够快,只需重新运行你的管道/任务,在它启动时进入它的容器,并在它失败之前尝试对其进行故障排除。

于 2022-01-30T14:45:21.967 回答