当前位置: 首页 > 知识库问答 >
问题:

Kubernetes活跃度和就绪度探测器的正确实现

罗渝
2023-03-14

给出一个Python应用程序,它在无限循环中轮询Kafka主题,并在处理接收到的Kafka消息后将结果上传到s3 bucket。

    null

并且活性探测只检查轮询循环是否尚未退出。

严格来说,在准备调查中检查这样的事情是不好的做法吗?

共有1个答案

颜哲彦
2023-03-14

我不会在Kubernetes探测器上检查这些东西。让您的应用程序自行启动检查它们,如果环境不合适,请立即退出。您的pod将显示为CrashLoopBackOff状态,它将重新启动几次,但很明显是出了问题。

在应用程序运行时,这些事情可能会失败,但您应该能够注意到这一点。例如,像Prometheus这样的度量系统可以帮助您注意到大多数S3请求是否失败。如果可以检查Kafka侦听器主循环是否退出,也可以重新启动它。

 类似资料:
  • 我可以找到文件,其中提到我如何添加我的自定义探针和改变探针参数,如初始延迟等,但不能找到默认的探针方法使用的K8S。

  • 我正在OpenShift Pod中运行Spring Boot2.0.0应用程序。为了执行就绪和活性探测,我依赖于Spring引导执行器健康检查。我的应用程序属性文件具有以下属性: 遵循就绪和活性探测器的相关配置。 我的期望是,我的准备和活跃度探测应该失败的这些随机URL,但他们是成功的。不知道我错过了什么。好心的帮助。

  • 对于liveness,我认为它可能会开始循环使用POD/容器,尽管(在DB关闭的情况下)它可能无法修复任何东西。 准备就绪后,我想如果数据库关闭,可能会导致可用应用程序池为0。如果数据库关闭,应用程序本身很可能不会很有用,但我想部分可能仍然可以工作。 对于这种类型的事情,有推荐的最佳实践吗?

  • 我正在使用Spring开发一个服务,并将其部署在OpenShift上。目前,我正在使用Spring Actuctor health endpoint作为Kubernetes的活跃度和就绪度探测器。 但是,我将在执行器健康endpoint中添加一个对另一个服务的调用,在这种情况下,我认为我需要为我的服务实现新的活跃度探测。如果我不这样做,那么第二个服务的失败将导致活跃度探测失败,Kubernetes

  • 为了简单起见,我认为在kubernetes中最好只检查TCP端口的活跃度和就绪度,因为它不需要了解健康检查endpoint(HTTP路径),而只需要端口号。任何关于仅仅依赖TCP端口进行服务健康检查的缺点的指南都非常赞赏,请假设POD不是其他服务的代理,并且所有业务逻辑都在POD本身中。 https://kubernetes.io/docs/tasks/configure-pod-containe

  • 我有一个简单的问题,但我找不出正确的答案。 我能怎么做吗?或者是一个很好的答案,可以解释活跃度和就绪度检查python是否正在运行。 多谢!