kubectl 滚动更新有几秒钟的停机时间

kubectl rolling-update having a downtime of few seconds

我正在使用 Google 容器引擎和一个使用 Kubernetes 0.20.2.

的集群

在这个集群中,我有 1 个复制控制器(2 个副本)1 个服务,规范类型定义为 LoadBalancer(基本设置)。

这里一切正常; 然后我想使用 kubectl 命令滚动更新到不同的图像:

kubectl rolling-update my-rc \
  --image=gcr.io/project/gcloudId:my-image-updated \
  --update-period=0m

根据我的理解,运行 此命令应该负责零停机时间。不幸的是,我一直在循环使用 curl 命令进行一些测试,但仍然有几秒钟的停机时间。 知道为什么会这样吗?

--update-period 标志告诉 Kubernetes 在滚动更新的每个 pod 之间等待多长时间。将更新周期设置为 0 时,Kubernetes 将立即更新所有 pods,导致新的 pods 启动时出现短时间不可用。您应该将 --update-period 设置为至少与每个 pods 初始化所花费的时间一样长。如果您不想考虑的话,默认值(1 分钟)应该适用于几乎所有情况。