kubernetes — php-fpm контейнер livenessProbe с / ping маршрутом

В последнее время у нас возникли некоторые проблемы с процессами php-fpm, вышедшими из-под контроля и приведшими к тому, что сайт перестал отвечать на запросы. Есть некоторые очевидные инструменты настройки php-fpm, которые нужно сделать, но я также хотел бы реализовать разумную проверку работоспособности livenessProbe для контейнера php-fpm, который будет перезапускать контейнер при сбое зонда.

Я выкопал несколько ресурсов на как пинговать сервер как проверку работоспособности (например, https://easyengine.io/tutorials/php/fpm-status-page/), но мне еще предстоит найти хороший ответ о том, что нужно искать. Будет ли маршрут / ping возвращать что-то кроме «pong», если сервер фактически мертв? Это просто время ожидания? Предполагая последнее, каков разумный лимит времени ожидания?

Запустив несколько собственных тестов, я заметил, что исправный сервер php-fpm быстро выдаст ответ «pong»:

# time curl localhost/ping
pong
real    0m0.040s
user    0m0.006s
sys 0m0.001s

Я смоделировал тяжелую нагрузку, и на ответ «понг» потребовалось 1-3 секунды, и это совпало с тем, что сайт перестал отвечать. Исходя из этого, я составил черновой вариант livenessProbe, который завершится ошибкой, и перезапустите контейнер, если сценарий проверки жизнеспособности займет более 2 секунд на 2 последовательных проверках:

livenessProbe:
exec:
command:
- sh
- -c
- timeout 2 /var/www/livenessprobe.sh
initialDelaySeconds: 15
periodSeconds: 3
successThreshold: 1
failureThreshold: 2

И сценарий исследования просто так (Есть причины, по которым это должен быть сценарий оболочки, а не прямой httpGet из livenessProbe, в который я не буду входить):

  #!/bin/bash

curl -s localhost/ping

Теперь я не знаю, слишком ли я агрессивен или слишком консервативен. Я проведу канареечное развертывание, чтобы проверить это, но в то же время я хотел бы получить отзывы от других, которые внедрили проверки работоспособности на серверах php-fpm, бонусные баллы, если это в контексте Kubernetes.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]