前面的命令带有超时,以确保在“kubectl wait”之前创建 Pod

问题描述 投票:0回答:1

是否有一个命令可以在以下命令之前执行(如果 pod 尚不存在则失败),并且会在指定的超时时间内等待 pod 创建?

kubectl wait -n olm pod --for=condition=Ready -l olm.catalogSource=argocd-catalog --timeout=120s
kubernetes kubectl
1个回答
0
投票

您可以在条件之间使用

&&
(和)和
||
(或)。

以下组合命令尝试运行/创建 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。

© www.soinside.com 2019 - 2024. All rights reserved.