Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用shell脚本等待Kubernetes的POD列表成功_Shell_Kubernetes_Kubectl - Fatal编程技术网

如何使用shell脚本等待Kubernetes的POD列表成功

如何使用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

我试图找到一个命令或示例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         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