是否可以使用kubectl监视作业的输出(STDOUT和STDERR)?我们需要等待作业完成以观察其输出,如果作业以错误完成,则应中断整个过程。
我想将作业输出(STDOUT和STDERR)重定向到我当前的进程STDOUT。我要等待工作完成。如果错误完成,当前进程(通过kubectl触发了作业)也应该错误完成。我知道kubectl wait
,但据我所知,它不支持监听作业输出。
答案 0 :(得分:0)
您可以尝试以下几种选择:
kubectl logs --follow $POD
如果您在定位合适的吊舱时遇到麻烦,请先kubectl describe job $JOB
窗格名称将在“事件”下
kubectl logs -f my-pod
-流pod日志(stdout)kubectl logs -f my-pod -c my-container
-流容器容器日志(stdout,多容器情况)kubectl logs -f -l name=myLabel --all-containers
-流式传输所有标签名称为myLabel(stdout)的Pod日志有关更多信息,请参见here
--for=condition=xxxxx
之类的适当标志
成功消息将被打印到标准输出,指示何时满足指定条件。答案 1 :(得分:0)
我们最终使用了三个命令来完成任务。首先,我们删除旧作业(它可能之前已经运行过),创建新作业,等待完成(带有超时),完成后,我们打印日志:
kubectl delete job my-job || true
kubectl apply -f ./jobs/my-job.yaml
kubectl wait --for=condition=complete job/my-job --timeout=60s
echo "Job output:"
kubectl logs job/my-job