K8S使用群暉DS218+的NFS

程式設計師欣宸發表於2022-12-14

歡迎訪問我的GitHub

https://github.com/zq2599/blog_demos

內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等;

群暉和K8S+

  1. 學習K8S時經常用到網路儲存,於是想找個穩定的NFS服務,正好家裡的群暉DS218+長期開著,空間又充足,用來提供NFS服務挺合適,本文就是設定和使用的過程備忘;
  2. 下圖是DS218+剛買來的樣子,兩塊NAS硬碟,一直在穩定服務:
    在這裡插入圖片描述

全文概覽

  1. 設定NFS;
  2. NFS客戶端安裝NFS應用;
  3. K8S上的設定;
  4. 建立儲存卷;
  5. 建立Tomcat
  6. 訪問Tomcat服務

環境資訊

  1. 群暉系統:DSM 6.2.2-24922 Update 4
  2. Kubernetes:1.15
  3. Kubernetes宿主機:CentOS Linux release 7.7.1908
  4. Helm:2.16.1

參考文章

本文重點是K8S實戰,因此需要一定K8S基礎,請參考:

  1. 《kubespray2.11安裝kubernetes1.15》
  2. 《部署和體驗Helm(2.16.1版本)》
  3. 《Ubuntu16環境安裝和使用NFS》

如果您已經準備好了群暉、K8S、Helm,我們們就來實戰吧。

設定NFS

  1. 網頁登入群暉,控制皮膚->共享資料夾
    在這裡插入圖片描述
  2. 新增共享資料夾:
    在這裡插入圖片描述
  3. 接下來是加密設定,這裡為不設定加密,直接點選下一步
    在這裡插入圖片描述
  4. 高階設定頁面,請按需設定,這裡為了簡單直接下一步
    在這裡插入圖片描述
  5. 點選應用即可建立資料夾,然後做NFS設定,如下圖:
    在這裡插入圖片描述
  6. 如下圖,記下紅框1中的NFS路徑/volume1/nfs-tomcat(後面會用到),然後點選紅框2:
    在這裡插入圖片描述
  7. 除了NFS設定,還要給這個資料夾設定許可權,否則遠端寫入的時候會報錯,如下圖,開啟File Station即可看到紅框2中的nfs-tomcat,這就是NFS目錄對應的本地磁碟目錄,在上面點選滑鼠右鍵,選擇屬性
    在這裡插入圖片描述
  8. 在彈出的屬性頁面,增加一個許可權配置,請按照您的實際需要設定,這裡為了省事兒設為任何人都能操作:
    在這裡插入圖片描述
    至此,群暉上的NFS設定完畢,接下來在K8S執行一個應用,使用這個NFS儲存;

NFS客戶端安裝

NFS的使用者需要安裝客戶端,這裡是K8S要用NFS,因此要在K8S宿主機上安裝客戶端應用,對CentOS來說就是執行命令:yum install nfs-utils -y

建立儲存卷(PersistentVolume簡稱PV)

PV是K8S裡常用的儲存型別,這裡建立一個NFS型別的PV:

  1. SSH登入K8S;
  2. 建立namespace:kubectl create namespace tomcat-test
  3. 新建名為tomcat-test-pv.yaml的檔案,內容如下,注意nfs.server的值,是群暉的IP地址,nfs.path的值就是前面建立共享檔案時記下來的/volume1/nfs-tomcat
apiVersion: v1
kind: PersistentVolume
metadata:
 name: pv-tomcat-test
 namespace: tomcat-test
 labels:
   pv: pv-tomcat-test
spec:
 capacity:
   storage: 10Gi
 accessModes:
   - ReadWriteOnce
 persistentVolumeReclaimPolicy: Recycle
 nfs:
   path: /volume1/nfs-tomcat
   server: 192.168.50.42
  1. 建立PV:kubectl apply -f tomcat-test-pv.yaml
  2. 檢視PV,如下圖,名為pv-tomcat-test的PV狀態為Available,表示空閒狀態,可以被K8S使用:
    在這裡插入圖片描述
  3. 現在PV建立成功,接下來通過Helm建立tomcat,來使用這個PV;

建立Tomcat

  1. 增加helm倉庫(帶有tomcat的倉庫):helm repo add bitnami https://charts.bitnami.com/bitnami
  2. 下載tomcat的chart:helm fetch bitnami/tomcat
  3. chart下載成功後,當前目錄出現tomcat配置壓縮包tomcat-6.2.4.tgz,解壓:tar -zxvf tomcat-6.2.4.tgz
  4. 解壓後出現tomcat資料夾,進去後開啟檔案templates/pvc.yaml,所有內容保持不變,僅在末尾新增下圖紅框中的內容:
    在這裡插入圖片描述
  5. 上圖紅框中的內容很好理解:增加選擇器,用上剛才建立的PV
  6. 回到tomcat資料夾下面,執行命令建立tomcat:helm install --name-template tomcat001 -f values.yaml . --namespace tomcat-test
  7. 檢視PV狀態,可見已經被使用(另一個PV仍舊是空閒狀態,說明在pvc.yaml中設定的選擇器是有效的):
    在這裡插入圖片描述
  8. 繼續檢視pod和service,一切正常,同時發現tomcat的服務埠被對映到宿主機的30512埠:
    在這裡插入圖片描述
  9. 瀏覽器訪問宿主機IP:30512,可以正常開啟tomcat歡迎頁面:
    在這裡插入圖片描述
  10. 回到群暉網頁,開啟File Station,可見nfs-tomcat目錄下已經寫入了很多內容,都是tomcat的內部檔案:
    在這裡插入圖片描述
    至此,K8S成功的用上了群暉提供的NFS服務,在今後的K8S學習中,有了穩定的NFS服務,並且得益於群暉檔案系統的安全性,資料安全性也有了提升;

歡迎關注公眾號:程式設計師欣宸

微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界...
https://github.com/zq2599/blog_demos

相關文章