如何减少pod启动期间的“不健康”延迟?

时间:2018-01-24 12:41:42

标签: kubernetes monitoring scalability kubernetes-health-check

我正在使用kubernetes来启动java pod。 pod启动延迟在10秒到大约一分钟之间变化,具体取决于节点的负载,迁移表所需的时间,...

为了避免kubernetes杀死正在启动的pod,我们将liveness探测设置为初始延迟2分钟。

它使我们免于被永久杀死的豆荚因为它们开始得太慢。但是在扩展,崩溃恢复的情况下,我们会在刚刚启动的pod加入服务之前的几秒钟/几分钟内放松。

有没有办法优化它? 告诉kubernetes“我们现场,你可以在最初的延迟之前开始使用活力探测器”吗?

2 个答案:

答案 0 :(得分:0)

首先,这根本不会发生。 Liveness探针不控制pod如何连接到服务,正如您所述,如果它无法满足探测,它将重新启动容器,但在将其添加为服务端点之前,它不会使服务等待成功的活动探测。为此,您有一个单独的readiness探测器。所以这对你来说应该是没有问题的(顺便说一句。你可能想要使用准备和活力探测来获得最佳过程)

答案 1 :(得分:0)

我认为你需要减少容器正在做的工作。 您提到了数据库迁移。最好将它们作为一次性工作提供给Kubernetes,而不是试图在每次启动时运行它们。对于某个版本的软件,您只能执行一次,每次后续启动仍需要检查数据库架构是否已经是最新的。