vin*_*uza 6 kubernetes kubectl
有没有办法使用 kubectl 观看作业的输出(STDOUT 和 STDERR)?我们需要等待作业完成并观察其输出,如果作业完成时出错,则应中断整个过程。
我想将作业输出(STDOUT 和 STDERR)重定向到我当前的进程 STDOUT。我想等待工作完成。如果它以错误结束,当前进程(通过 kubectl 触发作业)也应该以错误结束。我知道,kubectl wait但据我所知,它不支持收听作业输出。
我们最终使用了三个命令来完成任务。首先,我们删除旧作业(它可能之前运行过),创建新作业,等待它完成(超时),并在完成后打印日志:
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
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下几种选择:
kubectl logs --follow $POD如果您无法找到正确的 Pod,那么第一个kubectl describe job $JOB
Pod 名称将显示在“事件”下方
kubectl logs -f my-pod - 流式 pod 日志(标准输出)kubectl logs -f my-pod -c my-container - 流式 pod 容器日志(标准输出,多容器情况)kubectl logs -f -l name=myLabel --all-containers - 使用标签 name=myLabel (stdout) 流式传输所有 pod 日志--for=condition=xxxxx
成功的消息将打印到 stdout,指示何时满足指定的条件。| 归档时间: |
|
| 查看次数: |
3210 次 |
| 最近记录: |