适用于Redis队列工作者的Kubernetes活动探针

时间:2019-10-06 18:58:48

标签: kubernetes redis google-kubernetes-engine

我有一个带有几种不同Pod类型的kubernetes集群。

  • 一个Nginx前端,
  • 在金枪鱼上的烧瓶后端,
  • Redis和
  • Redis队列(RQ)。

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

此外,我还有一个安装程序活动性监视器,它使用Redis-cli对Redis进行ping操作。效果也很好。

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

我的问题是:RQ工作者之类的活动探针是什么?我该怎么做才能确保其健壮性?

我应该使用Supervisor还是systemd之类的东西?关于哪个建议?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

从稳定的redis掌舵图中, https://github.com/helm/charts/blob/master/stable/redis/templates/health-configmap.yaml

Bitnami已在头盔图表中添加了针对redis的运行状况检查。它只是使用redis-cli ping集群。该机制似乎做得很好,可以包含在官方清单中。