我使用 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
关于我的理解,运行此命令应该注意零停机时间。不幸的是,我在循环中使用curl命令进行了一些测试,我仍然有几秒的停机时间。 任何想法为什么会发生这种情况?
答案 0 :(得分:7)
--update-period
标志告诉Kubernetes在每个pod之间等待多长时间才能更新。更新周期设置为0时,Kubernetes将立即更新所有窗格,导致新窗格启动时短时间不可用。您应该将--update-period
设置为至少与初始化每个pod一样长。如果您不想考虑它,几乎所有情况下的默认值(1分钟)都应该没问题。