美文网首页
Kubernetes等待部署完成 kubectl wait ro

Kubernetes等待部署完成 kubectl wait ro

作者: wlchn | 来源:发表于2019-03-18 18:28 被阅读0次

    使用kubectl apply或者create命令创建/更新部署后,其pod需要时间完成创建/更新。
    如果在CI中不等待所有pod更新完成,下一步流程很有可能使用更新前的环境。

    正确方法 kubectl rollout status

    根据实际情况kubectl rollout status命令,能够正确的获取rollout status。

    ATTEMPTS=0
    ROLLOUT_STATUS_CMD="kubectl rollout status deployment/myapp -n namespace"
    until $ROLLOUT_STATUS_CMD || [ $ATTEMPTS -eq 60 ]; do
      $ROLLOUT_STATUS_CMD
      ATTEMPTS=$((attempts + 1))
      sleep 10
    done
    

    以上shell脚本经过轮询kubectl rollout status可以很好的解决实际问题。

    错误方法 kubectl wait

    注意kubectl wait命令不能适用于更新部署。

    kubectl wait --for=condition=available --timeout=600s deployment/myapp -n namespace
    

    该命令只能判断deployment是否available,不能用来判断rollout,即available状态的deployment,很可能老的pod还在terminating,新的pod还没创建好。

    references

    相关文章

      网友评论

          本文标题:Kubernetes等待部署完成 kubectl wait ro

          本文链接:https://www.haomeiwen.com/subject/fwvbmqtx.html