【问题标题】:Is it possible to specify a delay for pod restart when Kubernetes liveness probe fails?当 Kubernetes 活跃度探测失败时,是否可以指定 pod 重启的延迟?
【发布时间】:2020-07-28 15:54:24
【问题描述】:

有一个用 python gunicorn 构建的简单 REST API 服务器,它运行多个线程来接受请求。运行一段时间后,其中一些线程崩溃。有一个脚本来检测死线程的数量(使用日志文件)。一旦这个数字超过某个阈值,我们就想重新启动 gunicorn。该脚本配置为liveness probe

脚本运行良好并按预期重新启动 pod。但是有一些活动线程仍在处理请求。此外,gunicorn 保留了一个它无法处理的已接受请求的积压队列,因为其他请求正在处理中。有没有办法指定 pod 重启的延迟,以便其他正在运行的线程和积压请求有一些时间来完成处理?

【问题讨论】:

  • @ArghyaSadhu liveness probe 自身重启 pods

标签: kubernetes gunicorn


【解决方案1】:

您可以使用 prestop 挂钩。官方文档here

如何使用记录在案的here

您还可以使用 terminateGracePeriodSeconds 来允许 pod 正常终止。

最佳实践here

【讨论】:

    【解决方案2】:

    您可以使用 terminationGracePeriodSeconds 配置优雅的 pod 终止

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
        name: test
    spec:
        replicas: 1
        template:
            spec:
                containers:
                  - name: test
                    image: ...
                terminationGracePeriodSeconds: 60
    

    【讨论】:

      猜你喜欢
      • 2020-09-12
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多