helm分步部署16版本时,部署超时导致失败的问题

  • Choerodon平台版本: 0.16.0

  • 遇到问题的执行步骤:
    执行helm install agile-service

  • 文档地址:

  • 环境信息(如:节点信息):

  • 报错日志:


    没有更多日志

  • 原因分析:

    提出您分析问题的过程,以便我们能更准确的找到问题所在
    kubectl describe pod agile-service-init-config-rrqkh 时event正常


    无法看到更多log

  • 疑问:

    提出您对于遇到和解决该问题时的疑问

谢谢,这种情况该如何排查问题?

报了超时的错吗

是的,helm会报超时

你可以多加一个参数 --set preJob.timeout=1000 1000表示1000秒超时

嗯嗯,是否有其他日志,可帮忙定位到更具体点的问题?

安装的时候看看job有没有报错

我也有在更新的时候出现相同的问题,经过检查后发现是有如下的问题

  1. LiquiBase对数据库进行更新时,出现了错误,导致后续无法启动service容器
    2.直接进入容器查看,一般都是出现了 Waiting for changelog lock… 的错误信息,查找一下,应该是某个表被锁住了,查询出来删除掉这个记录就ok

job没有报错,–set preJob.timeout=1000设置后没有生效,还是300s后超时了
image

是在init-db时候吗?还是在init-config?
我再执行下,同步看看数据库的日志,谢谢

建议后期是否可以考虑一下,直接废弃LiquiBase这种方式,转而使用dockerfile来做数据库的一些初始化操作

我出现错误是在init-db的时候,通过查看日志解决了问题,还好我以前用过LiquiBase,对于不熟悉的开发人员,还是有点难以定位的,推荐直接在dockerfile中去做init-db 的脚本执行,毕竟都9012年了

你好,可以讲解一下怎么使用Dockerfile进行数据库初始化的吗? 有demo吗?

以下是官方文档,这里给到地址

你好,这个仅仅只是 ENTRYPOINT 关键字的使用方法而已,我想了解的是在不使用LiquiBase工具进行数据库初始化的情况下使用其他什么工具可以替代LiquiBase进行数据库初始化操作?

你好,直接在这里执行你的sql脚本不就简单很多吗,而且这样更加直观

你好,这种方法虽然简单粗暴,但是后期维护起来就很麻烦,你会考虑到表创建了没有会不会重复创建,字段类型是否是自己需要的,这也是使用LiquiBase的原因;而且如果写在 ENTRYPOINT里面,那么每次容器启动的时候都会去初始化一遍数据库,这种情况会不会出现数据库数据丢失或错乱等问题呢?我们将数据库初始化独立出来也是出于数据安全方面进行考虑的。