【问题标题】:How to reduce the "unhealthy" delay during pod startup?如何减少 pod 启动期间的“不健康”延迟?
【发布时间】:2018-01-24 12:41:42
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: kubernetes monitoring scalability kubernetes-health-check


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-25
        • 2020-01-26
        • 2015-04-04
        • 2012-08-10
        • 1970-01-01
        • 2022-01-18
        • 2018-03-01
        • 2013-03-17
        相关资源
        最近更新 更多