如何检查命名空间是否处于活动状态

How to check if a namespace is active

我正在使用以下命令检查命名空间是否处于活动状态

kubectl wait --for=condition=items.status.phase=Active namespace/mynamespace --timeout=2s

这总是 returns“错误:等待 namespaces/mynamespace 上的条件超时”,尽管命名空间处于活动状态。 是否有等待命名空间激活的正确方法?此脚本是检查命名空间在 AKS 群集重启后是否处于活动状态的作业的一部分。

迄今为止 status 未被识别 condition。尝试:

while ! [ "$(kubectl get ns <change to your namespace> -o jsonpath='{.status.phase}')" == "Active" ]; do echo 'Waiting for namespace to come online. CTRL-C to exit.'; sleep 1; done

timeout_value=3
starttime=$(date +%s)
while [ $(( $(date +%s) - $timeout_value )) -lt $starttime ]; do
     status=$(kubectl get ns mynamespace -o jsonpath='{.status.phase}')
     status=${status:-"X"}
     echo $status
     if [ "$status" == "Active" ];then
        echo " test"
        break
     fi
done

修改@gohm'c 的答案以包含 3 秒的超时值。