K8S准备好探针可以控制Kafka消耗吗?

2w2cym1i  于 2023-01-08  发布在  Apache
关注(0)|答案(2)|浏览(201)

我需要Kafka的消费消息。应用程序部署在k8s pod中。如果我创建一些准备探测器来检查预初始化步骤是否完成,k8s是否能够控制消费在那之后开始消费?
我知道准备探测器可以帮助控制在pod启动之前将外部请求分配到pod。但不确定它是否能够控制从pod发起的请求。

bvhaajcl

bvhaajcl1#

Kubernetes使用活动探测器和就绪探测器来确定Pod是否运行正常。如果活动探测器失败,Kubernetes将终止容器,并在相应设置了重新启动策略的情况下自动重新启动容器。如果就绪探测器失败,Kubernetes将从服务请求中删除Pod。但是,这并不一定意味着Kafka已经准备好使用消息。kafka不能使用消息,直到broker是unfenced。我建议您手动处理这个问题。

jdg4fx2g

jdg4fx2g2#

您先前标记了spring-kafka
您可以通过Actuator定义一个自定义的健康检查,Actuator使用Kafka AdminClient来确定Kafka集群/主题的健康状况,然后k8s将探测HTTP健康端点,以确定是否重新启动任何不健康的pod。
但这与Kafka消费者的运行时执行无关,您需要在启动任何消费者线程之前显式地检查连接/健康状况。
另外,还有许多集成了Kafka的无服务器k8工具,如Knative,它们也提供了消费者功能

相关问题