3

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

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

有人知道吗?

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

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

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

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

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

4

2 回答 2

3

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

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

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

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

于 2021-07-22T19:18:55.710 回答
3

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

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

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

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

于 2021-07-22T19:42:39.260 回答