附010.Kubernetes永久存储之GlusterFS超融合部署

本文详细介绍了如何在Kubernetes环境中部署GlusterFS超融合存储,包括前期准备、磁盘规划、Glusterfs-fuse安装、Kubernetes中glusterfs的部署、heketi服务安装及配置,以及最终通过StorageClass实现动态挂载测试和资源清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 前期准备

1.1 基础知识

在Kubernetes中,使用GlusterFS文件系统,操作步骤通常是:
创建brick-->创建volume-->创建PV-->创建PVC-->Pod挂载PVC
如果要创建多个PV,则需要手动重复执行,可通过Heketi管理glusterfs。
Heketi是用来管理GlusterFS卷的生命周期的,并提供了一个RESTful API接口供Kubernetes调用,因为GlusterFS没有提供API调用的方式,所以我们借助heketi。通过Heketi,Kubernetes可以动态配置GlusterFS卷,Heketi会动态在集群内选择bricks创建所需的volumes,确保数据的副本会分散到集群不同的故障域内,同时Heketi还支持GlusterFS多集群管理,便于管理员对GlusterFS进行操作。
Heketi要求在每个glusterfs节点上配备裸磁盘,用于Heketi创建PV和VG。通过Hekete,Kubernetes中使用PV步骤为:
创建StorageClass-->创建PVC-->Pod挂载PVC
这种方式称为基于StorageClass的动态资源供应。
提示:本实验基于Kubernetes部署glusterfs,同时glusterfs管理组件Heketi也使用Kubernetes部署。

1.2 架构示意

clipboard_www.wityx.com
提示:本实验不涉及Kubernetes部署,Kubernetes部署参考001-019。

1.3 相关规划

主机

IP

磁盘

备注

k8smaster01

172.24.8.71

Kubernetes master节点

k8smaster02

172.24.8.72

Kubernetes master节点

k8smaster03

172.24.8.73

Kubernetes master节点

k8snode01

172.24.8.74

sdb

Kubernetes node节点

glusterfs节点

k8snode02

172.24.8.75

sdb

Kubernetes node节点

glusterfs节点

k8snode03

172.24.8.76

sdb

Kubernetes node节点

glusterfs节点

磁盘规划

k8snode01
k8snode02
k8snode03
PV
sdb1
sdb1
sdb1

1.4 部署条件
超融合部署需要具有已经部署的Kubernetes集群管理访问权限。如果Kubernetes节点满足以下要求,则可以选择将GlusterFS作为超融合服务部署:
必须至少有三个节点用于glusterfs; 每个节点必须至少连接一个裸磁盘设备,以供heketi使用。这些设备上不得包含任何数据,heketi将会格式化和分区此设备; 每个节点必须打开以下端口才能进行GlusterFS通信: 2222:GlusterFS pod的sshd端口; 24007:GlusterFS守护程序; 24008:GlusterFS管理; 49152——49251:主机上每个卷的每个brick都需要有独立的端口。对于每块新brick,将从49152开始使用一个新端口。建议每台主机的默认范围为49152-49251,也可根据需要进行调整。 必须加载以下内核模块: dm_snapshot dm_mirror dm_thin_pool 对于内核模块,可通过lsmod | grep <name>查看模块是否存在,并modprobe <name>加载给定的模块。 每个节点都要求该mount.glusterfs命令可用。在所有基于Red Hat的操作系统下,此命令由glusterfs-fuse软件包提供。
注意:节点上安装的GlusterFS客户端版本应尽可能接近服务器的版本。要获取已安装的版本,可通过glusterfs --version或kubectl exec <pod> -- glusterfs --version命令查看。

1.5 其他准备

所有节点NTP配置;
所有节点添加相应主机名解析:
  1 172.24.8.71 k8smaster01
  2 172.24.8.72 k8smaster02
  3 172.24.8.73 k8smaster03
  4 172.24.8.74 k8snode01
  5 172.24.8.75 k8snode02
  6 172.24.8.76 k8snode03
注意:若非必要,建议关闭防火墙和SELinux。

二 规划裸设备

2.1 确认磁盘

  1 [root@k8snode01 ~]# fdisk /dev/sdb -l		#检查sdb是否为裸磁盘

三 安装glusterfs-fuse

3.1 安装相应RPM源

  1 [root@k8snode01 ~]# yum -y install centos-release-gluster
  2 [root@k8snode01 ~]# yum -y install glusterfs-fuse		#安装glusterfs-fuse
提示:k8snode01、k8snode02、k8snode03类似操作,根据1.4要求安装glusterfs-fuse组件;
安装相应源之后,会在/etc/yum.repos.d/目录多出文件CentOS-Storage-common.repo,内容如下:
# CentOS-Storage.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more
# information

[centos-storage-debuginfo]
name=CentOS-$releasever - Storage SIG - debuginfo
baseurl=http://debuginfo.centos.org/$contentdir/$releasever/storage/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

3.2 加载相应模块

  1 [root@k8snode01 ~]# cat > /etc/sysconfig/modules/glusterfs.modules <<EOF
  2 #!/bin/bash
  3 
  4 for kernel_module in dm_snapshot dm_mirror dm_thin_pool;do
  5     /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1
  6     if [ \$? -eq 0 ]; then
  7         /sbin/modprobe \${kernel_module}
  8     fi
  9 done;
 10 EOF
 11 [root@k8snode01 ~]# chm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值