首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes Camel Spring applciation优雅关闭

Kubernetes Camel Spring applciation优雅关闭
EN

Stack Overflow用户
提问于 2018-10-31 20:21:32
回答 1查看 291关注 0票数 0

我有一个spring boot camel应用程序,它在activeMq上处理消息。但是,每隔一段时间,就绪探测就会失败,并重新启动pod。现在这很好,但是我不断地收到应用程序登录和输出的消息,并且由于就绪探测不断失败,它进入了一个重启周期。

有没有可能让kubernet允许spring/camel应用程序优雅地关闭或使用队列中的任何消息?

EN

回答 1

Stack Overflow用户

发布于 2018-10-31 21:53:58

使用Container hooks,可以设置如下所示的prestop

代码语言:javascript
复制
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"]

此挂钩在容器终止之前立即调用。它是阻塞的,这意味着它是同步的,因此它必须在发送删除容器的调用之前完成。不会向处理程序传递任何参数。

你可以在Termination of Pods上跟随潮流

  1. 用户发送命令删除Pod,默认宽限期(30s)
  2. 应用编程接口服务器中的Pod将在宽限期内更新,超过该时间后,该Pod将被视为“已死”。当client commands
  3. (simultaneous中列出时,
  4. Pod将显示为“terminating”,并显示3)当Kubelet发现某个pod由于设置了2中的时间而被标记为终止时,它将开始pod关闭过程。
    1. 如果pod定义了preStop hook,则在pod内部调用。如果在宽限期到期后preStop挂钩仍在运行,则会在较小的(2秒)延长宽限期内调用步骤2。
    2. 将向Pod中的进程发送术语signal.

具有3) Pod的

  1. (simultaneous将从服务的端点列表中删除,并且不再被视为复制控制器的运行Pod集的一部分。缓慢关闭的实例无法继续为流量提供服务,因为负载均衡器(如服务代理)会将它们从rotations.
  2. When中移除。宽限期到期后,任何仍在实例中运行的进程都会被SIGKILL终止。
  3. Kubelet将通过设置宽限期0(立即删除)来完成在API服务器上删除实例。Pod将从应用编程接口中消失,并且在客户端中不再可见。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53083234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档