问题标签 [readinessprobe]

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 投票
1 回答
65 浏览

kubernetes - 部署模板中的 Kubernetes 探针

我有一个关于 Kubernetes Liveness/Readiness 探针配置的问题。

我有一个在netCore 3.1 中开发的应用程序,目前在生产环境(版本 1.0.0)中没有配置健康检查。我已经在第二个版本(版本 2.0.0)中实现了运行状况端点,但是如何管理 Kubernetes 部署模板文件以符合没有端点的 v1 版本?

如果我将部署配置了探针的模板,则在 v1 上运行的所有容器都将失败,因为无法访问任何端点。我想了解我是否可以维护一个与 v1(无运行状况)和 v2(运行状况)兼容的部署 yml 文件。

这里我贴一个我实际部署 yml 的例子:

server_image_version 变量可用于识别我是否必须执行健康检查。

在此先感谢,戴夫。

0 投票
2 回答
80 浏览

amazon-s3 - S3 - Kubernetes 探测

我有以下情况:

应用程序使用 S3 在 Amazon 中存储数据。应用程序在 kubernetes 中部署为 pod。有时,一些开发人员会弄乱 S3 的访问数据(例如用户/密码),并且应用程序无法连接到 S3 - 但 pod 正常启动并杀死之前工作正常的 pod 版本(因为所有就绪和活跃度探测都正常)。我想将 S3 探针添加到就绪状态 - 为了HeadBucketRequest在 S3 上执行,如果这个成功,它就能够连接到 S3。这里的问题是这些请求需要花钱,而我真的只在 pod 启动时才需要它们。

是否有与此相关的最佳实践?

0 投票
1 回答
715 浏览

mysql - Mysql Kubernetes Deployment helm chart 失败,准备就绪,liveness probe failed

我是 stackoverflow 的新手,所以如果我没有遵循提出这个问题的所有规则,请原谅。

所以,我正在使用这个 helm 图表:https ://github.com/helm/charts/tree/master/stable/mysql为我们的生产环境部署 mysql。事实上,我们在生产中运行了这个设置,但它只创建了 1 个 mysql pod,而我需要运行 3 个 pod。我尝试在 helm 图表的 values.yaml 文件中设置 replicas=3 并重新部署该图表,但它不断失败并出现一些错误,错误是:

此外,当我尝试查看mysqld袜子时,它也不见了。但我不明白为什么。由于单个 pod 部署工作正常,但 3 pod 部署会产生此错误。

也可能有一些方法可以通过明确定义袜子的路径来解决这个问题,其他 StackOverflow 答案建议像这个答案1 或这个答案2。但需要注意的是,我们通过 Jenkins 自动化了整个生产图表部署,并且没有为每个生产版本显式运行这些命令的范围。

所以,我需要知道如何解决这个问题,或者知道是什么导致了这个问题,以便我可以更改或更改我在开头提到的 helm chart 中的一些参数。还要告诉我是否无法扩展此部署,这意味着此 helm 图表不支持或不适用于多个 mysql pod。

提前致谢。

0 投票
2 回答
2047 浏览

kubernetes - 是否在就绪探测失败后重试 Pod

readinessProbe:指示容器是否准备好响应请求。如果就绪探测失败,端点控制器会从与 Pod 匹配的所有服务的端点中删除 Pod 的 IP 地址。初始延迟之前的默认就绪状态是失败。如果 Container 不提供就绪探测,则默认状态为 Success

如果就绪探测失败(并且 Pod 的 IP 地址从端点中删除),接下来会发生什么?是否会再次检查 Pod 的就绪探测条件?它会在初始延迟后再次检查吗?Pod 的 IP 地址是否有可能再次添加到端点(如果 Pod 在就绪探测失败后自我修复)?如果 Pod 痊愈了,它会再次接收流量吗?

0 投票
1 回答
1359 浏览

spring-boot - 如何使用 Spring Actuator 配置 Kubernetes 启动探针

我已经阅读了一些文档,并弄清楚了如何使用 Actuator 设置就绪和活跃端点,就像这个一样。但我无法弄清楚如何为“启动”探针设置端点。

我的应用程序 yml:

我的部署配置:

执行器似乎没有提供“启动”探测的 URL,或者换句话说,http://localhost:8080/actuator/health/startup 不起作用。我该如何设置?

0 投票
1 回答
740 浏览

kubernetes - k8s readiness and liveness probes failing even though the endpoints are working

I've got a Next.js app which has 2 simple readiness and liveness endpoints with the following implementation:

I've created the endpoints as per the api routes docs. Also, I've got a /stats basePath as per the docs here. So, the probes endpoints are at /stats/api/readiness and /stats/api/liveness.

When I build and run the app in a Docker container locally - the probe endpoints are accessible and returning 200 OK.

When I deploy the app to my k8s cluster, though, the probes fail. There's plenty of initialDelaySeconds time, so that's not the cause.

I connect to the service of the pod thru port-forward and when the pod has just started, before it fails, I can hit the endpoint and it returns 200 OK. And a bit after it starts failing as usual.

I also tried accessing the failing pod thru a healthy pod:

And the same situation - in the beginning, while the pod hasn't failed yet, I get 200 OK on the curl command. And a bit after, it start failing.

The error on the probes that I get is:

Funny experiment - I tried putting a random, non-existent endpoint for the probes, and I get the same error. Which leads me to the thought that the probes fail because it cannot access the proper endpoints?

But then again, the endpoints are accessible for a period of time before the probes start failing. So, I have literally no idea why this is happening.

Here is my k8s deployment config for the probes:

Update

used curl -v as requested from comments. The result is:

Then, ofcourse, once it starts failing, the result is:

0 投票
3 回答
1206 浏览

kubernetes - 一个 pod 中多个容器的活跃度和就绪度探测

我想知道是否有可能对 pod 中的多个容器或仅对 pod 中的一个容器应用活性和就绪探测检查。我确实尝试使用多个容器进行检查,但容器 A 的探测检查失败,并且容器 B 在 pod 中通过。

0 投票
2 回答
423 浏览

kubernetes - Kubernetes 就绪探测失败

我们正在尝试在 Kubernetes 集群中部署 PingFed。我们有文件deployment.ymlservice.yml,但是 pod 在尝试使用就绪探测错误访问服务器配置文件后抛出 CrashBackLoop 错误。我们已经尝试了将服务类型更改为修改部署和服务 YAML 文件的所有方法,但似乎没有任何效果。

这是deployment.yml文件

在此处输入图像描述

服务.yml

POD 错误

命名空间中运行的所有 pod、服务、部署

命名空间中运行的所有 pod、服务、部署

0 投票
0 回答
858 浏览

spring-boot - 就绪探针发出停止服务错误

我已将 spring boot 更新为2.5.2from 2.1.8.RELEASE。在此之前,liveness 和 readiness 探测很好。现在更新 spring boot 后,我​​更新了我的应用程序属性文件:

我已分别为某些文档添加了最后 4 行。

在本地启动项目并从浏览器检查后:

http://localhost:8090/actuator/health/liveness{"status":"UP"}

http://localhost:8090/actuator/health/readiness给出{"status":"OUT_OF_SERVICE"}的是503状态。

在我的依赖项下的pom文件中:

0 投票
0 回答
129 浏览

postgresql - 由于“root”,Postgres 的就绪探测失败

我正在尝试将非常标准的SELECT 1命令作为readiness探测命令执行。我已经看过很多关于 Postgres、root 用户和 Kubernetes 的帖子,但我仍然无法正确理解,尽管这可能是微不足道的。

POSTGRES_USER=postgres我在我的 Postgres StatefulSet 清单的配置清单中定义了 ENV 变量POSTGRES_DB=mydb

我知道我必须使用bash来执行命令,因为 ENV 变量没有被插值

以下所有命令都以FATAL失败,角色“root”

然后我执行命令以检查是否bash获取 ENV 变量-> NO

但:

成功,没有 bash 但没有 ENV 变量。

最后,直接设置值而不使用bashwith psql -U postgres -c 'SELECT 1;(without bash) 作为readiness探测命令也会失败:Postgres 已启动,但测试返回“Readiness probe failed”。

我直接用了:

有点迷茫,有什么建议吗?