问题标签 [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 投票
0 回答
25 浏览

kubernetes - 如何为 /health 创建一个新的接受者线程池

我想使用 /health 进行活跃度和就绪度探测。我想为 dropwizard 应用程序中的连接创建一个不同的线程池。

另外,我想了解如果我使用管理端口而不是 /health 的服务端口,行为会如何。

0 投票
0 回答
66 浏览

kubernetes - 如何设置适合我的应用程序的就绪和活跃度探测值?想避免为http探针编写代码

我有一个应用程序在开始之前建立 SSE 流连接,大约需要 15 分钟。开始。然后它处于活动状态并打印日志 2-3 分钟,然后闲置约 5 分钟。此日志模式重复。

问题:由于 tcp 套接字连接问题,正在重新启动 pod。我尝试在配置中提供增加的值,这有助于解决 24 小时内 pod 频繁重启的问题,但我不希望它在我的应用程序启动并运行时重启。为什么会重启?为什么发现 pod 不稳定?

kubectl describe pod-

0 投票
1 回答
33 浏览

kubernetes - 滚动部署中是否使用了就绪探针?

在下面的 yaml 语法中:


在 Pod 的初始部署期间使用就绪探测。

  1. 为了推出新版本的应用程序,使用滚动部署策略,是否使用就绪探针进行滚动部署?

  2. path&port字段允许输入特定服务的 url 和端口号,但不能输入依赖服务。如何验证,如果依赖服务也准备好了?

0 投票
1 回答
34 浏览

kubernetes - 如何在不在 Kubernetes 的集群配置中创建死锁的情况下检查准备情况?

我想部署一个具有三个副本的服务,每个副本都有一个就绪探针。只有当其他两个 pod 也启动时,一个 pod 才会开始工作(在测试就绪的端口发送数据)。所有三个 pod 都需要启动,在内部服务中注册它们的 IP,然后它们才能被发现。

在我看来,就绪探测是按顺序工作的,因此只会启动一个 pod。这造成了一种死锁情况,即启动的 pod 等待其他两个 pod 开始运行,即使它们没有启动应用程序,并且 K8s 不会启动其他两个 pod,直到第一个 pod 的就绪状态得到满足。

我的就绪配置是:

我希望我的 pod 能够启动,即使当前的 pod 正在运行但它们的准备工作并不成功。或者也许我应该使用准备以外的东西?

0 投票
1 回答
133 浏览

kubernetes - 究竟是什么意思 K8s 将在就绪探测失败时停止路由流量到 pod

我要解决的问题是 Web 应用程序的水平扩展,其中某些会话会导致 CPU 使用率过高。这个想法是使用 Readiness probe 来通知 K8s pod 已加载当前任务,并且必须将新流量发送到另一个(HPA 将完成这项工作并准备一个新 pod)。

但我希望在初始 pod 上进行处理的会话将处于活动状态,一旦工作完成,结果将交付给用户。

问题是这是否意味着如果就绪探测失败,K8s 将:

  1. 停止将所有流量路由到 pod,删除通过入口打开的当前会话。
  2. 停止将新流量路由到 pod,但当前会话将在指定的超时期间处于活动状态。

先感谢您。

0 投票
1 回答
107 浏览

kubernetes - Kubernetes postStart hook 导致竞态条件

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

这是我的相关部分template.yaml

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

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

0 投票
2 回答
121 浏览

spring-boot - 数据库和容器的 pod readinessprobe 问题

我有一个部署到 Kubernetes 的应用程序。这里是技术栈: Java 11、Spring Boot 2.3.x 或 2.5.x,使用 hikari 3.x 或 4.x

使用弹簧执行器进行健康检查。这是application.yaml 中livenessreadiness配置:

如果 DB 出现故障,它会做什么 -

  1. 确保liveness不会受到影响——也就是说,即使数据库中断,应用程序容器也应该继续运行。
  2. readinesss将受到影响,以确保不允许任何流量撞击容器。

livenessreadiness容器规范中的配置:

我的应用程序已启动并运行了几个小时。

我做了什么:

我降低了DB。

问题通知:

当 DB 关闭时,90 多秒后,我看到另外 3 个 Pod 启动。描述 pod 时,我会看到如下状态和条件:

当我列出所有正在运行的 pod 时:

我的类比/发现:

每个ReadinessProbe配置:periodSeconds设置为 30 秒,failurethreshold每个 k8s 文档默认为 3 秒。

每个 application.yamlreadiness包括数据库检查,这意味着每 30 秒readiness检查一次失败。当它失败 3 次时,failurethreshold会遇到并启动新的 pod。

重启策略默认为 Always。

问题:

  1. 为什么它会旋转新的豆荚?
  2. 为什么它只旋转 3 个豆荚而不是 1 个或 2 个或 4 个或任何数量?
  3. 这有什么关系restartpolicy吗?
0 投票
1 回答
97 浏览

kubernetes - 当 kubernetes readiness-probe 返回 false 时会发生什么?要等多久?

当 Kubernetesreadiness-probe返回 false 时会发生什么?Kubernetes 是否会在超时后重新启动该 pod?Kubernetes 等待多长时间?

0 投票
1 回答
37 浏览

kubernetes - 我什么时候应该在 readinessProbes 中使用命令或参数

我正在通过killer.sh.for CKAD 工作。我遇到了一个 pod 定义文件,该文件在就绪探针下有一个命令字段,并且容器执行另一个命令但使用 args。

如果未使用就绪探测并且隐式创建了此 pod,则不会使用 args。

kubectl run pod6 --image=busybox:1.31.0 --dry-run=client --command -- sh -c "touch /tmp/ready && sleep 1d" > 6.yaml

输出 YAML 如下所示:

为什么 readinessProbe 和容器上都没有使用命令?命令什么时候变成args?有没有办法告诉?

我已通读此文档:https ://kubernetes.io/docs/tasks/inject-data-application/_print/ 但我仍然没有太多运气了解这种情况以及何时切换到 args。

0 投票
0 回答
95 浏览

elasticsearch - Elasticsearch pod 在就绪探测中失败

Elasticsearch pod 未激活。

和事件是。

部署配置是