【问题标题】:Proper Usage of Kubernetes Probes正确使用 Kubernetes 探针
【发布时间】:2023-02-16 02:16:16
【问题描述】:

TL;DR 是最后一段,但如果不够清楚的话,其余的都在这里作为上下文。

我有一个运行 PHP 应用程序的 K8s pod。它分为一个 FPM 容器和一个 Nginx 容器。设置活性和就绪检查以检查容器进程。所以对于 Nginx,这仅仅意味着“端口 443 正在应答”,而对于 FPM 这意味着“TCP 9000 正在应答吗?”。

我们已经在 PHP 应用程序的 /readiness/liveness 端点处准备好了更多智能探测器,但是这些探测器应该放在哪里呢?

当 pod 在单个容器中同时运行 Nginx 和 FPM 时,这是显而易见的,因为由于 liveness 探测失败而重启单个容器是有意义的。对于 FPM 容器,我认为将其探测类型从 httpGet 更改为 command 可能是正确的做法,因为您随后可以运行检查应用程序状态的命令。不过,感觉有些不对劲(主要是你不再检查主进程了)。

我大概能弄清楚你在哪里检查服务通过FPM,但是我想问的是:

当你有一个带有 FPM 容器的 pod 时,readiness 和 liveness 探针的正确用法是什么?我应该询问应用程序本身是否感觉还好,还是应该从 FPM 获取所有信息来做出决定?

【问题讨论】:

标签: kubernetes fpm readinessprobe livenessprobe


【解决方案1】:

您需要同时询问 FPM 和应用程序。这些探测不是针对 pod,它们是为每个容器独立配置的。 (虽然单个容器的 readiness 探测失败会使整个 pod 失去流量,但 readiness 探测仍然是针对每个容器的)

【讨论】:

猜你喜欢
  • 2020-12-13
  • 2019-07-22
  • 2021-05-24
  • 2021-08-15
  • 2018-02-11
  • 1970-01-01
  • 2021-12-27
  • 2019-05-18
  • 2021-08-02
相关资源
最近更新 更多