這篇文章主要介紹“GlusterFS在Kubernetes中怎么應(yīng)用”,在日常操作中,相信很多人在GlusterFS在Kubernetes中怎么應(yīng)用問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”GlusterFS在Kubernetes中怎么應(yīng)用”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
10多年的東鄉(xiāng)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整東鄉(xiāng)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“東鄉(xiāng)網(wǎng)站設(shè)計(jì)”,“東鄉(xiāng)網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
背景介紹
首先需要大家已經(jīng)成功搭建好了Kubernetes集群的實(shí)驗(yàn)環(huán)境
想在生產(chǎn)環(huán)境里面使用glusterfs做storageclass,本文就可以保證你完成。
本案例中,實(shí)驗(yàn)環(huán)境與k8s集群使用同樣的主機(jī)地址,實(shí)際生產(chǎn)案例中請(qǐng)分開部署。三個(gè)虛擬機(jī)里面各新建一塊硬盤,硬盤大小均為10g。
主機(jī)ip | 主機(jī)名 | 磁盤 | 掛載點(diǎn) |
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實(shí)戰(zhàn)】
1.磁盤類型修改
實(shí)際生產(chǎn)案例中大家的磁盤都比較大,先將磁盤類型修改為gpt。這里給大家提供一個(gè)生產(chǎn)使用的腳本。
#!/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 <請(qǐng)大家在三臺(tái)機(jī)器上使用fdisk –l查看下新加入硬盤的編號(hào),我這里為/dev/sdb。在三臺(tái)機(jī)器上分別進(jìn)行如下操作,操作過程按照生產(chǎn)環(huán)境來。三臺(tái)機(jī)器的新加磁盤均需要做如下操作。
操作完成后檢查新加入的磁盤類型是否為gpt類型。檢測(cè)命令fdisk -l
2.磁盤格式化并掛載卷
生產(chǎn)環(huán)境在使用的時(shí)候存儲(chǔ)也進(jìn)行了自己的規(guī)劃使用了flashcache做緩存層,大家有興趣的可以研究下存儲(chǔ),我這邊實(shí)驗(yàn)環(huán)境沒有使用flashcache。給大家提供一個(gè)格式化和掛載的腳本。
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 }好了不廢話,繼續(xù)我們的實(shí)驗(yàn),格式化磁盤/dev/sdb1,如下所示,三臺(tái)機(jī)器均進(jìn)行如下操作。這里不使用卷標(biāo)的可以使用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官網(wǎng)看了下glusterfs更加簡(jiǎn)單了,安裝的命令不復(fù)雜了,n年前我安裝的時(shí)候還是3版本,偶然發(fā)現(xiàn)已經(jīng)5版本了,變化太快了,若你有興趣可把官網(wǎng)看一遍。三臺(tái)機(jī)器均為glusterfs的server,均需按照如下步驟進(jìn)行安裝:
# yum install centos-release-gluster # yum install glusterfs-server(說明如果是glsuterfs的客戶端,則只需要按照glusterfs-client包即可) # systemctl enable glusterd # systemctl start glusterd當(dāng)然你也可以使用之前配置好的salt進(jìn)行自動(dòng)化安裝。
# salt-ssh '*' cmd.run 'systemctl enable glusterd'4.gluster peer管理
當(dāng)glusterd運(yùn)行起來之后在任意一臺(tái)機(jī)器添加另外兩個(gè)機(jī)器進(jìn)信任的池子即可。這里在linux-node1進(jìn)行操作,需要執(zhí)行如下兩條命令。
# gluster peer probe linux-node2 # gluster peer probe linux-node3驗(yàn)證是否添加成功,如下圖所示則為成功。
[root@linux-node1 ~]# gluster peer status5.創(chuàng)建卷devops
注意生產(chǎn)中,一般使用三個(gè)副本,這里就三塊盤,里面存儲(chǔ)的數(shù)據(jù)是一致的,如下圖所示:
[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.測(cè)試glusterfs存儲(chǔ)
[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個(gè)文件;然后查看下:
因?yàn)槭侨齻€(gè)副本,所以每個(gè)機(jī)器上已經(jīng)有了100個(gè)文件,好了glusterfs的實(shí)驗(yàn)就到這里。
【第二部分:在Kubernetes集群中使用】
1.將glusterfs當(dāng)作pv和pvc在集群中使用
需要使用三個(gè)文件:
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直接創(chuàng)建好資源即可。
2.用deployment進(jìn)行驗(yàn)證
[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.自動(dòng)化擴(kuò)容pvc
1、當(dāng)glustefs的磁盤空間夠大的時(shí)候,我們使用的pv跟我們申請(qǐng)的大小是不一樣的,上限是GFS卷的大小,若gfs存儲(chǔ)不夠,只需擴(kuò)容gfs的volume即可。
2、當(dāng)存儲(chǔ)管理員開啟了這個(gè)參數(shù)的時(shí)候怎么辦?
# gluster volume devops quota enable # gluster volume quota devops limit-usage / 1gb擴(kuò)容完存儲(chǔ)之后,將我們的quota值調(diào)大,這個(gè)時(shí)候我們k8s里面的pod就可以使用大額的存儲(chǔ)了,不需要重啟。pv和pvc不做調(diào)整。
到此,關(guān)于“GlusterFS在Kubernetes中怎么應(yīng)用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
網(wǎng)站題目:GlusterFS在Kubernetes中怎么應(yīng)用
鏈接地址:http://weahome.cn/article/gshhoh.html