"kubectl rollout restart deploy" 会导致停机吗?

Does "kubectl rollout restart deploy" cause downtime?

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

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

有人知道吗?

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

操作 语法 描述
推出 kubectl rollout SUBCOMMAND [选项] 管理资源的发布。有效的资源类型包括:部署、daemonsets 和 statefulsets。

但是我找不到关于具体“rollout restart deploy”的详细信息。

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

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

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

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

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

readiness probes 添加到您的部署以配置初始延迟。

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

  1. After restart it will create new pods for a each deployments
  2. Once new pods are up (running and ready) it will terminate old pods

Add readiness probes to your deployments to configure initial delays.

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