背景:在啟動鏡像時會經常遇到啟動容器失敗的情況
問題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中引用的文件名是否一致,以上就是文件不對