我们有一个AKS群集,有时我们会遇到需要重新启动部署的问题(例如,缓存数据已更新,我们希望刷新它,或者存在损坏的缓存数据,我们希望刷新)。
我一直使用的方法是将部署扩展到0,然后使用以下命令将其扩展回来:
kubectl scale deployments/<deploymentName> --replicas=0
kubectl scale deployments/<deploymentName> --replicas=1
这是我所期望的,但感觉有点笨拙,这意味着在此过程进行时,我们没有运行任何部署。
哪种方法更好?是针对特定部署还是针对所有部署?
3条答案
按热度按时间vsnjm48y1#
如果您的部署策略为
RollingUpdate
,则可以删除单元以替换和刷新单元。关于滚动更新策略:
用户希望应用程序随时可用,而开发人员则希望一天部署几次新版本的应用程序。在Kubernetes中,这是通过滚动更新来实现的。滚动更新通过用新示例增量更新Pod示例,使部署更新在零停机时间的情况下进行。
滚动更新配置:
maxSurge
指定可在所需Pod数上创建的最大Pod数。maxUnavailable
指定更新过程中不可用的最大Pod数。删除窗格:
编辑:
此外,您还可以推出部署,这将重新启动Pod,但也会创建部署的新修订版本。
例如:
kubectl rollout restart deployments/<deployment-name>
lyr7nygr2#
如何重新启动群集中的所有部署(多个命名空间):
hjzp0vay3#
如果在新部署中更改了这些值中的任何一个,当前Pod将重新创建/重新启动