我正在尝试编写一个小的Shell脚本,以在Pod完成后检查运行时间较长的Kubernetes Pod的日志输出。
脚本应等待状态为“已完成”,但是当状态从“正在运行”切换为“已完成”时,以下命令不会退出:
$ kubectl wait --for = condition =已完成--timeout = 24h pod / longrunningpodname
^ C
$ kubectl获得豆荚
NAME READY STATUS重启年龄
longrunningpodname 0/1已完成0 18h
如果Pod已处于状态,我还希望命令立即返回。但这不会发生。
kubectl是否在等待我要找的命令?
答案 0 :(得分:1)
使用裸容器不是运行必须完成的命令的最佳方法。考虑使用Job Controller:
一项工作会创建一个或多个Pod,并确保指定数量的 他们成功终止。吊舱成功完成后,工作 跟踪成功的完成情况。
然后,您可以等待工作条件:
kubectl wait --for=condition=complete --timeout=24h job/longrunningjobname