Как настроить датчики активности и готовности для рабочих стручков 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 продолжается работа над этим вопросом - другие решения, которые могут быть полезны для вашей установки, описаны здесь.

Вернуться на верх