我试图为docker-swarm rollback
命令寻找替代方法,该命令可让您在部署文件中指定回滚策略。
理想情况下,在k8中,它应使用readinessProbe
,如果未通过failureThreshold
,则应回滚,然后再开始部署下一个Pod(以避免停机)。
当前,在我的部署脚本中,我使用的钩子kubectl rollout status deployment $DEPLOYMENT_NAME || kubectl rollout undo deployment $DEPLOYMENT_NAME
可以正常工作,但这并不理想,因为在部署了不健康的Pod之后,第一个推出命令将触发错误方式,一个健康的pod将被销毁。会导致停机。
理想情况下,在新的Pod通过readinessProbe
答案 0 :(得分:2)
在Kubernetes部署中没有特定的回滚策略。您可以尝试将RollingUpdate与max unavailable(又名Proportional Scaling)结合使用,然后在pause your deployment某个方面一切正常的情况下恢复,然后在出现问题时回滚。>
推荐的方法实际上是使用另一部署,因为canary通过负载平衡器在金丝雀和非金丝雀之间分配流量,然后,如果一切顺利,请升级非金丝雀并关闭金丝雀。如果出现问题,请关闭金丝雀,并保持非金丝雀直到问题解决。
另一种策略是使用类似Istio的方法来简化canary deployments。