GlusterFS环境部署
前言
因这两天再部署三方基于ks二开的环境,存储使用了GlusterFS
,就记录一篇关于GlusterFS入门文章,主要讲述GlusterFS环境搭建以及初步使用。
安装
操作系统为centos7.9
,参考:https://wiki.centos.org/SpecialInterestGroup(2f)Storage.html
此次部署为三台机器
# 设置hosts
vim /etc/hosts
192.168.111.150 server1 k8s-master01
192.168.111.151 server2 k8s-master02
192.168.111.152 server3 k8s-master03
# 配置存储yum源
yum install centos-release-gluster
# 安装glusterFs
yum clean all
yum makecache
yum install -y glusterfs-server
内网环境-只下载
对于内网环境的服务器来说,需要从外面把包下载下来上传到服务器。mkdir /tmp/gluster yum install --downloadonly --downloaddir=/tmp/gluster glusterfs-server
防火墙配置
# 如果开启了firewall
firewall-cmd --permanent --add-service=glusterfs
firewall-cmd --reload
# 查看开启的规则信息
cat /usr/lib/firewalld/services/glusterfs.xml
集群搭建
# 启动glusterfs
systemctl enable glusterd
systemctl restart glusterd
systemctl status glusterd
# 准备挂载目录
mkdir -p /bricks/brick1/gv0
# 节点加入集群(配置GlusterFS卷,在任意一个节点执行都可以)
# server1上操作
gluster peer probe server2
gluster peer probe server3
#server2上操作
gluster peer probe server1
# 创建分布式卷,没有指定类型,默认创建的是分布式卷,(创建3副本卷,2副本会有脑裂的情况。不加replica的情况下默认是分布式卷)
gluster volume create gv0 replica 3 server1:/bricks/brick1/gv0 server2:/bricks/brick1/gv0 server3:/bricks/brick1/gv0 force
# 查看pool列表
gluster pool list
# 查看类型
gluster volume list
# 开启
gluster volume start gv0
# 查看卷信息
gluster volume info gv0
gluster volume status gv0 detail
#-----拓展-----
# 查看gluster节点状态
gluster peer status
# 增加节点
gluster peer probe server4
# 删除一个节点
gluster peer detach server4
# 查看glustrefs集群节点
gluster pool list
# 查看所有卷的信息
gluster volume status all
# 停止共享某一个volume
gluster volume stop gv0
# 删除卷
gluster volume delete gv0
#设置存储卷(单机版)
gluster volume create gv0 server1:/bricks/brick1/gv0 force
gluster start volume gv0
客户端挂载和使用
# 安装client
yum install -y glusterfs-client
# 同时增加hosts解析记录
cat >> /etc/hosts << EOF
192.168.111.150 server1 k8s-master01
192.168.111.151 server2 k8s-master02
192.168.111.152 server3 k8s-master03
EOF
# 创建挂载点
mkdir /mnt/g1/
# 手动进行挂载
mount.glusterfs 192.168.111.150:/test-volume /mnt/g1/
k8s使用glusterfs作为后端存储
静态供给glusterfs存储
glusterfs(已移除)
Kubernetes 1.29 不包含
glusterfs
卷类型。GlusterFS 树内存储驱动程序在 Kubernetes v1.25 版本中被弃用,然后在 v1.26 版本中被完全移除。
https://kubernetes.io/zh-cn/docs/concepts/storage/volumes/
集群所有节点安装glusterfs客户端
# 安装client
yum install -y glusterfs-client
k8s创建资源对象使用glusterfs存储
创建glusterfs-endpoints
apiVersion: v1
kind: Endpoints
metadata:
namespace: kubesphere-system
name: glusterfs-cluster
subsets:
- addresses:
- ip: 192.168.111.150 #根据实际情况填写IP,其他不变
ports:
- port: 49153 # 填写卷的端口 (从1到65535)都有,具体需要查看本地端口
- addresses:
- ip: 192.168.111.151 #根据实际情况填写IP,其他不变
ports:
- port: 49153
- addresses:
- ip: 192.168.111.152 #根据实际情况填写IP,其他不变
ports:
- port: 49153
为这些端点创建一个service
以便它们能够持久,不需要标签选择器,glusterfs-service.yaml
apiVersion: v1
kind: Service
metadata:
namespace: kubesphere-system
name: glusterfs-cluster #名字要与Endpoints名字一样才能进行管理
spec:
ports:
- port: 49152
创建pv,pvc,pv中定义glusterfs的信息
kind: PersistentVolume
apiVersion: v1
metadata:
namespace: kubesphere-system
name: ksapiserver-gluster-pv
labels:
type: local
name: ksapiserver-gluster-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: glusterfs-cluster
path: gv0
readOnly: false
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
namespace: kubesphere-system
name: ksapiserver-gluster-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: ""
selector:
matchLabels:
name: ksapiserver-gluster-pv
参考
1.https://docs.gluster.org/en/latest/Install-Guide/Install/#for-arch-linux