Kubernetes自动回滚

时间:2018-12-04 05:12:05

标签: kubernetes

我试图为docker-swarm rollback命令寻找替代方法,该命令可让您在部署文件中指定回滚策略。 理想情况下,在k8中,它应使用readinessProbe,如果未通过failureThreshold,则应回滚,然后再开始部署下一个Pod(以避免停机)。

当前,在我的部署脚本中,我使用的钩子kubectl rollout status deployment $DEPLOYMENT_NAME || kubectl rollout undo deployment $DEPLOYMENT_NAME可以正常工作,但这并不理想,因为在部署了不健康的Pod之后,第一个推出命令将触发错误方式,一个健康的pod将被销毁。会导致停机。

理想情况下,在新的Pod通过readinessProbe

之前,它甚至不应该杀死当前Pod

1 个答案:

答案 0 :(得分:2)

在Kubernetes部署中没有特定的回滚策略。您可以尝试将RollingUpdatemax unavailable(又名Proportional Scaling)结合使用,然后在pause your deployment某个方面一切正常的情况下恢复,然后在出现问题时回滚。

推荐的方法实际上是使用另一部署,因为canary通过负载平衡器在金丝雀和非金丝雀之间分配流量,然后,如果一切顺利,请升级非金丝雀并关闭金丝雀。如果出现问题,请关闭金丝雀,并保持非金丝雀直到问题解决。

另一种策略是使用类似Istio的方法来简化canary deployments