V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhoudaiyu
V2EX  ›  Kubernetes

如何优雅地判断部署在 k8s 集群中的 Tomcat 正常启动?

  •  
  •   zhoudaiyu · 2020-07-20 11:33:23 +08:00 · 2495 次点击
    这是一个创建于 1616 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 readinessProbe 去探活 tomcat 端口不是很靠谱,有时候应用启动异常了,端口一样能启动起来;而且现在应用没有暴露出健康检查的接口。现在的想法是用 readinessProbe 去 tail catalina.log ,检查日志里有特定没有异常,如果有,就证明 Tomcat 启动异常。有没有更优雅、靠谱的判断 tomcat 是否正常启动的方法呢?
    11 条回复    2020-07-28 15:45:04 +08:00
    ypcs03
        1
    ypcs03  
       2020-07-20 11:46:06 +08:00
    exec 一点儿都不优雅,优雅一点儿就是在你的应用里面加 healthcheck 吧
    julyclyde
        2
    julyclyde  
       2020-07-20 11:57:48 +08:00
    “有时候应用启动异常了,端口一样能启动起来”那是应用程序自己的问题…
    lhx2008
        3
    lhx2008  
       2020-07-20 11:58:22 +08:00 via Android
    应用没有就加一个。。
    limuyan44
        4
    limuyan44  
       2020-07-20 12:25:45 +08:00
    有没有想过你应用程序报错关我 tomcat 什么事。
    zhoudaiyu
        5
    zhoudaiyu  
    OP
       2020-07-20 12:50:00 +08:00
    @julyclyde #2
    @limuyan44 #4 是应用的问题,那这时候就应该拦截下来,不让他发布才对啊

    @lhx2008 #3
    @ypcs03 #1 设计到很多很多工程,改动起来比较麻烦
    rrfeng
        6
    rrfeng  
       2020-07-20 12:52:50 +08:00
    你写个 http probe 探测一个已知的无关紧要的 get 接口判断呗,不一定非得专门的 healthcheck
    lazyfighter
        7
    lazyfighter  
       2020-07-20 13:47:29 +08:00
    应用加 healthCheck
    julyclyde
        8
    julyclyde  
       2020-07-20 14:20:57 +08:00
    你这是运行时错误,发布的时候咋拦?
    szkoda
        9
    szkoda  
       2020-07-21 10:44:27 +08:00
    1. 你这是程序运行报错,就算发布拦截了,运行一段时间又挂了呢,不还得有 healthcheck,发布系统不应该关心程序后续运行逻辑,java 还好,你跑一个 python 应用试试,全公司的业务都在发布,你不得定个应用接入标准?
    2.最优雅的方式就是应用改代码,增加 hc 探测,这是 k8s 的原则,也只有应用开发人员知道什么才叫"真的运行正常",
    3.不优雅的方式也有,你弄个 sidecar 自己探测日志,探测一个无关紧要的接口( http ),或者 cli 访问都可以,grpc 的服务也是这么搞的,不过这些不满足你要求的"优雅",把这两个字去掉,方法就多了,,(狗头
    thinkmore
        10
    thinkmore  
       2020-07-23 09:35:06 +08:00
    我们的 springboot 应用,一般 healthCheck 会访问 acutor 的 health 接口。

    非 java 应用(非常简单)的就默认为不出啥问题
    mogging
        11
    mogging  
       2020-07-28 15:45:04 +08:00
    你需要一个探针页面
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3344 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.