k8s - livenessProbe 与 readinessProbe

2023-12-25

考虑一个通过 http 端点进行健康检查设置的 pod/health在端口 80 上,需要近 60 秒才能真正准备好并为流量提供服务。

readinessProbe:
  httpGet:
    path: /health
    port: 80
  initialDelaySeconds: 60
livenessProbe:
  httpGet:
    path: /health
    port: 80

问题:

  • 我的上述配置对于给定的要求是否正确?
  • Liveness Probe 是否只有在 Pod 准备就绪后才开始工作?换句话说,我假设一旦 POD 准备就绪,就绪探测作业就完成了。之后 livenessProbe 负责健康检查。在这种情况下,我可以忽略initialDelaySeconds用于 livenessProbe。如果它们是独立的,当 pod 本身还没有准备好时,进行 livenessProbe 检查有什么意义! ?
  • 检查这个文档 https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/。他们的意思是什么

如果您希望您的容器能够自行关闭 维护,您可以指定检查端点的就绪探针 特定于与活性探针不同的就绪性。

我假设,只有当 livenessProbe 失败时,正在运行的 Pod 才会自行关闭。不是 readinessProbe。医生说的是另一种方式。

Clarify!


我从第二个问题回答。第二个问题是:

Does 活性探针仅在 Pod 准备就绪后才开始工作? 换句话说,我假设一旦 POD 就绪探测作业就完成了 准备好了。之后 livenessProbe 负责健康检查。

我们最初的理解是,活性探针将在就绪探针成功后开始检查,但是事实并非如此。它为此挑战提出了一个问题。您可以查看here https://github.com/kubernetes/kubernetes/issues/27114。然后通过添加解决了这个问题启动探针。 https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190221-livenessprobe-holdoff.md

总结:

  • 活性探针

活性探针:指示容器是否正在运行。如果 活性探测失败,kubelet 杀死 Container,并且 容器受其重启策略的约束。如果容器没有 提供活性探针,the default state is Success.

  • 准备状态探测

准备情况探针:指示容器是否准备好服务请求。如果就绪探测失败,端点控制器会从与 Pod 匹配的所有服务的端点中删除 Pod 的 IP 地址。初始延迟之前的默认就绪状态是“失败”。如果容器不提供就绪探针,the default state is Success.

  • 启动探针

启动探针:表示Container内的应用程序是否启动。如果提供了启动探针,则所有其他探针都将被禁用,直到成功为止。如果启动探测失败,kubelet 会杀死 Container,并且 Container 会遵循其重启策略。如果容器不提供启动探针,the default state is Success

look up here https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s - livenessProbe 与 readinessProbe 的相关文章

随机推荐

  • 我需要从 serviceworker 中访问本地存储或 cookie

    我希望在推送事件之后进行 fetch 调用 通过内部 api 获取 notif 数据 其中包含用户特定的参数 这些参数存储在本地存储或 cookie 中 例如用户类型或国家 地区 ID 我该怎么做 您无法在 Service Worker 中
  • 设置 mex 以使用 Visual Studio 2010 编译器

    我安装了 Visual Studio 2010 但是 MATLAB 找不到编译器 gt gt mex setup Please choose your compiler for building external interface MEX
  • 沿着 d3 中的路径拖动

    使用 d3 和 React 我绘制了一条路径 在这条路径上 我有多个圆圈 只能沿着该路径拖动 然而 我当前的实现仅 在某种程度上 在该路径上有一个圆圈时才有效 在 DragStart 上 无论位置如何 它都会在路径上移动到长度 0 并且每当
  • 仅显示 x 轴图的第一个和最后一个刻度标签

    我正在解析日志文件并创建一个绘图 我不需要 X 轴上的所有标签 我只想显示第一个和最后一个或其中的几个 并带有特定的步骤 假设每 100 个 我怎样才能做到这一点 我只能显示第一个或最后一个 但不能同时显示两者 My code import
  • PHP 的日期和时间助手(如 Java 中的 Joda-Time)[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个类似的库 开源 乔达时间 http www joda org joda time 在Ja
  • 在 CMake 中混合 C 和 C++,什么是 CMakeCCompilerId.c 以及如何丢弃它

    我有一个混合 C 和 C 的简单项目 将 C 库包装到 C 类中并使其易于在 C 项目中使用 该项目是使用 VisualStudio 构建的 我在 Linux 或 Mac 下 所以我想将其转换为 CMake 项目 VS项目内容满满的
  • 在可扩展列表中以编程方式扩展组行

    我正在使用可扩展列表视图 当单击里面的图像时 我是否可以展开组行 我知道要让图像响应点击 我必须设置其焦点 现在 一旦此图像响应单击 在我的客户适配器内 我如何以编程方式展开 折叠它所属的特定组行 谢谢 在适配器中 private OnIt
  • Windows ssh - 如何在断开连接后保持进程运行

    我想通过 SSH PHP 脚本 启动 java 进程 Minecraft 服务器 并且在断开连接时不应将其关闭 我正在使用适用于 Windows 和 64 位 Java 的 Bitvise SSH 服务器 我可以启动服务器 但如果我与 ss
  • 如何在 Firefox Mobile (Fennec) 扩展的内容脚本中使用 jQuery?

    我正在开发 Firefox Mobile Fennec 扩展 我想在内容脚本中使用 jQuery 最好的方法是什么 我正在桌面版 Firefox Mobile 4 上进行测试 覆盖 js window addEventListener lo
  • 合并两个数组而不使用额外空间

    我有 2 个已排序的数组 a1 and a2 长度l1 and l2 分别 数组a2长度末尾有空格l1 所以它可以容纳所有元素a1除了它本身的元素之外 现在我想合并a1 into a2以便a2将包含以下所有元素a1 and a2按排序顺序
  • 命令行 Jasypt 客户端加密“无法操作”

    我正在使用 Jasypt 以非明文格式将数据库密码存储在休眠配置文件中 例如代替
  • C++ 模板和 ODR 规则

    为什么以下工作在C 我想ODR规则将出现在以下代码中 typedef char int8 class Sample public template
  • 当用户创建挂载点时如何收到通知?

    首先 这是限制 必须在XP上运行 必须通知驱动器盘符分配以及将卷安装到文件夹 如果驱动器正在睡眠 则不得 唤醒 该驱动器 我真的不想轮询驱动器 我尝试过的 Google 我查看了 WMI 和 Win32 LogicalDisk 类 我可以确
  • Linux 上的 Docker - 清空已安装的卷

    我正在尝试让我的 docker 设置在我的 Linux 机器上运行 它在 OSX 上运行良好 我一生都无法将卷正确安装到 Linux 机器上 我使用的是 Elementary OS 0 4 Loki 64 位 码头工人版本 Client V
  • 如何在 OpenCV 中校正裁剪后的立体图像?

    我有一对水平对齐的立体相机 它们是使用图像的全尺寸进行校准的 我通过调用 cv2 initUn DistorifyMap 来获取每个摄像机的地图进行纠正 然后调用 cv2 remap 使用全尺寸图像时 如下所示 map1 map2 cv2
  • 如何在select2框架中使用占位符作为默认值

    获得a的选定值select2我在用着 var x select select2 data var select choice x text 问题是 如果未选择值 则会引发错误 我想知道如果未选择任何选项 是否有任何方法使其返回占位符 您必须
  • 使用 Mathnet 数字库进行 Svd 重组似乎是错误的

    我正在寻找 Mathnet Iridium 和 Mathnet Numerics 之间的非回归 这是我的代码 使用 Mathnet Numerics double symJaggedArray new double 5 symJaggedA
  • Java方法性能中使用final关键字? [复制]

    这个问题在这里已经有答案了 是否使用final在方法参数中允许编译器或运行时环境更快地工作 例如 如果您有一个变量要传递给一个您知道不会被修改并按原样使用的方法 那么声明它是否更有效final 例子 第一种方法应该比第二种方法更快 publ
  • javascript 函数返回不起作用

    我在函数中返回变量时遇到问题 以下脚本工作正常 function sessionStatus document ready function getJSON scriptRoot sessionStatus php function sta
  • k8s - livenessProbe 与 readinessProbe

    考虑一个通过 http 端点进行健康检查设置的 pod health在端口 80 上 需要近 60 秒才能真正准备好并为流量提供服务 readinessProbe httpGet path health port 80 initialDel