0

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

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

它使我们免于因为豆荚启动太慢而永远被杀死。但是在扩大规模、崩溃恢复的情况下,我们会在新启动的 pod 加入服务之前失去几秒/分钟的时间。

有什么办法可以优化吗?一种在初始延迟之前告诉 kubernetes“我们已经上线,你可以开始使用 liveness probe”的方法了吗?

4

2 回答 2

0

对于初学者来说,这根本不会发生。活性探针不控制 pod 如何加入服务,如您所述,如果它无法满足探针,它将重新启动容器,但在将其添加为服务端点之前,它不会使服务等待成功的活性探针。为此,您有一个单独的readiness探针。因此,这对您来说应该不是问题(顺便说一句。您可能希望同时使用准备就绪和活跃度探针来获得最佳过程)

于 2018-01-24T13:15:32.007 回答
0

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

于 2018-01-25T06:31:01.927 回答