k8s容器启动失败问题总结
背景:在启动镜像时会经常遇到启动容器失败的情况
问题1:查看pod时,镜像提示CrashLoopBackOff
先来查看log,日志很明显的有提示
解决方案:
从日志中查看是加载配置文件出错了,所以我们要确认在容器中是否能正确加载配置文件,所以方案,先正常启动pod,在容器内部在手动启动,查看,且要确认是否能正确读取配置文件
更改启动时程序
启动时使用:command: ["bash", "-c", "sleep 10000"]
进入容器内部,使用启动命令
command: ["/opt/push/bin/tcpproc/tcp_proc","/opt/push/conf/tcpproc/report.conf","0"] 可正常启动,说明configmap启动正常
说明问题出在yaml的问题,修改yaml对应的jmonitor路径,如下如图,以下地址是pod中能找到的路径,原来是写的一个相对路径(./jmonitor_proxy.conf)
如果提示少了某个文件,先查configmap中是否正确加载,2.进入容器内部手动启动,如果能手动启动成功,就是yaml文件有问题
问题2、 configmap references non-existent config key: jmonitor_proxy.conf
这个问题说明yaml中需要配置文件,但是confimap并没有找到,发现两个地方不对,就查configmap
查询1.配置文件中加载的文件不对
2.confifgmap中文件名称也不对(最开始是jmonitor_client.conf)
如果提示configmap中提示不存在某个key,但是文件中存在,就需要确认,configmap中引用的文件名是否一致,以上就是文件不对
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |