1. 程式人生 > >K8S使用群暉DS218+的NFS

K8S使用群暉DS218+的NFS

### 歡迎訪問我的GitHub [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) 內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等; ### 群暉和K8S+ 1. 學習K8S時經常用到網路儲存,於是想找個穩定的NFS服務,正好家裡的群暉DS218+長期開著,空間又充足,用來提供NFS服務挺合適,本文就是設定和使用的過程備忘; 2. 下圖是DS218+剛買來的樣子,兩塊NAS硬碟,一直在穩定服務: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093248692-105166839.png) ### 全文概覽 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》](https://blog.csdn.net/boling_cavalry/article/details/103106314) 2. [《部署和體驗Helm(2.16.1版本)》](https://blog.csdn.net/boling_cavalry/article/details/103667500) 3. [《Ubuntu16環境安裝和使用NFS》](https://blog.csdn.net/boling_cavalry/article/details/79498346) 如果您已經準備好了群暉、K8S、Helm,咱們就來實戰吧。 ### 設定NFS 1. 網頁登入群暉,控制面板->共享資料夾; ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093249364-627645495.png) 2. 新增共享資料夾: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093249892-1670855667.png) 3. 接下來是加密設定,這裡為不設定加密,直接點選下一步: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093250236-1401282624.png) 4. 高階設定頁面,請按需設定,這裡為了簡單直接下一步: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093250525-316243435.png) 5. 點選應用即可建立資料夾,然後做NFS設定,如下圖: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093250957-582146912.png) 6. 如下圖,記下紅框1中的NFS路徑/volume1/nfs-tomcat(後面會用到),然後點選紅框2: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093251420-577975802.png) 7. 除了NFS設定,還要給這個資料夾設定許可權,否則遠端寫入的時候會報錯,如下圖,開啟File Station即可看到紅框2中的nfs-tomcat,這就是NFS目錄對應的本地磁碟目錄,在上面點選滑鼠右鍵,選擇屬性: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093251793-1282183595.png) 8. 在彈出的屬性頁面,增加一個許可權配置,請按照您的實際需要設定,這裡為了省事兒設為任何人都能操作: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093252318-1773178258.png) 至此,群暉上的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: ```yml 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 ``` 4. 建立PV:kubectl apply -f tomcat-test-pv.yaml 5. 檢視PV,如下圖,名為pv-tomcat-test的PV狀態為Available,表示空閒狀態,可以被K8S使用: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093252715-1320281418.png) 6. 現在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,所有內容保持不變,僅在末尾新增下圖紅框中的內容: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093253045-87540680.png) 5. 上圖紅框中的內容很好理解:增加選擇器,用上剛才建立的PV 6. 回到tomcat資料夾下面,執行命令建立tomcat:helm install --name-template tomcat001 -f values.yaml . --namespace tomcat-test 7. 檢視PV狀態,可見已經被使用(另一個PV仍舊是空閒狀態,說明在pvc.yaml中設定的選擇器是有效的): ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093253522-1604830178.png) 8. 繼續檢視pod和service,一切正常,同時發現tomcat的服務埠被對映到宿主機的30512埠: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093253957-1650415141.png) 9. 瀏覽器訪問宿主機IP:30512,可以正常開啟tomcat歡迎頁面: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093254625-1494091402.png) 10. 回到群暉網頁,開啟File Station,可見nfs-tomcat目錄下已經寫入了很多內容,都是tomcat的內部檔案: ![在這裡插入圖片描述](https://img2020.cnblogs.com/other/485422/202011/485422-20201101093254997-503386462.png) 至此,K8S成功的用上了群暉提供的NFS服務,在今後的K8S學習中,有了穩定的NFS服務,並且得益於群暉檔案系統的安全性,資料安全性也有了提升; ### 歡迎關注公眾號:程式設計師欣宸 > 微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界... [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blo