首页 > 解决方案 > 用于 redis 队列工作者的 Kubernetes 活跃度探测

问题描述

我有一个 Kubernetes 集群,其中包含几种不同的 pod 类型。

据我所知,前端和烧瓶后端的默认活性探测就足够了(返回 200 OK,因为我创建了一个返回 200 的“/”后端,并且我的所有任务都应该快速运行)。崩溃检测效果很好。

此外,我有一个设置活动监视器,它使用 Redis-cli 对 Redis 执行 ping 操作。这也运作良好。

但是,我不确定 RQ 的默认配置是否足够好。pod 已经重新启动了几次,并且通常表现良好,但由于我不知道使用的机制,我很担心。

我的问题是:像 RQ 工作人员使用的活性探针是什么,我可以做些什么来确保它是健壮的?

我应该使用Supervisor或systemd之类的东西吗?关于哪一个有什么建议吗?

标签: kubernetesredisgoogle-kubernetes-engine

解决方案


似乎 RQ 在 Redis 中设置了心跳键:https ://github.com/rq/rq/blob/e43bce4467c3e1800d75d9cedf75ab6e7e01fe8c/rq/worker.py#L545-L561

你可以检查这是否以某种方式存在。不过,这可能需要一个 exec 探针,此时我不建议使用 exec 探针,因为 exec 探针有几个未解决的错误,这些错误会导致僵尸进程导致资源使用量随着时间的推移而升级。


推荐阅读