Dev*_*Dev 7 python django celery self-healing kubernetes
我想为 Celery 工作 Pod 设置活性和就绪探针。由于这些工作单元没有与其关联的特定端口,我发现这很困难。主 Django 应用程序 nginx 服务器更容易设置。
我对 k8s 很陌生,所以对不同的方法不太熟悉。
livenessprobe for celeryworker:此命令仅在启用远程控制时有效。
$ celery inspect ping -d <worker_name> --timeout=<timeout_time>
Run Code Online (Sandbox Code Playgroud)
当 celery 工作线程使用单独池时,健康检查会等待任务完成。在这种情况下,您必须增加等待响应的超时时间。
所以在 yaml 中:
livenessProbe:
initialDelaySeconds: 45
periodSeconds: 60
timeoutSeconds: <timeout_time>
exec:
command:
- "/bin/bash"
- "-c"
- "celery inspect ping -d <worker_name> | grep -q OK"
Run Code Online (Sandbox Code Playgroud)
当然,您必须将工作人员名称和超时更改为您自己的值
基本上,YAML 中用于 Celery 活性和就绪性探针的配置文件可以按照 Kubernetes文档中所述的通用方式进行设置。您可以根据您的要求专门针对 Celery pod 进行调整,例如:
livenessProbe:
exec:
# bash is needed to replace the environment variable
command: [
"bash",
"-c",
"celery inspect ping -A apps -d celery@$HOSTNAME"
]
initialDelaySeconds: 30
periodSeconds: 60
timeoutSeconds: 10
Run Code Online (Sandbox Code Playgroud)
关于此问题仍然存在持续的 GitHub 问题 -此处描述了可能对您的设置有用的其他解决方案。
归档时间: |
|
查看次数: |
5789 次 |
最近记录: |