Kubernetes等待部署完成

在CI/CD的时候,我们有时候需要等待部署完成,pod已经正常运行后,再进入容器执行一些命令,例如laravel环境下,我们需要等pod起来后,再执行migrate。

正确的方式应该是判断status,而不是使用kubectl wait

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

因为这样只能判断deployment是否OK,并不能判断容器是否OK,正确的应该是以下脚本方式

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

 

Kubernetes等待部署完成

上一篇:Kubernetes权限管理之RBAC (一)


下一篇:NET CORE 命令行创建项目