歡迎訪問我的GitHub
https://github.com/zq2599/blog_demos
內容:所有原創文章分類彙總及配套原始碼,涉及Java、Docker、Kubernetes、DevOPS等;
群暉和K8S+
- 學習K8S時經常用到網路儲存,於是想找個穩定的NFS服務,正好家裡的群暉DS218+長期開著,空間又充足,用來提供NFS服務挺合適,本文就是設定和使用的過程備忘;
- 下圖是DS218+剛買來的樣子,兩塊NAS硬碟,一直在穩定服務:
全文概覽
- 設定NFS;
- NFS客戶端安裝NFS應用;
- K8S上的設定;
- 建立儲存卷;
- 建立Tomcat
- 訪問Tomcat服務
環境資訊
- 群暉系統:DSM 6.2.2-24922 Update 4
- Kubernetes:1.15
- Kubernetes宿主機:CentOS Linux release 7.7.1908
- Helm:2.16.1
參考文章
本文重點是K8S實戰,因此需要一定K8S基礎,請參考:
如果您已經準備好了群暉、K8S、Helm,我們們就來實戰吧。
設定NFS
- 網頁登入群暉,控制皮膚->共享資料夾;
- 新增共享資料夾:
- 接下來是加密設定,這裡為不設定加密,直接點選下一步:
- 高階設定頁面,請按需設定,這裡為了簡單直接下一步:
- 點選應用即可建立資料夾,然後做NFS設定,如下圖:
- 如下圖,記下紅框1中的NFS路徑/volume1/nfs-tomcat(後面會用到),然後點選紅框2:
- 除了NFS設定,還要給這個資料夾設定許可權,否則遠端寫入的時候會報錯,如下圖,開啟File Station即可看到紅框2中的nfs-tomcat,這就是NFS目錄對應的本地磁碟目錄,在上面點選滑鼠右鍵,選擇屬性:
- 在彈出的屬性頁面,增加一個許可權配置,請按照您的實際需要設定,這裡為了省事兒設為任何人都能操作:
至此,群暉上的NFS設定完畢,接下來在K8S執行一個應用,使用這個NFS儲存;
NFS客戶端安裝
NFS的使用者需要安裝客戶端,這裡是K8S要用NFS,因此要在K8S宿主機上安裝客戶端應用,對CentOS來說就是執行命令:yum install nfs-utils -y
建立儲存卷(PersistentVolume簡稱PV)
PV是K8S裡常用的儲存型別,這裡建立一個NFS型別的PV:
- SSH登入K8S;
- 建立namespace:kubectl create namespace tomcat-test
- 新建名為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
- 建立PV:kubectl apply -f tomcat-test-pv.yaml
- 檢視PV,如下圖,名為pv-tomcat-test的PV狀態為Available,表示空閒狀態,可以被K8S使用:
- 現在PV建立成功,接下來通過Helm建立tomcat,來使用這個PV;
建立Tomcat
- 增加helm倉庫(帶有tomcat的倉庫):helm repo add bitnami https://charts.bitnami.com/bitnami
- 下載tomcat的chart:helm fetch bitnami/tomcat
- chart下載成功後,當前目錄出現tomcat配置壓縮包tomcat-6.2.4.tgz,解壓:tar -zxvf tomcat-6.2.4.tgz
- 解壓後出現tomcat資料夾,進去後開啟檔案templates/pvc.yaml,所有內容保持不變,僅在末尾新增下圖紅框中的內容:
- 上圖紅框中的內容很好理解:增加選擇器,用上剛才建立的PV
- 回到tomcat資料夾下面,執行命令建立tomcat:helm install --name-template tomcat001 -f values.yaml . --namespace tomcat-test
- 檢視PV狀態,可見已經被使用(另一個PV仍舊是空閒狀態,說明在pvc.yaml中設定的選擇器是有效的):
- 繼續檢視pod和service,一切正常,同時發現tomcat的服務埠被對映到宿主機的30512埠:
- 瀏覽器訪問宿主機IP:30512,可以正常開啟tomcat歡迎頁面:
- 回到群暉網頁,開啟File Station,可見nfs-tomcat目錄下已經寫入了很多內容,都是tomcat的內部檔案:
至此,K8S成功的用上了群暉提供的NFS服務,在今後的K8S學習中,有了穩定的NFS服務,並且得益於群暉檔案系統的安全性,資料安全性也有了提升;
歡迎關注公眾號:程式設計師欣宸
微信搜尋「程式設計師欣宸」,我是欣宸,期待與您一同暢遊Java世界...
https://github.com/zq2599/blog_demos