kubectl-如何重新启动部署(或所有部署)

时间:2020-10-08 21:55:23

标签: kubernetes azure-aks

我们有一个AKS集群,有时会遇到一个问题,即部署需要重新启动(例如,缓存数据已更新,我们要刷新它,或者有损坏的缓存数据要刷新)。

我一直在使用将部署比例缩放为0,然后使用以下命令将其比例缩放的方法:

kubectl scale deployments/<deploymentName> --replicas=0
kubectl scale deployments/<deploymentName> --replicas=1

这确实达到了我的预期,但是感觉很hacky,这意味着在此过程进行期间我们没有运行任何部署。

什么是更好的方法?对于特定部署还是所有部署?

1 个答案:

答案 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>

相关问题