歡迎訪問我的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