簡體   English   中英

帶有 /ping 路由的 php-fpm 容器 livenessProbe

[英]php-fpm container livenessProbe with /ping route

最近我們遇到了一些問題,我們的 php-fpm 進程失控並導致站點無響應。 有一些明顯的 php-fpm 配置工具需要完成,但我還想為 php-fpm 容器實現合理的 livenessProbe 健康檢查,當探測失敗時,它將重新啟動容器。

我已經挖掘了一些關於如何ping 服務器作為健康檢查的資源(例如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 的草稿,如果 liveness 探針腳本在 2 個連續的探針上花費的時間超過 2 秒,它將失敗並重新啟動容器:

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

探針腳本就是這樣(有一些原因,為什么這需要是一個 shell 腳本,而不是來自 livenessProbe 的直接 httpGet,我不會進入):

  #!/bin/bash

  curl -s localhost/ping

現在我不知道是我太激進還是太保守了。 我將運行金絲雀部署來測試這一點,但與此同時,我想從其他人那里獲得一些反饋,這些人在 php-fpm 服務器上實施了健康檢查,如果它在 Kubernetes 上下文中,則可以獲得獎勵積分。

如果有人仍然對這個話題感興趣。 我正在研究類似的事情(php-fpm 監控與在 kubernetes 中運行的 pod 相結合)。

我將以下運行狀況檢查設置https://github.com/renatomefi/php-fpm-healthcheck 添加到我的容器(運行 php-fpm 的容器)中,以檢查 php-fpm 是否運行良好:) 工作起來非常簡單且完成工作(當某些值超出預定義的限制時,將容器標記為“壞”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM