Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Kubernetes骆驼泉应用优雅关闭_Spring Boot_Kubernetes_Apache Camel - Fatal编程技术网

Spring boot Kubernetes骆驼泉应用优雅关闭

Spring boot Kubernetes骆驼泉应用优雅关闭,spring-boot,kubernetes,apache-camel,Spring Boot,Kubernetes,Apache Camel,我有一个SpringBootCamel应用程序,它在activeMq上处理消息。但是,每隔一段时间,ready probe就会失败并重新启动pod。现在这很好,但是我不断地将应用程序日志记录在机上消息中,由于就绪探测不断失败,它进入了重新启动周期 有没有可能让kubernets允许spring/camel应用程序正常关闭或使用队列中的任何消息?使用,您可以设置预停止,如下所示: apiVersion: v1 kind: Pod metadata: name: lifecycle-demo s

我有一个SpringBootCamel应用程序,它在activeMq上处理消息。但是,每隔一段时间,ready probe就会失败并重新启动pod。现在这很好,但是我不断地将应用程序日志记录在机上消息中,由于就绪探测不断失败,它进入了重新启动周期

有没有可能让kubernets允许spring/camel应用程序正常关闭或使用队列中的任何消息?

使用,您可以设置
预停止
,如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
      preStop:
        exec:
          command: ["/usr/sbin/nginx","-s","quit"]
在容器终止之前立即调用此钩子。它是阻塞的,这意味着它是同步的,因此它必须在发送删除容器的调用之前完成。未向处理程序传递任何参数

你可以跟着流程走

  • 用户发送删除Pod的命令,默认宽限期(30秒)
  • API服务器中的Pod随时间更新,超过该时间后,Pod将被视为“死亡”,并随宽限期一起更新
  • Pod在客户端命令中列出时显示为“终止”
  • (与3同时)当Kubelet发现由于设置了2中的时间而将Pod标记为终止时,它开始Pod关闭过程。
  • 如果pod定义了,则在pod内部调用它。如果
    preStop
    钩子在宽限期到期后仍在运行,则调用步骤2并延长一个小的(2秒)宽限期
  • Pod中的进程被发送术语信号
  • (与3同时)Pod已从服务的端点列表中删除,不再被视为复制控制器的运行Pod集的一部分。当负载平衡器(如服务代理)将其从循环中移除时,缓慢关闭的POD无法继续服务于流量
  • 当宽限期到期时,Pod中仍在运行的所有进程都将使用SIGKILL终止
  • Kubelet将通过设置宽限期0(立即删除)完成删除API服务器上的Pod。Pod将从API中消失,并且不再从客户端可见

  • 闻起来更像是准备就绪检查的问题,如果Camel仍在处理,为什么它会报告失败。此外,您可能还需要调整探测器,使其具有更高的超时,或者使其不那么敏感。准备就绪探测器使吊舱停止工作。