当Kubernetes活跃度探测失败时,是否可以指定Pod重新启动的延迟?

时间:2020-07-28 15:54:24

标签: kubernetes gunicorn

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

脚本运行正常,并按预期方式重新启动Pod。但是有一些实时线程仍在处理请求。另外,由于其他请求正在处理中,所以gunicorn保留了尚未处理的已接受请求的积压队列。有没有一种方法可以指定Pod重新启动的延迟,以便其他正在运行的线程和积压请求有一些时间来完成处理?

2 个答案:

答案 0 :(得分:3)

您可以使用止动钩。官方文档here

如何使用已记录的here

您还可以使用TerminationGracePeriodSeconds来正常终止Pod。

最佳做法here

答案 1 :(得分:1)

您可以使用terminationGracePeriodSeconds

配置优美的pod终止
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
    name: test
spec:
    replicas: 1
    template:
        spec:
            containers:
              - name: test
                image: ...
            terminationGracePeriodSeconds: 60
相关问题