注意:可在我 百度网盘 直接下载 helm、minio 以及修改好的 gitlab、nginx-ingress 资源包nginx
本系列文章:git
第一章:helm 一分钟轻松完爆api
第二章:helm 轻松完爆公共仓库网络
第三章:helm 轻松完爆私有仓库async
第四章:helm 轻松完爆 chartide
第五章:helm 轻松完爆 releasegitlab
第六章:helm 轻松完爆 gitlab性能
第七章:helm 轻松完爆 nginx-ingressspa
第八章:helm 轻松完爆 gitlab nfs 存储orm
目录
1 前言
2 nfs 服务端安装和配置
2.1 安装 nfs-utils
2.2 设置开机自启
2.3 启动 nfs 服务
2.4 建立共享目录
2.5 配置 nfs 访问规则
2.6 从新加载 nfs 服务
2.7 查看 nfs 服务导出列表
3 nfs 客户端安装和配置
3.1 安装 nfs-utils
3.2 建立挂载目录
3.3 设置开机自挂载
3.4 启动挂载
3.5 验证挂载
4 建立 nfs pv
1 前言
nfs 是 network file system 简称,提供网络文件系统功能。咱们在第六章安装 gitlab 时为了简便使用了本地存储类型(hostpath),这节将本地存储换成 nfs 存储,缘由在于一旦 gitlab pod 重启被调度到其余节点,原有节点上的文件并不会同步到新的节点上。这样会形成文件、数据的不一致。因此这里采用 nfs 集中式文件存储方案。
安装 nfs 服务以前,首先关闭防火墙。
systemctl stop firewalld
2 nfs 服务端安装和配置
本人 nfs 服务端所在主机IP为: 10.110.101.106。看官可根据本身的实际状况修改。
2.1 安装 nfs-utils
nfs 服务端安装须要 nfs-utils 程序包。
yum install nfs-utils -y
2.2 设置开机自启
systemctl enable rpcbind && systemctl enable nfs-server
2.3 启动 nfs 服务
systemctl start rpcbind && systemctl start nfs-server
2.4 建立共享目录
mkdir -p /data/nfs/gitlab
2.5 配置 nfs 访问规则
编辑 /etc/exports 文件,设置 nfs 访问规则,容许 10.110.0.0/16 网段的主机读写 /data/nfs/gitlab 目录。
/data/nfs/gitlab 10.110.0.0/16(rw,sync,no_root_squash)
参数说明:
参数 | 做用 |
ro | read-only |
rw | read-write |
root_squash | nfs客户端以root管理员身份访问nfs服务端时,映射为nfs服务端所在主机的匿名用户(权限会受限) |
no_root_squash | nfs客户端以root管理员身份访问nfs服务端时,映射为nfs服务端所在主机的root用户(权限不会受限) |
sync | 数据同时写入内存和磁盘。至关于同步双写,由于同时要写内存和磁盘,因此性能会受损,可是数据一致性得以保证,不会丢失 |
async | 数据会优先写入内存,而后再写入磁盘。由于写入到内存的数据并不会马上把数据同步到硬盘中,这时若是断电就会致使部分数据丢失,可是性能却会比sync更有效 |
2.6 从新加载 nfs 服务
systemctl reload nfs
2.7 查看 nfs 服务导出列表
showmount -e
3 nfs 客户端安装和配置
3.1 安装 nfs-utils
由于 nfs-utils 包中同时提供了客户端和服务端,因此在客户端安装时,也须要安装 nfs-utils 程序包。
yum install nfs-utils -y
3.2 建立挂载目录
mkdir /data/gitlab -p
3.3 设置开机自挂载
编辑 /etc/fstab,设置开机挂载 nfs
## 将nfs服务端的 /data/nfs/gitlab 目录挂载到本机 /data/gitlab 目录
echo "10.110.101.106:/data/nfs/gitlab /data/gitlab nfs defaults 0 0" >> /etc/fstab
3.4 启动挂载
mount -a
3.5 验证挂载
df -h | grep -i nfs
4 建立 nfs pv
nfs 跟 hostpath 类型的 pv 相比并无什么不一样。只是修改存储类型便可:
apiVersion: v1
kind: PersistentVolume
metadata:
name: gitlab-etc
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.110.101.106
path: /data/nfs/gitlab