kubernetes有没有办法等待守护程序就绪

kubernetes有没有办法等待守护程序就绪,kubernetes,Kubernetes,我不确定守护进程中是否存在就绪状态。我的意思是,该守护程序拥有的所有豆荚都准备好了 我知道kubectl wait,但它似乎无法检查守护程序的就绪情况。我建议使用以下命令从您的守护程序获取POD: kubectl get pods -l <daemonset-selector-key>=<daemonset-selector-value> kubectl获得吊舱-l= 然后检查循环中这些吊舱的状态,看看它们是否准备好了。试试这个 function wait-for-d

我不确定守护进程中是否存在就绪状态。我的意思是,该守护程序拥有的所有豆荚都准备好了


我知道kubectl wait,但它似乎无法检查守护程序的就绪情况。

我建议使用以下命令从您的守护程序获取POD:

kubectl get pods -l <daemonset-selector-key>=<daemonset-selector-value>
kubectl获得吊舱-l=
然后检查循环中这些吊舱的状态,看看它们是否准备好了。

试试这个

function wait-for-daemonset(){
    retries=10
    while [[ $retries -ge 0 ]];do
        sleep 3
        ready=$(kubectl -n $1 get daemonset $2 -o jsonpath="{.status.numberReady}")
        required=$(kubectl -n $1 get daemonset $2 -o jsonpath="{.status.desiredNumberScheduled}")
        if [[ $ready -eq $required ]];then
            #echo "Succeeded"
            break
        fi
        ((retries--))
    done
}

是的,这很简单,但我想知道是否有可能一些豆荚没有被创建。例如,如果ds即将创建100个吊舱,并且只创建了10个就绪吊舱,但90个吊舱仍在创建过程中。所以我想知道检查吊舱是否不是正确的解决方案。但是这些吊舱将处于挂起状态,所以您可以检查它。Pods=/=containersAFAIK,挂起状态为pod已创建但未计划,我知道如果pod处于挂起状态,这将起作用。但我的意思是有些豆荚甚至并没有被创建。所以,也许再检查一下豆荚的数量是否等于节点的数量?这可以通过
kubectl get nodes
很容易地完成,但是有些节点可能有污染,或者ds选择不在某些节点中运行。所以,我想知道K8是否提供了定义ds就绪性这样的机制。