這篇文章主要介紹“GlusterFS在Kubernetes中怎么應用”,在日常操作中,相信很多人在GlusterFS在Kubernetes中怎么應用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”GlusterFS在Kubernetes中怎么應用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
10多年的東鄉網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。網絡營銷推廣的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整東鄉建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯建站從事“東鄉網站設計”,“東鄉網站推廣”以來,每個客戶項目都認真落實執行。
背景介紹
首先需要大家已經成功搭建好了Kubernetes集群的實驗環境
想在生產環境里面使用glusterfs做storageclass,本文就可以保證你完成。
本案例中,實驗環境與k8s集群使用同樣的主機地址,實際生產案例中請分開部署。三個虛擬機里面各新建一塊硬盤,硬盤大小均為10g。
主機ip | 主機名 | 磁盤 | 掛載點 |
192.168.56.11 | Linux-node1.example.com | /dev/sdb | /gluster_brick1 |
192.168.56.12 | Linux-node2.example.com | /dev/sdb | /gluster_brick1 |
192.168.56.13 | Linux-node3.example.com | /dev/sdb | /gluster_brick1 |
【第一部分:Glusterfs實戰】
1.磁盤類型修改
實際生產案例中大家的磁盤都比較大,先將磁盤類型修改為gpt。這里給大家提供一個生產使用的腳本。
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH function main(){ i=3 while [ $i -lt 10 ] do j=`echo $i|awk '{printf "%c",97+$i}'` parted /dev/sd$j <請大家在三臺機器上使用fdisk –l查看下新加入硬盤的編號,我這里為/dev/sdb。在三臺機器上分別進行如下操作,操作過程按照生產環境來。三臺機器的新加磁盤均需要做如下操作。
操作完成后檢查新加入的磁盤類型是否為gpt類型。檢測命令fdisk -l
2.磁盤格式化并掛載卷
生產環境在使用的時候存儲也進行了自己的規劃使用了flashcache做緩存層,大家有興趣的可以研究下存儲,我這邊實驗環境沒有使用flashcache。給大家提供一個格式化和掛載的腳本。
function mkfs(){ for i in `seq 1 12`;do if [ $i -lt 10 ] then mkfs.xfs -L brick$i -f -i size=512 /dev/mapper/flash0$i sleep 1 else mkfs.xfs -L brick$i -f -i size=512 /dev/mapper/flash$i fi done } function guazai(){ for i in `seq 1 12`;do mkdir /gluster_brick$i echo "LABEL=brick$i /gluster_brick$i xfs defaults 0 0" >> /etc/fstab done }好了不廢話,繼續我們的實驗,格式化磁盤/dev/sdb1,如下所示,三臺機器均進行如下操作。這里不使用卷標的可以使用uuid,否則有坑。
# mkfs.xfs -L brick1 -f -i size=512 /dev/sdb1 # mkdir /gluster_brick1 # echo "LABEL=brick1 /gluster_brick1 xfs defaults 0 0" >> /etc/fstab # mount -a3.安裝glusterfs
去gfs官網看了下glusterfs更加簡單了,安裝的命令不復雜了,n年前我安裝的時候還是3版本,偶然發現已經5版本了,變化太快了,若你有興趣可把官網看一遍。三臺機器均為glusterfs的server,均需按照如下步驟進行安裝:
# yum install centos-release-gluster # yum install glusterfs-server(說明如果是glsuterfs的客戶端,則只需要按照glusterfs-client包即可) # systemctl enable glusterd # systemctl start glusterd當然你也可以使用之前配置好的salt進行自動化安裝。
# salt-ssh '*' cmd.run 'systemctl enable glusterd'4.gluster peer管理
當glusterd運行起來之后在任意一臺機器添加另外兩個機器進信任的池子即可。這里在linux-node1進行操作,需要執行如下兩條命令。
# gluster peer probe linux-node2 # gluster peer probe linux-node3驗證是否添加成功,如下圖所示則為成功。
[root@linux-node1 ~]# gluster peer status5.創建卷devops
注意生產中,一般使用三個副本,這里就三塊盤,里面存儲的數據是一致的,如下圖所示:
[root@linux-node1 ~]# gluster volume create devops replica 3 linux-node1:/gluster_brick1/b1 linux-node2:/gluster_brick1/b1 linux-node3:/gluster_brick1/b1 volume create: devops: success: please start the volume to access data [root@linux-node1 ~]# gluster volume start devops volume start: devops: success6.測試glusterfs存儲
[root@linux-node1 ~]# mkdir /test [root@linux-node1 ~]# mount -t glusterfs linux-node1:/devops /test [root@linux-node1 ~]# for i in `seq -w 1 100`; do echo "test" >> /test/copy-test-$i; done [root@linux-node1 ~]# ls -lA /test | wc -l 101此步驟可以看到100個文件;然后查看下:
因為是三個副本,所以每個機器上已經有了100個文件,好了glusterfs的實驗就到這里。
【第二部分:在Kubernetes集群中使用】
1.將glusterfs當作pv和pvc在集群中使用
需要使用三個文件:
glusterfs-endpoints.yaml
pv-demo.yaml
pvc-demo.yaml
[root@linux-node1 glusterfs]# cat glusterfs-endpoints.yaml apiVersion: v1 kind: Endpoints metadata: name: glusterfs-volume subsets: - addresses: - ip: 192.168.56.11 ports: - port: 20 - addresses: - ip: 192.168.56.12 ports: - port: 20 - addresses: - ip: 192.168.56.13 ports: - port: 20 [root@linux-node1 glusterfs]# cat pv-demo.yaml apiVersion: v1 kind: PersistentVolume metadata: name: pv-gluster spec: capacity: storage: 5G accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Recycle glusterfs: endpoints: "glusterfs-volume" path: "devops" readOnly: false [root@linux-node1 glusterfs]# cat pvc-demo.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-glusterfs spec: accessModes: - ReadWriteMany resources: requests: storage: 1G使用kubectl直接創建好資源即可。
2.用deployment進行驗證
[root@linux-node1 glusterfs]# cat nginx-ingress-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.13.12 ports: - containerPort: 80 volumeMounts: - name: www subPath: nginxpvc-gluster mountPath: /usr/share/nginx/html volumes: - name: www persistentVolumeClaim: claimName: pvc-glusterfs # kubectl apply -f nginx-ingress-deployment.yaml3.自動化擴容pvc
1、當glustefs的磁盤空間夠大的時候,我們使用的pv跟我們申請的大小是不一樣的,上限是GFS卷的大小,若gfs存儲不夠,只需擴容gfs的volume即可。
2、當存儲管理員開啟了這個參數的時候怎么辦?
# gluster volume devops quota enable # gluster volume quota devops limit-usage / 1gb擴容完存儲之后,將我們的quota值調大,這個時候我們k8s里面的pod就可以使用大額的存儲了,不需要重啟。pv和pvc不做調整。
到此,關于“GlusterFS在Kubernetes中怎么應用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!
分享名稱:GlusterFS在Kubernetes中怎么應用
轉載來于:http://www.yuzhuanjia.cn/article/gshhoh.html