滚动更新被迫删除旧的pod?

时间:2016-01-19 09:17:56

标签: kubernetes

如果强制滚动更新删除旧pod,则会中断一些关于旧pod的响应。 例: Rc(myapp)定义副本2并包含2个pod(myapp-mtlz8,myapp-an78c)。 rolling-update rc(myapp)。 创建新pod时(myapp-ed4988fb0b53ed961037a026068d1a3d-i8wvt)并开始删除旧pod(myapp-mtlz8)。 如果旧pod正在处理某些请求,但旧pod将被删除。所以有些请求没有完成旧的pod。

是否: 1.服务不代理旧pod 等待旧吊舱完成了所有请求 3.删除旧pod

1 个答案:

答案 0 :(得分:0)

我提出了一个问题来记录推荐的做法。我在这个问题上写了一个方法草图:

https://github.com/kubernetes/kubernetes/issues/20473

  • 确保pod具有非零的terminationGracePeriodSeconds设置
  • 在pod的主要服务容器上配置readinessProbe
  • 处理应用程序中的SIGTERM:使readinessProbe失败但继续*处理正常请求而不退出
  • 将maxUnavailable和/或maxSurge设置得足够大,以确保Deployment API规范中有足够的服务实例(1.2中提供)