我在使用 Kubernetes 0.20.2 的集群中使用 Google Container Engine。
在这个集群中,我有 1 个复制 Controller (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 将一次性更新所有 Pod,导致新 Pod 启动时出现短时间不可用。您应该将 --update-period
设置为至少与每个 pod 初始化所需的时间一样长。如果您不想考虑的话,默认值(1 分钟)应该适用于几乎所有情况。
关于gcloud - kubectl 滚动更新有几秒钟的停机时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31526113/