问题标签 [livenessprobe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
124 浏览

kubernetes - Pod 什么时候被销毁?

Pod 生命周期由 Kubelet 在数据平面进行管理。

根据定义:如果 liveness probe 失败,kubelet 会杀死容器

Pod 只是一个带有专用网络命名空间和 IPC 命名空间的容器,带有一个沙盒容器。


比如说,如果 Pod 是单个应用容器 Pod,那么在 liveness 失败时:

  • kubelet 会杀死 Pod 吗?

或者

  • kubelet 是否会(仅)杀死 Pod 中的容器?
0 投票
2 回答
89 浏览

kubernetes - Kubernetes - 如何在容器的 livenessProbe 中读取响应体?

以下是 livenessProbe 的当前配置:


但是 URL 的响应正文.well-known/heartbeat显示status: "DOWN"并且 http 返回状态为 200

因此,由于 http 响应状态为 200,Kubelet 不会重新启动容器


如何确保 Kubelet 读取响应正文而不是 http 返回状态?使用livenessProbe配置

0 投票
3 回答
787 浏览

kubernetes - kubernetes liveness probe exec 命令环境变量在 if 语句中不起作用

我很难让 kubernetes livenessProbe exec 命令与环境变量一起工作。我的目标是让 liveness 探针监控 pod 上的内存使用情况以及执行 httpGet 健康检查。

“如果容器内存使用量超过资源限制的 90% 或 http 响应代码/health失败,则探测应该失败。”

liveness探针配置如下:

如果我执行到(ubuntu)pod 并运行这些命令,它们都可以正常工作并完成工作。

但是当部署为 livenessProbe 时,pod 会不断失败,并显示以下警告:

看起来好像探测内存和 curl 运行状况检查端点的初始命令都有效并填充了环境变量,但是这些变量替换随后没有填充到 if 语句中,因此探测永远不会通过。

知道为什么吗?或者如何将其配置为正常工作?我知道这有点令人费解。提前致谢。

0 投票
1 回答
107 浏览

kubernetes - Kubernetes postStart hook 导致竞态条件

我在 Kubernetes 上使用带有postStart钩子的 MySQL,它应该在数据库启动后运行查询。

这是我的相关部分template.yaml

当 pod 启动时,数据库的 PVC 被损坏并且 pod 崩溃。当我重新启动 pod 时,它可以工作。我猜查询会在数据库尚未启动时运行。我想这可能会通过 readinessprobe 解决,但我不是这些主题的专家。

有没有其他人遇到过类似的问题并知道如何解决?

0 投票
1 回答
57 浏览

kubernetes - 容器重启后跳过 Kubernetes 启动探测

在 Kubernetes v1.20 上运行

我配置了一个启动探针和一个活性探针。在容器第一次启动时,将执行启动探针,直到活性探针接管(如文档所述)。但是,如果 liveness 探测失败并且容器重新启动,则似乎不会再次执行启动探测。这是预期的行为吗?我在任何地方都找不到这个记录。

为了重现此问题,我正在运行以下容器定义(仅相关部分):

因此,如果 liveness 探针运行,它会创建 /tmp/liveness。如果启动探测运行,它会创建 /tmp/startup。您可以通过删除 /tmp/alive 来模拟活动检查失败。

首次启动时:

之后rm /tmp/alive,活性检查失败并重新启动容器。然后,在新容器中:

所以似乎启动探测不再执行。

0 投票
1 回答
313 浏览

kubernetes - 当 Kubernetes liveness-probe 返回 false 时会发生什么?

当 Kubernetesliveness-probe返回 false 时会发生什么?Kubernetes 是否会立即重启该 pod?

0 投票
0 回答
50 浏览

kubernetes - 添加资源后 Pod 经常重启

添加资源后 Pod 经常重启。

在此之前没有添加资源。吊舱根本不会重新启动,或者它可能每天只发生一次或两次。

我不确定资源是否会影响健康检查,因此 pod 会经常重启。

以下是描述所有 testservice pod 的结果。

  1. testservice-dpm-d7979cc69-rwxr4(在 10 分钟内重新启动 7 次,并且现在仍然回退重新启动失败的容器)
  1. testservice-dpm-d7979cc69-7nq28(10分钟内重启4次,现在运行)
  1. testservice-dpm-d7979cc69-z566c(10 分钟内不重启,现在正在运行)
0 投票
0 回答
40 浏览

kubernetes - 有没有办法限制pod的重启次数?

我已经在我的 kubernetes 部署文件中实现了 liveness probe。截至目前,它尝试无限次重启。有没有办法限制这个重启尝试的次数?

0 投票
1 回答
74 浏览

kubernetes - 如何替换或找到 kustomize 的正确路径

我有部署,我想替换活动探测部分中的“路径”值。kustomize 中的正确路径是什么?


0 投票
3 回答
69 浏览

kubernetes - K8S - livenessProbe - 如果另一个 pod 未准备好/工作(MySql),则重新启动 pod

新年快乐,我有 2 个部署,MySQL 和应用程序,我的应用程序依赖于 MySQL pod,我有 initContainers 确保应用程序在 MySQL pod 完全应用程序并准备好之后运行,但我正在尝试制作下一个场景工作。

我希望应用程序 pod 检查 MySQL pod,如果端口 3306 不可用,那么应用程序 pod 本身将重新启动,这将一直发生,直到 MySQL pod 完全准备好。

我在应用程序部署/吊舱中使用它

但不是“???”我不知道我需要写什么,因为,我知道我不能写他们的DNS名称,我被告知livenessProbe不适用于DNS,所以我尝试输入这个IP ENV 的地址,但仍然无法正常工作。

我怎样才能做到这一点 ?

SQL 部署 yaml:

应用程序部署 yaml

$MYSQL_CLUSTERIP_SERVICE_HOST - 这是 ENV(它对我不起作用)。

那么如果 pod mysql 未准备好,我该如何重新启动 pod 应用程序?