本文為您介紹NAS儲存卷常見問題的處理方法。
NAS儲存卷掛載時間延長
問題現象:
NAS儲存卷掛載時間延長。
問題原因:
若您在應用模板中配置了securityContext.fsgroup參數,kubelet在儲存卷掛載完成後會執行chmod
或chown
操作,導致掛載時間延長。
解決方案:
- 若應用模板中配置了securityContext.fsgroup參數,請刪除securityContext下的fsgroup參數。
- 若需要將掛載目錄內檔案變成期望的UID和mode,可以手動將目標目錄掛載到一台ECS。再通過命令列執行
chown
和chmod
,完成後通過Flexvolume使用NAS儲存卷。關於如何通過Flexvolume使用NAS儲存卷,請參見使用NAS靜態儲存卷和使用NAS動態儲存裝置卷。 - 對於1.20及之後版本的Kubernetes叢集,除了上述兩種解決方案外,也可通過將fsGroupChangePolicy配置為OnRootMismatch,這時只有在初次開機時才會執行
chmod
或chown
操作,導致存在掛載時間延長的問題,後續掛載NAS儲存卷時掛載時間將恢複正常。關於fsGroupChangePolicy參數的更多資訊,請參見為Pod或容器配置資訊安全內容。
NAS儲存卷掛載失敗時出現timeout錯誤
問題現象:
NAS儲存卷掛載失敗時出現timeout錯誤。
問題原因:
NAS掛載點和叢集不在同一VPC內。
解決方案:
選擇與叢集在同一VPC內的NAS掛載點。
使用NAS儲存卷時,提示chown: option not permitted
問題現象:
使用NAS儲存卷時,提示chown: option not permitted。
問題原因:
您的容器沒有許可權使用該NAS儲存卷。
解決方案:
您需要使用root許可權啟動容器。
掛載NAS儲存卷失敗
問題現象:
掛載NAS PV失敗,並報以下錯誤:
Unable to mount volumes for pod "dp-earnings-pod_default(906172c6-3d68-11e8-86e0-00163e00****)": timeout expired waiting for volumes to attach/mount for pod "default"/"dp-earnings-pod". list of unattached/unmounted volumes=[vol1 vol2]
問題原因:
您沒有安裝Flexvolume外掛程式。
解決方案:
您需要安裝Flexvolume外掛程式。具體操作,請參見安裝與升級Flexvolume組件。
使用NAS動態儲存裝置卷時Controller的任務隊列已滿且無法建立新的PV
問題現象:
使用NAS動態儲存裝置卷時,若建立子目錄寫入速度快於Controller刪除子目錄速度,將可能導致Controller的任務隊列阻塞且無法建立新的PV。
問題原因:
當叢集使用動態NAS儲存卷時,配置的StorageClass回收策略reclaimPolicy為Delete且archiveOnDelete為false。
解決方案:
將archiveOnDelete配置為true,當刪除PV時只是修改NAS檔案系統中子目錄的名稱,而不是真正刪除檔案。
具體的檔案刪除操作需要您自行處理,例如:在某個節點過載根目錄啟動定時刪除機制,或啟動多個Pod並發刪除某種格式的子目錄。