“kubectl rollout restart deploy”是否会导致停机?

Die*_*ias 7 rollout kubernetes kubectl

由于实施原因,我正在尝试重新启动命名空间的所有部署。

我正在使用“kubectl rollout -n restart deploy”,它工作得很好,但我不确定该命令会导致停机,或者它是否作为“rollout update”工作,一一应用重新启动,保持我的服务正常运行。

有人知道吗?

在文档中我只能找到这个:

手术 句法 描述
推出 kubectl rollout 子命令 [选项] 管理资源的推出。有效的资源类型包括:部署、守护进程集和状态集。

但我找不到有关特定“推出重新启动部署”的详细信息。

我需要确保它不会导致停机。现在很难说,因为重启过程非常快。

更新:我知道对于一个特定的部署(kubectl rollout restart deployment/name),它按预期工作并且不会导致停机,但我需要将其应用到所有命名空间(不指定部署),这就是我的情况我不确定。

pcs*_*tar 7

kubectl rollout restart deploy -n namespace1将在零停机时间下重新启动指定命名空间中的所有部署。

重新启动命令将按如下方式工作:

  1. 重新启动后,它将为每个部署创建新的 Pod
  2. 一旦新的 Pod 启动(运行并准备就绪),它将终止旧的 Pod

将就绪探针添加到您的部署中以配置初始延迟。


mea*_*gqo 7

@pcsutar 的答案几乎是正确的。kubectl rollout restart $resourcetype $resourcename根据其更新策略重新启动您的部署、守护程序集或状态集。因此,如果将其设置为,rollingUpdate它将表现得与上面的答案完全相同:

  1. 重新启动后,它将为每个部署创建新的 Pod
  2. 一旦新的 Pod 启动(运行并准备就绪),它将终止旧的 Pod

将就绪探针添加到您的部署中以配置初始延迟。

但是,例如,如果策略是type: recreate属于部署的所有当前正在运行的 Pod 将在新 Pod 启动之前终止!

  • 感谢您的补充解释,对我帮助很大。在这种情况下,我的部署策略是“滚动部署”,因此它会按我的预期工作,但是由于您的解释,我可以小心使用“重新创建”策略 (2认同)