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

Eti*_*mel 2 gcloud kubernetes google-kubernetes-engine

我正在使用带有Kubernetes 0.20.2的群集的Google容器引擎.

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

这里的一切都很好; 然后我想使用kubectl命令将更新滚动到另一个图像:

kubectl rolling-update my-rc \
  --image=gcr.io/project/gcloudId:my-image-updated \
  --update-period=0m
Run Code Online (Sandbox Code Playgroud)

关于我的理解,运行此命令应该注意零停机时间.不幸的是,我在循环中使用curl命令进行了一些测试,我仍然有几秒的停机时间.任何想法为什么会这样?

Ale*_*son 7

--update-period标志告诉Kubernetes它正在滚动更新的每个pod之间等待多长时间.更新周期设置为0时,Kubernetes将立即更新所有窗格,导致新窗格启动时短时间不可用.您应该设置--update-period为至少与每个pod初始化时一样长.如果您不想考虑它,几乎所有情况下的默认值(1分钟)都应该没问题.