是否有一个命令可以在以下命令之前执行(如果 pod 尚不存在则失败),并且会在指定的超时时间内等待 pod 创建?
kubectl wait -n olm pod --for=condition=Ready -l olm.catalogSource=argocd-catalog --timeout=120s
您可以在条件之间使用
&&
(和)和 ||
(或)。
以下组合命令尝试运行/创建 mypod。如果在特定的超时时间内创建,则会创建 mypod。在
||
之后,delete
命令不会运行,因为之前的命令可以正常工作。
kubectl run mypod --image=nginx && kubectl wait --for=condition=Ready pod/mypod --timeout=20s || kubectl delete pod mypod
输出:
pod/mypod created
pod/mypod condition met
最坏的情况:以下命令尝试运行nginx2(由于
ImagePullBackOff
,它不起作用)。它首先创建了 pod,但 pod 尚未准备好,因此它将在 delete
之后运行 ||
命令。
kubectl run mypod --image=nginx2 && kubectl wait --for=condition=Ready pod/mypod --timeout=20s || kubectl delete pod mypod
输出:
pod/mypod created
error: timed out waiting for the condition on pods/mypod
pod "mypod" deleted
您可以使用
get pods
创建类似的组合,而不是创建 Pod。