为什么kubernetes rolling-update的更新周期值应该很长(默认值:1m0s)?

时间:2016-08-26 18:15:58

标签: kubernetes google-kubernetes-engine

我想知道如果我将--update-period(默认值为1m0s)减少到大约5s(甚至1s)会有什么潜在的问题?我看了几个视频片段,主持人似乎暗示短时间内但不解释原因是个坏主意。

我之所以想缩短它的原因是我们有时更喜欢快速而有点风险的过渡,而不是安全稳定的过渡。据我所知,滚动更新的作用是:

while the goal has not been achieved {
  scale-up the new version
  sleep as specified by --update-period
  scale-down the old one
  check deadline
}

从上面的流程来看,我没有看到长时间不睡觉的问题。截止日期检查基于超时配置,因此,更改--update-period的唯一结果似乎是更频繁地迭代循环。

我还没有完全理解的一件事是如何执行缩减,但我认为它仍然会进行正常终止,例如发送SIGTERM并等待30秒直到最后将SIGKILL发送到pod中的进程。

仅供参考,我正在使用Google容器引擎。

1 个答案:

答案 0 :(得分:0)

应该不长,这只是一个预防措施,以防pod转换到Running状态但几秒后崩溃。如果您的更新周期很短,您将继续部署最终不稳定的广告连播,并且不会给整个过程留出足够的时间来注意。

如果您愿意承担风险,那么更新期很短。

此外,如果您想要真正快速可靠的部署,则应检查Deployment API。滚动更新逻辑发生在服务器端,提高了可靠性和速度。