kubernetes检查pod是否失败

aelbi1ox  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(421)

**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

两年前关门了。
改进这个问题
在我的基于kubernetes的集群中,我很少有基于java的、停靠的微服务,它们相互连接,因此每个微服务都从彼此发送和接收一些信息。我有kafka/zookeeper集群,它再次连接到这个微服务。我需要一些程序,比如当我重新启动活动Kafka吊舱时,另一个微服务应该理解它并重新启动自己。怎么做?请举一些yml的例子。

puruo6ea

puruo6ea1#

你的工作没有库伯内特的本土方式。但是您可以让应用程序重新启动容器。
您可以从containers的livenessprobe获得帮助。
kubernetes提供livenessprobe来检测应用程序是否处于活动状态。如果容器失败,liveness探测器实际上会尝试重新启动它。

spec:
  containers:
  - name: liveness
    image: <image>
    livenessProbe:
      httpGet: # make an HTTP request
        port: 8080 # port to use
        path: /live # endpoint to hit
        scheme: HTTP # or HTTPS
      initialDelaySeconds: 3
      periodSeconds: 3
      failureThreshold: 1

现在,当需要重新启动时,使应用程序返回200以外的值。
如果你能从你的微服务中识别出你的Kafka吊舱被重新启动了,那么你返回的状态码不是200 /live http调用。
如果你想直接打Kafka服务 liveness 探测,在下面添加以下内容 httpGet ```
httpGet:
httpHeaders:

  • name: Host
    value: kafka-svc
现在,您的应用程序将调用 `kafka-svc.svc:8080/live` 第二种方式:
您可以编写一个应用程序,它将使用kubernetes watch api监视您的kafka pods,如果在kafka pods中发现任何重新启动,那么您可以根据需要重新启动所有依赖的pods。

相关问题