我的工作是:
库伯奈特斯1.3.6
。。在我的应用程序的部署文件中使用此部分:
livenessProbe: httpGet: path: /liveness port: 8082 initialDelaySeconds: 120
。。所以当我描述吊舱的时候我得到了这个
活性: http-get http://:8082/liveness delay=120s timeout=1s period=10s #success=1 #failure=3
我的应用程序通常在110-115秒内启动,但有时需要更多时间(由于DB延迟、外部服务重试等等)。
我看到的问题是,当超过130/140秒(initialDelaySeconds +周期),库伯奈特斯强制关闭和吊舱重新启动从零。当您有大量的副本(50-60)时,这意味着完全部署有时比正常的要花费10-15分钟的时间。显然,一个解决方案是增加initialDelaySeconds,,但是所有的部署都需要更多的时间。
我在这里看了一下,似乎没有什么能解决这个问题:probe
理想情况下,我希望有一个相反的工作方式:不是一个"initialDelaySeconds",而是一个最大的时间来启动吊舱。如果这段时间过去了,库伯奈特斯就会迫使吊舱关闭,然后再试一次。
发布于 2016-09-09 16:04:36
我最终得到了一个很好的解决方案,这个解决方案目前是完美的!
我设定:
所以库伯内特斯(在readinessProbe.initialDelaySeconds之后)开始检查准备好的探测器,以便将吊舱添加到平衡中。然后(在livenessProbe.initialDelaySeconds之后)它也开始检查活性探针,以防吊舱需要重新启动。
https://stackoverflow.com/questions/39331991
复制相似问题