注意:可在我 百度網盤 直接下載 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