Kubernetes Go客户端SDK:检查部署是否完全就绪

Kubernetes Go客户端SDK:检查部署是否完全就绪,kubernetes,Kubernetes,假设我有一个内存中的部署对象,测试它是否完全就绪的正确方法是什么?(不在推出、升级或回滚过程中)。我无法发表评论,因此必须给出答案 我认为没有一个正确的方法,因为这取决于许多变量。比如你精通什么语言等等 在我工作的地方,我们运行一个kubectl get pods,并grep相关的信息(在这种情况下,如果pod可用(就绪)或不可用)。这都是作为启动脚本的一部分通过bash运行的: function not_ready_count() { kubectl ${1} get pods -o j

假设我有一个内存中的部署对象,测试它是否完全就绪的正确方法是什么?(不在推出、升级或回滚过程中)。

我无法发表评论,因此必须给出答案


我认为没有一个正确的方法,因为这取决于许多变量。比如你精通什么语言等等

在我工作的地方,我们运行一个
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
}

我不明白为什么这个问题被一些人否决了。有什么问题吗?请参阅
kubectl卷展状态
源代码