【问题标题】:Kubernetes: Hit readinessProbe only onceKubernetes:只点击一次 readinessProbe
【发布时间】:2017-04-21 09:12:32
【问题描述】:

我有以下准备探测设置:

 readinessProbe:
      httpGet:
        path: /xyzapi/health
        port: 8888
      initialDelaySeconds: 30
      periodSeconds: 30
      timeoutSeconds: 30
      successThreshold: 2
      failureThreshold: 5

我希望这个就绪探测器只被击中一次。它应该会失败或仅通过一次尝试即可通过我的部署基础。

我做了一些谷歌搜索,但没有多大帮助。有 kube 专家吗?请帮忙。

【问题讨论】:

  • 听起来您的场景不需要准备就绪探针,而是需要一个 init 容器或入口点脚本?

标签: kubernetes kubernetes-health-check


【解决方案1】:

Oswin Noetzelmann 的评论恰到好处。就绪探测的目的是不断检查就绪状态。您可能仍然可以更改它,以便您的就绪检查脚本检查一次,然后缓存该结果,但这不是对就绪的惯用用法。

一次性检查的更好替代方法是:init-containers 或仅使用包装器脚本来包装主容器的实际工作并执行所需的检查。

我认为这是init-containers 的一个很好的用例。从文档中可以看出,init 容器的常见用途之一是:

它们在任何应用容器启动之前运行完成,而应用 容器并行运行,因此 Init Containers 提供了一种简单的方法 阻止或延迟应用容器的启动,直到某些集合 满足先决条件。

【讨论】:

  • 我有同样的用例。我也想要零停机时间。添加一个 init-container 是否会像准备探测一样具有零停机时间,还是会有一些停机时间?我的就绪探测使日志杂乱无章,我希望运行状况检查不将日志打印到日志到 cout。
猜你喜欢
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多