我们有一个AKS集群,有时会遇到一个问题,即部署需要重新启动(例如,缓存数据已更新,我们要刷新它,或者有损坏的缓存数据要刷新)。
我一直在使用将部署比例缩放为0,然后使用以下命令将其比例缩放的方法:
kubectl scale deployments/<deploymentName> --replicas=0
kubectl scale deployments/<deploymentName> --replicas=1
这确实达到了我的预期,但是感觉很hacky,这意味着在此过程进行期间我们没有运行任何部署。
什么是更好的方法?对于特定部署还是所有部署?
答案 0 :(得分:4)
如果您的部署策略为RollingUpdate
,则可以删除吊舱以便更换吊舱并刷新它。
关于RollingUpdate策略:
用户期望应用程序始终可用,而开发人员 预计每天要部署几次新版本。在 Kubernetes可以通过滚动更新来完成。滚动更新允许 部署更新将在零停机时间的情况下逐步进行 用新的实例更新Pods实例。
RollingUpdate配置:
spec:
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
maxSurge
指定可以在所需数量的Pod上创建的最大Pod。
maxUnavailable
指定在更新过程中不可用的Pod的最大数量。
删除窗格:
kubectl delete pod <pod-name>
编辑:
此外,您可以重新启动部署本身,将杀死pod以便重新启动它,但是也会创建该部署的新修订版。
例如:kubectl rollout restart deployments/<deployment-name>