Kubernetes NFS存儲服務的誤報

在Kubernetes 1.11.2 + Ubuntu 18.04上,使用NFS部署JupyterHub和IPFS後,全部的服務都是能夠用的。node

一、問題現象

但在重啓機器後,全部的PVC都沒法鏈接、Pod啓動失敗。docker

查看NFS服務、PVC、PV都是綠色狀態,所有正常。後來發現這個是假信號,磁盤根本沒有掛載。服務器

查看Pod的日誌,顯示「invalid directory or file」。工具

從原始磁盤查起,在命令行運行df -h,發現NFS的掛載盤沒有出現。ui

奇了怪了!spa

二、解決方法

忽然想起,多是啓動時系統沒有掛載數據盤!!!.net

去掛載數據盤,再重啓一下docker。再去看,Pod已經能夠正常訪問了。問題確認!命令行

三、一勞永逸

把磁盤設爲系統啓動掛載(Ubuntu 桌面版直接使用「磁盤」工具,進去修改選項便可)。日誌

服務器能夠將其參數寫入/etc/fstab,啓動時就會自動掛載。code

sudo nano /etc/fstab

裏面的格式是(各個域用空格分開):

  • file system,能夠經過ls -l /dev/disk/by-uuid查看UUID,設進去。
  • mount point,通常爲/mnt/mydatadisk,mydatadisk爲本身的名稱。
  • type,設爲auto,若是是特殊格式須要專門設置。
  • option,設爲 nosuid,nodev,nofail,x-gvfs-show。這些參數是桌面「磁盤工具」設置產生的,有的好像沒啥用。
  • dump,設爲0。
  • pass,設爲0。

個人磁盤是NTFS格式,從原來移動硬盤拔下來的。如今的Ubuntu18.04對NTFS支持仍是不錯了。

而後按ctrl+x保存,重啓系統後,Pod的啓動和數據訪問都恢復了正常。

若是有多個磁盤,參照上面的格式一一處理,在fstab裏添加多條記錄。對於Kubernetes這樣的集羣,都須要在啓動時就掛載磁盤的,裏面的Pod才能訪問到。固然,也可使用LVM邏輯卷的方式由系統自動合稱爲一個大的邏輯磁盤。

四、參考資源

相關文章
相關標籤/搜索