如何使用shell脚本等待Kubernetes的POD列表成功
我试图找到一个命令或示例shell片段,在那里我可以等到Kubernetes吊舱列表成功。我已经检查过了,但它没有给出任何输出。如果有人能给我指导或建议一种方法,我对库伯内特斯是完全陌生的如何使用shell脚本等待Kubernetes的POD列表成功,shell,kubernetes,kubectl,Shell,Kubernetes,Kubectl,我试图找到一个命令或示例shell片段,在那里我可以等到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
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
这不会给出任何输出您需要使用此命令
kubectl rollout status
如果您想在获取所有作业的地方使用kubectl,则需要在JSONpath中使用
.items[*]…
(该答案仅适用于一个特定作业)。例如:
kubectl -n test-ns get jobs \
-o jsonpath='{.items[*].status.conditions[?(@.type=="Complete")].status}' \
| grep True
$ kubectl wait --for=condition=ready pod -l app=netshoot
pod/netshoot-58785d5fc7-xt6fg condition met
要等待POD运行,请检查“condition=ready”并按应用程序标签进行筛选,例如:
kubectl -n test-ns get jobs \
-o jsonpath='{.items[*].status.conditions[?(@.type=="Complete")].status}' \
| grep True
$ kubectl wait --for=condition=ready pod -l app=netshoot
pod/netshoot-58785d5fc7-xt6fg condition met