只要任务由以下人员执行,我就可以登录到 taskrun pod:
kubectl exec $POD_NAME /bin/bash
但是,如果任务失败或完成。我无法通过 kubectl exec 命令登录,因为它声明“无法登录已完成的任务”。
如果需要调试失败的任务,是否有任何方法可以附加到 Tekton 中失败/已完成任务的控制台。
我在 minikube 环境中运行。
只要任务由以下人员执行,我就可以登录到 taskrun pod:
kubectl exec $POD_NAME /bin/bash
但是,如果任务失败或完成。我无法通过 kubectl exec 命令登录,因为它声明“无法登录已完成的任务”。
如果需要调试失败的任务,是否有任何方法可以附加到 Tekton 中失败/已完成任务的控制台。
我在 minikube 环境中运行。
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 工作区添加到您的任务中可能会更容易,确保您的工作目录、日志、构建的资产……最终位于可以从单独的容器挂载的某个卷中,应该您需要对其进行故障排除。
或者:如果你足够快,只需重新运行你的管道/任务,在它启动时进入它的容器,并在它失败之前尝试对其进行故障排除。