欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

kubernetes實踐之二十六:GlusterFS

一:前言
GlusterFS是Scale-Out存儲解決方案Gluster的核心,它是一個開源的分布式文件系統(tǒng),具有強大的橫向擴展能力,通過擴展能夠支持數(shù)PB存儲容量和處理數(shù)千客戶端。GlusterFS借助TCP/IP或InfiniBand RDMA網(wǎng)絡(luò)將物理分布的存儲資源聚集在一起,使用單一全局命名空間來管理數(shù)據(jù)。GlusterFS基于可堆疊的用戶空間設(shè)計,可為各種不同的數(shù)據(jù)負載提供優(yōu)異的性能。

服務(wù)器
10.116.137.196         k8s_master
10.116.82.28             k8s_node1
10.116.36.57             k8s_node2

二:安裝glusterfs
我們直接在物理機上使用yum安裝,在三臺服務(wù)器上分別執(zhí)行以下安裝命令。

1.先安裝 gluster 源
yum install centos-release-gluster -y

2.安裝 glusterfs 組件
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma glusterfs-geo-replication glusterfs-devel

3.創(chuàng)建 glusterfs 目錄
mkdir /mnt/glusterd

4.修改 glusterd 目錄

點擊(此處)折疊或打開

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、稷山網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、稷山網(wǎng)絡(luò)營銷、稷山企業(yè)策劃、稷山品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供稷山建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:chinadenli.net

  1. volume management
  2.     type mgmt/glusterd
  3.     option working-directory /mnt/glusterd
  4.     option transport-type socket,rdma
  5.     option transport.socket.keepalive-time 10
  6.     option transport.socket.keepalive-interval 2
  7.     option transport.socket.read-fail-log off
  8.     option ping-timeout 0
  9.     option event-threads 1
  10. #option lock-timer 180
  11. #option transport.address-family inet6
  12. #option base-port 49152
  13. end-volume
5.啟動glusterfs

systemctl enable glusterd.service
systemctl start glusterd.service
systemctl status glusterd.service


三:配置 glusterfs

1.開放端口
iptables -I INPUT -p tcp --dport 24007 -j ACCEPT

2.創(chuàng)建存儲目錄
mkdir /opt/gfs_data

3.添加節(jié)點到集群
在10.116.137.196上執(zhí)行以下操作:
gluster peer probe 10.116.82.28
gluster peer probe 10.116.36.57

4.查看集群狀態(tài)
gluster peer status

點擊(此處)折疊或打開

  1. Number of Peers: 2

  2. Hostname: 10.116.82.28
  3. Uuid: f73138ca-e32e-4d87-a99d-cf842fc29447
  4. State: Peer in Cluster(Connected)

  5. Hostname: 10.116.36.57
  6. Uuid: 18e22d2c-049b-4b0c-8cc7-2560319e6c05
  7. State: Peer in Cluster(Connected)
  8. [root@iZwz95trb3stk6afg8oozuZ kubernetes]#clear
  9. [root@iZwz95trb3stk6afg8oozuZ kubernetes]# glustervolume create k8s-volume transport tcp 10.116.137.196:/mnt/gfs_data 10.116.82.28:/mnt/gfs_data 10.116.36.57:/mnt/gfs_data force
  10. volume create: k8s-volume: success: please start thevolume to access data
  11. [root@iZwz95trb3stk6afg8oozuZ kubernetes]# glustervolume info
  12.  
  13. Volume Name: k8s-volume
  14. Type: Distribute
  15. Volume ID: 62900029-02c9-4870-951c-38fafd5f5d9b
  16. Status: Created
  17. Snapshot Count: 0
  18. Number of Bricks: 3
  19. Transport-type: tcp
  20. Bricks:
  21. Brick1: 10.116.137.196:/mnt/gfs_data
  22. Brick2: 10.116.82.28:/mnt/gfs_data
  23. Brick3: 10.116.36.57:/mnt/gfs_data
  24. Options Reconfigured:
  25. transport.address-family: inet
  26. nfs.disable: on

四:配置 volume

1.volume的模式
a.分布卷(默認模式):即DHT, 也叫 分布卷: 將文件已hash算法隨機分布到 一臺服務(wù)器節(jié)點中存儲。
b.復(fù)制模式:即AFR, 創(chuàng)建volume 時帶 replica x 數(shù)量: 將文件復(fù)制到 replica x 個節(jié)點中。
c.條帶模式:即Striped, 創(chuàng)建volume 時帶 stripe x 數(shù)量: 將文件切割成數(shù)據(jù)塊,分別存儲到 stripe x 個節(jié)點中 ( 類似raid 0 )。
d.分布式條帶模式:最少需要4臺服務(wù)器才能創(chuàng)建。 創(chuàng)建volume 時 stripe 2 server = 4 個節(jié)點: 是DHT 與 Striped 的組合型。
e.分布式復(fù)制模式:最少需要4臺服務(wù)器才能創(chuàng)建。 創(chuàng)建volume 時 replica 2 server = 4 個節(jié)點:是DHT 與 AFR 的組合型。
f.條帶復(fù)制卷模式:最少需要4臺服務(wù)器才能創(chuàng)建。 創(chuàng)建volume 時 stripe 2 replica 2 server = 4 個節(jié)點: 是 Striped 與 AFR 的組合型。
g.三種模式混合: 至少需要8臺 服務(wù)器才能創(chuàng)建。 stripe 2 replica 2 , 每4個節(jié)點 組成一個 組。

2.創(chuàng)建分布卷
gluster volume create k8s-volume transport tcp 10.116.137.196:/mnt/gfs_data 10.116.82.28:/mnt/gfs_data 10.116.36.57:/mnt/gfs_data force

3.查看volume狀態(tài)
gluster volume info

點擊(此處)折疊或打開

  1. Volume Name: k8s-volume
  2. Type: Distribute
  3. Volume ID: 62900029-02c9-4870-951c-38fafd5f5d9b
  4. Status: Created
  5. Snapshot Count: 0
  6. Number of Bricks: 3
  7. Transport-type: tcp
  8. Bricks:
  9. Brick1: 10.116.137.196:/mnt/gfs_data
  10. Brick2: 10.116.82.28:/mnt/gfs_data
  11. Brick3: 10.116.36.57:/mnt/gfs_data
  12. Options Reconfigured:
  13. transport.address-family: inet
  14. nfs.disable: on
4.啟動分布卷
gluster volume start k8s-volume

五:Glusterfs調(diào)優(yōu)

1.開啟指定volume的配額
gluster volume quota k8s-volume enable
2.限制指定volume的配額
gluster volume quota k8s-volume limit-usage / 5GB
3.設(shè)置cache大小, 默認32MB
gluster volume set k8s-volume performance.cache-size 64MB
4.設(shè)置io線程, 太大會導(dǎo)致進程崩潰
gluster volume set k8s-volume performance.io-thread-count 16
5.設(shè)置網(wǎng)絡(luò)檢測時間, 默認42s
gluster volume set k8s-volume network.ping-timeout 10
6.設(shè)置寫緩沖區(qū)的大小, 默認1M
gluster volume set k8s-volume performance.write-behind-window-size 512MB

六:Kubernetes中配置glusterfs

1.配置 endpoints(glusterfs-endpoints.json)

點擊(此處)折疊或打開

  1. {
  2.   "kind": "Endpoints",
  3.   "apiVersion": "v1",
  4.   "metadata": {
  5.     "name": "glusterfs-cluster"
  6.   },
  7.   "subsets": [
  8.     {
  9.       "addresses": [
  10.         {
  11.           "ip": "10.116.137.196"
  12.         }
  13.       ],
  14.       "ports": [
  15.         {
  16.           "port": 1990
  17.         }
  18.       ]
  19.     }
  20.   ]
  21. }
kubectl apply -f glusterfs-endpoints.json

2.配置 service(glusterfs-service.json)

點擊(此處)折疊或打開

  1. {
  2.   "kind": "Service",
  3.   "apiVersion": "v1",
  4.   "metadata": {
  5.     "name": "glusterfs-cluster"
  6.   },
  7.   "spec": {
  8.     "ports": [
  9.       {"port": 1990}
  10.     ]
  11.   }
  12. }
kubectl apply -f glusterfs-service.json

3.創(chuàng)建測試 pod

點擊(此處)折疊或打開

  1. {
  2.     "apiVersion": "v1",
  3.     "kind": "Pod",
  4.     "metadata": {
  5.         "name": "glusterfs"
  6.     },
  7.     "spec": {
  8.         "containers": [
  9.             {
  10.                 "name": "glusterfs",
  11.                 "image": "registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0",
  12.                 "volumeMounts": [
  13.                     {
  14.                         "mountPath": "/mnt/glusterfs",
  15.                         "name": "glusterfsvol"
  16.                     }
  17.                 ]
  18.             }
  19.         ],
  20.         "volumes": [
  21.             {
  22.                 "name": "glusterfsvol",
  23.                 "glusterfs": {
  24.                     "endpoints": "glusterfs-cluster",
  25.                     "path": "k8s-volume",
  26.                     "readOnly": true
  27.                 }
  28.             }
  29.         ]
  30.     }
  31. }
kubectl apply -f glusterfs-pod.json   在Pod所在的Node節(jié)點上執(zhí)行 df -h 可以查看k8s-volume掛載目錄

4.配置PersistentVolume(glusterfs-pv.yaml)

點擊(此處)折疊或打開

  1. apiVersion: v1
  2. kind: PersistentVolume
  3. metadata:
  4.   name: gluster-dev-volume
  5. spec:
  6.   capacity:
  7.     storage: 1Gi
  8.   accessModes:
  9.     - ReadWriteMany
  10.   glusterfs:
  11.     endpoints: "glusterfs-cluster"
  12.     path: "k8s-volume"
  13.     readOnly: false
kubectl apply -f glusterfs-pv.yaml

5.配置PVC(glusterfs-pvc.yaml)

點擊(此處)折疊或打開

  1. kind: PersistentVolumeClaim
  2. apiVersion: v1
  3. metadata:
  4.   name: glusterfs-nginx
  5. spec:
  6.   accessModes:
  7.     - ReadWriteMany
  8.   resources:
  9.     requests:
  10.       storage: 1Gi
kubectl apply -f glusterfs-pvc.yaml

6.創(chuàng)建nginx deployment 掛載 volume(nginx-deployment.yaml)

點擊(此處)折疊或打開

  1. apiVersion: extensions/v1beta1
  2. kind: Deployment
  3. metadata:
  4.   name: nginx-dm
  5. spec:
  6.   replicas: 2
  7.   template:
  8.     metadata:
  9.       labels:
  10.         name: nginx
  11.     spec:
  12.       containers:
  13.         - name: nginx
  14.           image: nginx:latest
  15.           imagePullPolicy: IfNotPresent
  16.           ports:
  17.             - containerPort: 80
  18.           volumeMounts:
  19.             - name: gluster-dev-volume
  20.               mountPath: "/usr/share/nginx/html"
  21.       volumes:
  22.       - name: gluster-dev-volume
  23.         persistentVolumeClaim:
  24.           claimName: glusterfs-nginx
kubectl apply -f nginx-deployment.yaml

a.查看 deployment
kubectl get pods |grep nginx-dm

點擊(此處)折疊或打開

  1. nginx-dm-64dcbb8d55-pp9vn 1/1 Running 0 1h
  2. nginx-dm-64dcbb8d55-sclj6 1/1 Running 0 1h
b.查看掛載
kubectl exec -it nginx-dm-64dcbb8d55-pp9vn -- df -h

點擊(此處)折疊或打開

  1. FilesystemSize Used Avail Use% Mounted on
  2. overlay 40G 23G 16G 60% /
  3. tmpfs 3.7G 0 3.7G 0% /dev
  4. tmpfs 3.7G 0 3.7G 0% /sys/fs/cgroup
  5. /dev/xvda1 40G 23G 16G 60% /etc/hosts
  6. shm 64M 0 64M 0% /dev/shm
  7. 10.116.137.196:k8s-volume 5.0G 0 5.0G 0% /usr/share/nginx/html
  8. tmpfs 3.7G 12K 3.7G 1% /run/secrets/kubernetes.io/serviceaccount
c.創(chuàng)建文件測試
kubectl exec -it nginx-dm-64dcbb8d55-pp9vn -- touch /usr/share/nginx/html/index.html
kubectl exec -it nginx-dm-64dcbb8d55-sclj6  -- ls -lt /usr/share/nginx/html/index.html

d.驗證 glusterfs
因為我們使用分布卷,所以可以看到某個節(jié)點中有文件
ls /mnt/gfs_data/
index.html


分享名稱:kubernetes實踐之二十六:GlusterFS
分享網(wǎng)址:http://chinadenli.net/article4/pgpdie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站網(wǎng)站設(shè)計企業(yè)建站網(wǎng)站建設(shè)手機網(wǎng)站建設(shè)小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)