kubernetes pod 掛載configmap報錯:read only fie system


kubernetes pod 掛載configmap報錯:read only fie system

 

  背景:使用的是騰訊雲的容器服務,鏡像是我們研發同學開發的鏡像,其中在pod啟動時需要新建一個路徑 /app/subserver/config/disconf/ 。

  但是發現啟動的時候報錯:

(read only fie system) 

 

  檢查一下pod的設置,發現掛載的路徑是可讀寫的:

  

 

   

  進入容器檢查也沒問題:

  

 

   

  搜索引擎了一番,發現幾個類似的報錯。但是仔細看看其實不對,他們這些返回的報錯都是直接的物理或虛擬機系統報錯的,不是k8s pod 的報錯。而pod是無法直接重新掛載文件系統的。

  

 

  權限也有,路徑也在,為什么還是說是只讀文件系統呢?

  百度必應谷歌都沒找到可以借鑒的。

  正好看到旁邊研發同事有空,遂請教。大佬回:這個啟動時候要創建寫入文件,路徑有嗎?權限有嗎?我一一檢查,都有。

  大佬沉吟兩秒:你進去創建一個文件試試。

  另外提一句,騰訊雲的容器服務是可以設置啟動命令的,比如我現在,就需要讓pod啟動后休眠一會兒,不然因為pod報錯,它會不斷自啟,那就沒辦法進去檢查了。在高級設置里面,或者可以直接加在yaml文件里:

  

 

   我進入容器,嘗試創建文件:

  

 

 

  熟悉的報錯。

  明明路徑有權限,為什么提示只讀呢?

  

  大佬問:他這個路徑是主機文件系統的嗎?

  主機文件系統?我看看。

  

 

   一語驚醒夢中人!

  這個不是pod的主機路徑啊,這是掛載的configmap的路徑。

  原來如此。因為掛載的configmap是外部掛載的,不屬於pod自有的系統路徑,所以是無法在一個configmap路徑下面再新建路徑的。

    

  那就好辦了。把 /app/subserver/config/disconf/ 改為 /app/config/disconf/ 這樣他就是在/app/這個路徑下面創建路徑並寫入文件,這樣應該就沒問題了吧。

  

 

  可以看到,已經正常寫入了三個文件。

  感謝lyy大佬!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM