命名空间中所有部署的 kubectl rollout 状态

kubectl rollout status for ALL deployments in a namespace

我的命名空间中有许多部署对象。我想同时为所有这些 运行 kubectl rollout status。所以,我希望命令仅在所有部署完成或发生错误时退出。我怎样才能做到这一点?

到目前为止我唯一得到的是:

kubectl get deploy -o name | xargs -n1 -t kubectl rollout status

但我希望有更聪明的东西。

您可以使用这个简单的检查:

#!/bin/bash
deploy=$(kubectl get deploy -o name)
for i in $deploy; do kubectl rollout status $i -w --timeout=30s; done

您还可以使用此 中的线索构建更高级的脚本。

所以我想我想出的是最好的。

kubectl get deploy --output name | \
  timeout -t 300 \
    xargs -n1 -t \
      kubectl rollout status