Back-off restarting failed container的原因,通常是因为,容器内PID为1的进程退出导致(通常用户在构建镜像执行CMD时,启动的程序,均是PID为1)。一般遇到此问题,使用者需自行排查原因,可从如下几个方向入手:
方式一:
此方式仅针对于镜像是正确构建和使用,并且可能在其他环境有做过测试也是正常的。(也就是上述描述的第二种问题原因)
如果镜像有应用的标准输出,可以直接取查看容器的日志,在web控制台或者使用kubectl logs命令皆可,如果日志足够丰富,应该就可以找到问题所在。
方式二:
没日志,甚至可能镜像本身就有问题
此种方式,推荐使用sleep方式,对容器先行临时启动,然后进入容器具体排查,具体方式:
1、 修改容器启动命令和参数,使用sleep命令先将该容器启动
tke的web页面书写方式见下
yaml方式参考如下
2、步骤1会执行sleep命令,并会覆盖掉容器原本的启动命令,如果您的容器有sh环境和sleep命令,上述命令就会执行成功并让容器running
3、进入容器,然后手工启动下容器本该执行的启动命令或脚本,然后观察相关日志输出,分析定位问题原因
4、解决问题后重新构建镜像,然后使用新镜像启动,启动时,请注意,去掉步骤1中所使用的sleep命令,回归workload本身应有的启动命令和参数
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。