如何使用Shell脚本等待Kubernetes Pod列表成功完成

时间:2018-10-17 19:43:12

标签: shell kubernetes kubectl

我正在尝试找到命令或示例shell片段,在这里我可以等到Kubernetes容器列表成功完成。我已经检查过answer,但没有给出任何输出。有人可以指导我或建议一种方法吗,我对kubernetes完全陌生。

kubectl -n test-ns get jobs -w

NAME     DESIRED   SUCCESSFUL   AGE
test-1    1         1            2d
test-2    1         1            2d
test-3    1         1            2d
test-4    1         1            2d


until kubectl get jobs -n test-ns  -o jsonpath='{.status.conditions[?(@.type=="Complete")].status}' | grep True ; do sleep 1 ; done

这没有给出任何输出

3 个答案:

答案 0 :(得分:3)

要等到Pod运行起来,请检查“ condition = ready”并按应用标签进行过滤,例如:

$ kubectl wait --for=condition=ready pod -l app=netshoot 
pod/netshoot-58785d5fc7-xt6fg condition met

答案 1 :(得分:1)

您需要使用此命令

kubectl rollout status 

答案 2 :(得分:1)

如果要使用here中所述的kubectl来获取所有作业,则需要在JSONpath中使用.items[*]...(答案仅适用于一项特定的作业)。例如:

kubectl -n test-ns get jobs \
  -o jsonpath='{.items[*].status.conditions[?(@.type=="Complete")].status}' \
  | grep True