按照如下教程配置NFS
先伺服器:
https://kubesphere.io/zh/docs/v3.3/reference/storage-system-installation/nfs-server/
後客戶端:
https://kubesphere.io/zh/docs/v3.3/installing-on-linux/persistent-storage-configurations/install-nfs-client/
按照連結操作以後,在客戶端上面把目錄掛載到服務端
root@client_banana:/# mount 172.25.110.41:/mnt/nfs_share /mnt/client_floder
客戶端: mount <server-ip>:<the_share_dir_onserver> <local_share_dir>
#檢查nfs的狀態
service nfs-server status
# 停止nfs
service nfs-server stop
# 啟動nfs
service nfs-server start
建立StorageClass
先決條件
nfs-server、nfs-client已經安裝完畢並掛載
步驟概覽
- 安裝Helm
- 安裝卷外掛 NFS-Subdir
- 驗證安裝
安裝Helm
參考Helm官方文件:https://helm.sh/zh/docs/intro/install/
筆者使用的是Ubuntu,所以採用如下命令安裝:
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
安裝卷外掛 NFS-Subdir
提示:該外掛要求
Kubernetes >=1.9
,按照版本號命名規則來看,主版本號是1,次版本號是9,所以我們之前選擇的k8s版本是v1.21.5是沒問題的。
版本號命名規則:主版本號.次版本號.補丁號
$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=x.x.x.x \
--set nfs.path=/exported/path
把 nfs.server 修改成自己的nfs.server的IP。 nfs.path 改成共享目錄的路徑
INSTALLATION FAILED
寫錯路徑或者主機以後,想再執行一次命令,需要先刪除之前部署失敗的package
報錯資訊:
Error: INSTALLATION FAILED: cannot re-use a name that is still in use
解決方案
//檢視fail的包在哪
helm ls --all-namespaces
//刪除該包
helm -n <namespace> delete <package-name>
映象拉取失敗
預設映象地址是:registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
可能會出現映象拉取失敗的情況。
去dockerhub上尋找相同版本的即可。我採用的是以下版本:
dyrnq/nfs-subdir-external-provisioner:v4.0.2
驗證安裝
kubectl get sc
可以看到已經有一個叫 nfs-share 的StorageClass。
如果是k8sp平臺,可以去建立一個pvc,再去虛機裡自己設定的共享目錄檢視一下有沒有相應的pvc。該步驟省略。