我如何等待所有Kubernetes pod都是2/2并且状态处于运行阶段?

s8vozzvw  于 2023-06-28  发布在  Kubernetes
关注(0)|答案(1)|浏览(166)

我正在写一个shell脚本,我需要等待所有的pod都在2/2中,并且在继续之前处于运行阶段。命名空间中大约有七个pod。我如何才能做到这一点?
我尝试运行一个while循环,检查每个pod是否处于运行状态,并使用以下命令执行2/2:

kubectl get pods -n iit-oratst15 | grep 'Running' | awk 'NR >= 1 && NR < 2{print $2}'

但这似乎不是个好主意
我希望我的脚本等到所有的pod都处于2/2和运行阶段,然后再继续。

abithluo

abithluo1#

您应该能够使用kubectl wait命令。
如果你的所有pod都可以通过一个特定的标签来识别,你可以这样做(假设你的pod的标签app等于example):

kubectl wait --for condition=ready pod -l app=example

如果你想等待所有的Pod而不考虑标签,你可以运行:

kubectl wait --for condition=ready $(kubectl get pod -o name)

第二个kubectl命令(kubectl get pod -o name)生成一个pod列表,如下所示:

pod/name_of_pod1
pod/name_pof_pod2
.
.
.

它为kubectl wait命令提供适当的参数。

相关问题