问题标签 [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.
kubernetes - 如何为 /health 创建一个新的接受者线程池
我想使用 /health 进行活跃度和就绪度探测。我想为 dropwizard 应用程序中的连接创建一个不同的线程池。
另外,我想了解如果我使用管理端口而不是 /health 的服务端口,行为会如何。
kubernetes - 如何设置适合我的应用程序的就绪和活跃度探测值?想避免为http探针编写代码
我有一个应用程序在开始之前建立 SSE 流连接,大约需要 15 分钟。开始。然后它处于活动状态并打印日志 2-3 分钟,然后闲置约 5 分钟。此日志模式重复。
问题:由于 tcp 套接字连接问题,正在重新启动 pod。我尝试在配置中提供增加的值,这有助于解决 24 小时内 pod 频繁重启的问题,但我不希望它在我的应用程序启动并运行时重启。为什么会重启?为什么发现 pod 不稳定?
kubectl describe pod
-
kubernetes - 滚动部署中是否使用了就绪探针?
在下面的 yaml 语法中:
在 Pod 的初始部署期间使用就绪探测。
为了推出新版本的应用程序,使用滚动部署策略,是否使用就绪探针进行滚动部署?
path
&port
字段允许输入特定服务的 url 和端口号,但不能输入依赖服务。如何验证,如果依赖服务也准备好了?
kubernetes - 如何在不在 Kubernetes 的集群配置中创建死锁的情况下检查准备情况?
我想部署一个具有三个副本的服务,每个副本都有一个就绪探针。只有当其他两个 pod 也启动时,一个 pod 才会开始工作(在测试就绪的端口发送数据)。所有三个 pod 都需要启动,在内部服务中注册它们的 IP,然后它们才能被发现。
在我看来,就绪探测是按顺序工作的,因此只会启动一个 pod。这造成了一种死锁情况,即启动的 pod 等待其他两个 pod 开始运行,即使它们没有启动应用程序,并且 K8s 不会启动其他两个 pod,直到第一个 pod 的就绪状态得到满足。
我的就绪配置是:
我希望我的 pod 能够启动,即使当前的 pod 正在运行但它们的准备工作并不成功。或者也许我应该使用准备以外的东西?
kubernetes - 究竟是什么意思 K8s 将在就绪探测失败时停止路由流量到 pod
我要解决的问题是 Web 应用程序的水平扩展,其中某些会话会导致 CPU 使用率过高。这个想法是使用 Readiness probe 来通知 K8s pod 已加载当前任务,并且必须将新流量发送到另一个(HPA 将完成这项工作并准备一个新 pod)。
但我希望在初始 pod 上进行处理的会话将处于活动状态,一旦工作完成,结果将交付给用户。
问题是这是否意味着如果就绪探测失败,K8s 将:
- 停止将所有流量路由到 pod,删除通过入口打开的当前会话。
- 停止将新流量路由到 pod,但当前会话将在指定的超时期间处于活动状态。
先感谢您。
kubernetes - Kubernetes postStart hook 导致竞态条件
我在 Kubernetes 上使用带有postStart
钩子的 MySQL,它应该在数据库启动后运行查询。
这是我的相关部分template.yaml
:
当 pod 启动时,数据库的 PVC 被损坏并且 pod 崩溃。当我重新启动 pod 时,它可以工作。我猜查询会在数据库尚未启动时运行。我想这可能会通过 readinessprobe 解决,但我不是这些主题的专家。
有没有其他人遇到过类似的问题并知道如何解决?
spring-boot - 数据库和容器的 pod readinessprobe 问题
我有一个部署到 Kubernetes 的应用程序。这里是技术栈: Java 11、Spring Boot 2.3.x 或 2.5.x,使用 hikari 3.x 或 4.x
使用弹簧执行器进行健康检查。这是application.yaml 中liveness
的readiness
配置:
如果 DB 出现故障,它会做什么 -
- 确保
liveness
不会受到影响——也就是说,即使数据库中断,应用程序容器也应该继续运行。 readinesss
将受到影响,以确保不允许任何流量撞击容器。
liveness
和readiness
容器规范中的配置:
我的应用程序已启动并运行了几个小时。
我做了什么:
我降低了DB。
问题通知:
当 DB 关闭时,90 多秒后,我看到另外 3 个 Pod 启动。描述 pod 时,我会看到如下状态和条件:
当我列出所有正在运行的 pod 时:
我的类比/发现:
每个ReadinessProbe
配置:periodSeconds
设置为 30 秒,failurethreshold
每个 k8s 文档默认为 3 秒。
每个 application.yamlreadiness
包括数据库检查,这意味着每 30 秒readiness
检查一次失败。当它失败 3 次时,failurethreshold
会遇到并启动新的 pod。
重启策略默认为 Always。
问题:
- 为什么它会旋转新的豆荚?
- 为什么它只旋转 3 个豆荚而不是 1 个或 2 个或 4 个或任何数量?
- 这有什么关系
restartpolicy
吗?
kubernetes - 当 kubernetes readiness-probe 返回 false 时会发生什么?要等多久?
当 Kubernetesreadiness-probe
返回 false 时会发生什么?Kubernetes 是否会在超时后重新启动该 pod?Kubernetes 等待多长时间?
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。
elasticsearch - Elasticsearch pod 在就绪探测中失败
Elasticsearch pod 未激活。
和事件是。
部署配置是