Как настроить датчики активности и готовности для рабочих стручков Celery
Я хочу установить датчики liveness и readiness для рабочих стручков Celery. Поскольку у этих рабочих подсистем нет определенного порта, связанного с ними, я нахожу это сложным. Основное приложение Django на сервере nginx было проще настроить.
Я очень новичок в k8s, поэтому не очень хорошо знаком с различными способами его выполнения.
зонд прочности для рабочего сельдерея: Эта команда работает только при включенном удаленном управлении.
$ celery inspect ping -d <worker_name> --timeout=<timeout_time>
Когда рабочий celery использует одиночный пул, healthcheck ожидает завершения задания. В этом случае необходимо увеличить таймаут ожидания ответа.
В основном, конфигурационные файлы в YAML для Celery liveness и readiness probes можно настроить в общем виде, как описано в Kubernetes docs. Вы можете специально настроить их для Celery pods, исходя из ваших требований, например:
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
В настоящее время на GitHub продолжается работа над этим вопросом - другие решения, которые могут быть полезны для вашей установки, описаны здесь.