Kubuesphere部署Ruoyi(三):持久化儲存設定

2023-04-20 15:00:42

按照如下教學設定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已經安裝完畢並掛載

步驟概覽

  1. 安裝Helm
  2. 安裝卷外掛 NFS-Subdir
  3. 驗證安裝

安裝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

參考外掛安裝指南:https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/charts/nfs-subdir-external-provisioner/README.md

提示:該外掛要求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。該步驟省略。