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

Kubernetes活性探针

齐运诚
2023-03-14

如何为我的spring boot应用程序编写kubernetes Readision probe(启动大约需要20秒)?我试着从配置活跃度、就绪和启动探测中学习,但我不知道Kubernetes是如何将状态代码200计算为成功的

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: backend
    name: liveness-http
spec:
  containers:
  - name: liveness
    image: k8s.gcr.io/liveness
    args:
    - /server
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
        httpHeaders:
        - name: Custom-Header
          value: Awesome
      initialDelaySeconds: 3
      periodSeconds: 3

共有1个答案

桂嘉年
2023-03-14

Kubernetes kubelet将在应用程序中的/healthz路径发出http请求,并期望从该endpoint返回http状态代码200,以便探测成功。因此,您需要在rest控制器中有一个restendpoint,它将从/healthz返回200。实现它的一个简单方法是包含Spring引导致动器依赖关系,并将活性探测路径更改为/actuctor/healt/liveness。Spring Boot执行器默认带有一个rest控制器endpoint,它从/acture/healt/liveness返回200。

https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-kubernetes-probes

 类似资料:
  • 有没有一种方法可以让fluentd船LivenessProbes输出像它对普通容器在吊舱中的输出一样?

  • 我在学习Kubernetes时试图测试一个活性探针。我已经设置了一个迷你库贝,并配置了一个带有活性探针的吊舱。 测试脚本(例如,通过docker exec),它似乎会根据需要报告成功和失败。 该探测会导致失败事件,我可以通过kubectl Description podname查看这些事件,但它不会报告从失败中恢复的情况。 是否可以在不重新启动吊舱或迷你库贝的情况下进行修改? 如果失败导致pod重

  • 问题内容: 我们正在使用Kubernetes 1.1.3及其默认的fluentd-elasticsearch日志记录。 我们还在容器上使用LivenessProbes来确保它们按预期运行。 我们的问题是,我们从LivenessProbe发送到STDOUT的行似乎没有到达Elastic Search。 有没有办法像吊舱中的常规容器一样使流利的船LivenessProbes输出? 问题答案: 探针的输

  • 我使用的是标准的skydns RC/SVC YAMLS。 吊舱描述: (etcd) 我还将放入kube2sky容器中,ca.crt与服务器上的ca.crt匹配。

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

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