说我有一个内存中的Deployment对象,测试它是否已准备就绪的正确方法是什么? (不在部署,升级或回滚过程中)。
答案 0 :(得分:1)
我无法发表评论,所以这必须是一个答案。
我认为这样做没有 正确的方法 ,因为它取决于许多变量。例如您精通哪些语言等等。
在我工作的地方,我们运行kubectl get pods
并grep相关信息(在这种情况下,如果pod可用(就绪),则全部通过bash
运行)启动脚本:
function not_ready_count() {
kubectl ${1} get pods -o json | jq -r '.items[].status.conditions[].status' | grep False | wc -l | awk '{ print $1 }'
}
function not_running_count() {
kubectl ${1} get pods -o json | jq -r '.items[].status.phase' | grep -v Running | wc -l | awk '{ print $1 }'
}
function wait_until_running_and_ready() {
sleep 2
while [[ "$(not_running_count ${1})" != "0" ]]; do
echo "waiting for $(not_ready_count ${1}) pods to start"
sleep 3
done
while [[ "$(not_ready_count ${1})" != "0" ]]; do
echo "waiting for $(not_ready_count ${1}) status probes to pass"
sleep 3
done
sleep 2
}