【发布时间】:2016-09-10 00:04:36
【问题描述】:
我正在与:
kubernetes 1.3.6
.. 这部分在我的应用程序的部署文件中:
livenessProbe: httpGet: path: /liveness port: 8082 initialDelaySeconds: 120
.. 所以当我描述 pod 时我得到了这个
Liveness: http-get http://:8082/liveness delay=120s timeout=1s period=10s #success=1 #failure=3
我的应用程序通常在 110-115 秒内启动,但有时需要更多时间(由于 DB 延迟、外部服务重试等)。
我看到的问题是,当花费超过 130/140 秒(initialDelaySeconds + period)时,kubernetes 会强制关闭,并且 pod 从头开始重新启动。当您有很多副本 (50-60) 时,这意味着完整部署有时比正常部署多花 10-15 分钟。显然,一个解决方案是增加 initialDelaySeconds,但是这样所有的部署都会花费更多的时间。
我看了一下这里,似乎没有什么可以解决这个问题: http://kubernetes.io/docs/api-reference/v1/definitions/#_v1_probe
理想情况下,我希望有一些以相反方式工作的东西:不是“initialDelaySeconds”,而是启动 pod 的最长时间。如果该时间过去了,kubernetes 会强制 pod 关闭并尝试另一次。
【问题讨论】:
标签: timeout kubernetes startup probe