Как стать автором
Обновить

Комментарии 6

После долгих экспериментов мы остановились на ngnix unit вместо php-fpm в контейнерах.

Мы тоже его в своё время рассматривали, но переезд на него посчитали слишком дорогим для легаси

Спасибо за статью. Тоже приходилось решать похожую задачу. Единственное, специально отключил динамические пулы в fpm: не думаю что они полезны в подах. Если вы определяете limits/requets ресурсов по памяти, то помоем лучше сразу ставить столько, сколько влезает в под. Постольку fpm не шарит ресурсы с другими, как в случае настоящего сервера, то и смысла расти а потом сжиматься динамически особо нет. Плюс мониторинг проще.

p.s. Интересно было бы еще добавить подтему мониторинга: на какие метрики и для чего смотрите а первую очередь.

Наша задача была ещё и в том, чтобы мгновенно реагировать на выбросы, при этом не съедая много ресурсов. В этом ключе, лучшим решением было использовать динамические пулы, поскольку старт подов по автоскейлеру слишком тяжёлый по времени

Расскажите, пожалуйста, как вы прикрутили мониторинг/сбор метрик для prometheus к php-fpm подам? Мне сейчас предстоит такая задача, я не программист на php и немного теряюсь в инструментах. Пока нашел вариант через sidecontainer, где-то в документации к prometheus, но смущает, что ссылка ведет на гитхаб репу, которая обновлялась очень давно

Я у себя на проекте делал через sidecontainer, на основе этих метрик так же работает hpa, при утилизации php-fpm процессов и большом увеличении запросов записи nginx "sum(avg_over_time(nginx_connections_writing{<<.LabelMatchers>>}[15s])-avg_over_time(nginx_connections_waiting{<<.LabelMatchers>>}[15s]))" , в результате трех метри CPU, PHP-FPM и NGINX который также сайдкаром работает происходит скалирование контенеров, php-fpm static использует пулл

{{ if .Values.metricsNginx.enabled }} - image: nginx/nginx-prometheus-exporter:0.11.0 imagePullPolicy: IfNotPresent name: exporter-nginx command: - "/usr/bin/nginx-prometheus-exporter" ports: - name: metrics-nginx containerPort: 9113 protocol: TCP resources: requests: cpu: 10m memory: 12Mi limits: cpu: 50m # memory: 1Gi args: - "-nginx.scrape-uri" - "http://127.0.0.1:81/nginx_status" {{- end }} {{- end }} {{ if .Values.metricsPhpfpm.enabled }} - image: hipages/php-fpm_exporter:2.2.0 imagePullPolicy: IfNotPresent name: php-fpm-exporter env: - name: PHP_FPM_SCRAPE_URI value: tcp://127.0.0.1:9000/status - name: PHP_FPM_WEB_LISTEN_ADDRESS value: ":9253" - name: PHP_FPM_FIX_PROCESS_COUNT value: "true" ports: - name: metrics-php containerPort: 9253 protocol: TCP resources: limits: cpu: 40m # memory: 32Mi requests: cpu: 40m memory: 32Mi {{- end }}

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.