小编She*_*Liu的帖子

即使 Kubernetes 就绪性探测失败,Pod 也会收到流量

我有一个应用程序,它负责 REST 请求,并且正在侦听 Kafka 主题。我将应用程序部署到 Kubernetes 并像这样配置就绪探针

readinessProbe:
  exec:
    command:
    - cat
    - /tmp/healthy
  initialDelaySeconds: 5
  periodSeconds: 5
Run Code Online (Sandbox Code Playgroud)

基本上遵循[configure-liveness-readiness-startup-probes]的说明

部署完成后,我可以看到 pod readiness 探测失败

Readiness probe failed: cat: can't open '/tmp/healthy': No such file or directory
Run Code Online (Sandbox Code Playgroud)

这是预期的。然后我向该主题发送了一条kafka消息。我观察到

1)kafka消息已被我的应用程序使用并保存到数据库。
2)其余api无法访问。

我假设如果 pod 的就绪探针失败,应用程序既无法接收 kafka 消息,也无法接收其余请求。但为什么在我的测试中,REST请求和Kafka消息的处理方式不同。

根据 Kubernetes 文档:

The kubelet uses readiness probes to know when a Container is ready to start accepting traffic
Run Code Online (Sandbox Code Playgroud)

但它并没有明确说明它真正意味着什么样的流量。如果就绪探测失败,kubernetes 是否仅限制到 pod 的 http 流量,但不限制 tcp 流量(因为 Kafka 通过 tcp 工作)?

我的实际意图是让我的服务应用程序(kafka 消费者)能够控制何时接收 kafka 消息(以及 REST …

apache-kafka kubernetes readinessprobe

5
推荐指数
1
解决办法
1896
查看次数

标签 统计

apache-kafka ×1

kubernetes ×1

readinessprobe ×1