千家信息网

GlusterFS在Kubernetes中怎么应用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"GlusterFS在Kubernetes中怎么应用",在日常操作中,相信很多人在GlusterFS在Kubernetes中怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2026年11月02日GlusterFS在Kubernetes中怎么应用

这篇文章主要介绍"GlusterFS在Kubernetes中怎么应用",在日常操作中,相信很多人在GlusterFS在Kubernetes中怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"GlusterFS在Kubernetes中怎么应用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

背景介绍

首先需要大家已经成功搭建好了Kubernetes集群的实验环境

想在生产环境里面使用glusterfs做storageclass,本文就可以保证你完成。

【Glusterfs实验环境准备】

本案例中,实验环境与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/sbinexport PATH  function main(){i=3while [ $i -lt 10 ]                doj=`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`;doif [ $i -lt 10 ] thenmkfs.xfs  -L brick$i -f -i  size=512 /dev/mapper/flash0$isleep 1elsemkfs.xfs  -L brick$i -f -i  size=512 /dev/mapper/flash$ifidone}function guazai(){for i in `seq 1 12`;domkdir /gluster_brick$iecho "LABEL=brick$i   /gluster_brick$i   xfs  defaults 0 0"  >>  /etc/fstabdone}

好了不废话,继续我们的实验,格式化磁盘/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 -a

3.安装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 status

5.创建卷devops

注意生产中,一般使用三个副本,这里就三块盘,里面存储的数据是一致的,如下图所示:

[root@linux-node1 ~]# gluster volume create devops replica 3 linux-node1:/gluster_brick1/b1 linux-node2:/gluster_brick1/b1  linux-node3:/gluster_brick1/b1volume create: devops: success: please start the volume to access data[root@linux-node1 ~]# gluster volume start devopsvolume start: devops: success

6.测试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 -l101

此步骤可以看到100个文件;然后查看下:

因为是三个副本,所以每个机器上已经有了100个文件,好了glusterfs的实验就到这里。

【第二部分:在Kubernetes集群中使用】

1.将glusterfs当作pv和pvc在集群中使用

需要使用三个文件:

  1. glusterfs-endpoints.yaml

  2. pv-demo.yaml

  3. pvc-demo.yaml

[root@linux-node1 glusterfs]# cat glusterfs-endpoints.yaml apiVersion: v1kind: Endpointsmetadata:  name: glusterfs-volumesubsets:- 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: v1kind: PersistentVolumemetadata:  name: pv-glusterspec:  capacity:    storage: 5G  accessModes:  - ReadWriteMany  persistentVolumeReclaimPolicy: Recycle  glusterfs:    endpoints: "glusterfs-volume"    path: "devops"    readOnly: false[root@linux-node1 glusterfs]# cat pvc-demo.yaml kind: PersistentVolumeClaimapiVersion: v1metadata:  name: pvc-glusterfsspec:  accessModes:    - ReadWriteMany  resources:    requests:      storage: 1G

使用kubectl直接创建好资源即可。

2.用deployment进行验证

[root@linux-node1 glusterfs]# cat nginx-ingress-deployment.yaml apiVersion: apps/v1kind: Deploymentmetadata:  name: nginx-deployment  labels:    app: nginxspec:  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.yaml

3.自动化扩容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中怎么应用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

磁盘 机器 存储 环境 生产 实验 时候 三台 应用 三个 类型 集群 学习 成功 主机 命令 大小 文件 格式 硬盘 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技的发展 宜安科技 互联网金融 亿人帮互联网科技 互联网科技公司做什么 中国互联网金融科技基金 互联网科技大会案例 哈尔滨新华互联网科技 云创客互联网科技公司 新华互联网科技2019 贵州叶脉互联网科技有限公司所属行业 受益于互联网科技的高速发展 厦门千工互联网科技有限公司 千方科技属于互联网企业吗 朱啸虎曾投资哪些互联网科技企业 工业互联网展湾科技股份有限公司 互联网科技实习生岗位 米泉互联网科技专业怎么样 第三届互联网大会安防黑科技 北京瑞云互联网科技有限公司 小牛互联网科技有限公司地址 互联网科技公司华为 互联网科技金融 广州互联网科技公司 新华互联网科技2019 栖莱科技互联网股份有限公司 湖南一路畅行互联网科技 中科明德北京互联网科技 华中科技大学互联网的牛人 互联网硬科技公司 青岛易易互联网科技
0