首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >k8s - livenessProbe对readinessProbe

k8s - livenessProbe对readinessProbe
EN

Stack Overflow用户
提问于 2019-03-29 18:16:14
回答 8查看 23.7K关注 0票数 49

考虑一个通过端口80的http端点/health进行健康检查设置的pod,它需要将近60秒的时间才能真正准备就绪&为流量服务。

代码语言:javascript
复制
readinessProbe:
  httpGet:
    path: /health
    port: 80
  initialDelaySeconds: 60
livenessProbe:
  httpGet:
    path: /health
    port: 80

问题:

  • 对于给定的需求,我的上述配置是否正确?
  • 活性探针是在吊舱准备好后才开始工作吗?换句话说,我假设在POD准备就绪之后,就绪探测任务就完成了。在那之后,livenessProbe负责健康检查。在这种情况下,我可以忽略initialDelaySeconds for livenessProbe。如果它们是独立的,那么当吊舱本身还没有准备好的时候,做livenessProbe检查有什么意义呢?
  • 看看这个文档。它们是什么意思?

如果您希望容器能够进行维护,您可以指定一个就绪探测,它检查与活动探测不同的特定于就绪状态的端点。

我假设,只有当livenessProbe失败时,运行的吊舱才会自毁。不是readinessProbe。医生说的是另外一种方式。

澄清!

EN

回答 8

Stack Overflow用户

发布于 2020-02-08 12:53:05

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

活性探针是在吊舱准备好后才开始工作吗?换句话说,我假设在POD准备就绪之后,就绪探测任务就完成了。在那之后,livenessProbe负责健康检查。

我们最初的理解是,在就绪探针成功后,活性探针将开始检查,但是,它最终不是那样的。它已经为这个challenge.Yon可以查找这里打开了一个问题。然后通过添加启动探针。解决了这个问题。

总括而言:

  • livenessProbe

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

  • readinessProbe

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

  • startupProbe

startupProbe:指示容器中的应用程序是否已启动。如果提供了启动探测,则将禁用所有其他探测,直到它成功。如果启动探测失败,将杀死容器,容器将受其重新启动策略的影响。如果容器没有提供启动探测,则the default state is Success

查一下这里

票数 40
EN

Stack Overflow用户

发布于 2019-03-29 20:11:17

活性探针用于检查容器是否已启动并处于活动状态。如果不是这样,kubernetes最终将重新启动容器。

就绪探测反过来也会检查依赖项,比如数据库连接或容器所依赖的其他服务来完成它的工作。作为一名开发人员,您必须在实现上投入更多的时间,而不仅仅是为了进行活性探测。您必须公开一个端点,该端点在查询时也会检查所述的依赖项。

当前的配置使用一个健康端点,该端点通常由活性探针使用。它可能不会检查您的服务是否真的可以接受流量。

库伯奈特斯依靠战备探测器。在滚动更新期间,它将保持旧容器的正常运行,直到新服务声明它已准备好接收流量。因此,准备探测必须正确地执行。

票数 32
EN

Stack Overflow用户

发布于 2021-12-23 09:13:27

我将用几个简单的点来说明它们之间的区别:

livenessProbe

代码语言:javascript
复制
 livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 3
      periodSeconds: 3
  • 它用于指示容器是否已启动,是否处于活动状态,即可用的证据。
  • 在给定的示例中,如果请求失败,它将重新启动容器。
  • 如果未提供,则默认状态为“成功”。

readinessProbe

代码语言:javascript
复制
 readinessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 3
      periodSeconds: 3
  • 它用于指示容器是否已准备好为可使用的通信量服务或不服务于i.e.proof。
  • 它检查依赖项,如数据库连接或容器所依赖的其他服务,以完成其工作。
  • 在给定的示例中,在请求返回成功之前,它不会提供任何通信量(通过从与Pod匹配的所有服务的端点中移除Pod的IP地址)。
  • Kubernetes在滚动更新过程中依赖于就绪探测,它使旧容器保持正常运行,直到新服务声明它已准备好接收流量。
  • 如果未提供,则默认状态为“成功”。

摘要

活动探测:用于检查容器是否可用并处于活动状态。

就绪探测:用于检查应用程序是否可以使用并为流量服务。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55423405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档