NFS方式
1、关闭防火墙
2、安装配置nfs
yum -y install nfs-utils rpcbind
3、新建共享目录并设置权限
for i in {0..2};do
mkdir -p /k8s/nfs${i}
chmod 775 /k8s/nfs${i}
done
4、配置nfs
$ vi /etc/exports
/k8s/nfs0 *(rw,sync,no_root_squash)
/k8s/nfs1 *(rw,sync,no_root_squash)
/k8s/nfs2 *(rw,sync,no_root_squash)
/k8s/nfs*:是共享的数据目录
*:表示任何人都有权限连接,当然也可以是一个网段,一个 IP,也可以是域名
rw:读写的权限
sync:表示文件同时写入硬盘和内存
no_root_squash:当登录 NFS 主机使用共享目录的使用者是 root 时,其权限将被转换成为匿名使用者,通常它的 UID 与 GID,都会变成 nobody 身份
5、启动rpcbind
$ systemctl start rpcbind.service
$ systemctl enable rpcbind
$ systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-01-11 18:12:04 PST; 5h 45min ago
Main PID: 625 (rpcbind)
CGroup: /system.slice/rpcbind.service
└─625 /sbin/rpcbind -w
Jan 11 18:12:03 master systemd[1]: Starting RPC bind service...
Jan 11 18:12:04 master systemd[1]: Started RPC bind service.
6、启动 nfs 服务
$ systemctl start nfs.service
$ systemctl enable nfs
$ systemctl status nfs
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Tue 2022-01-11 23:58:00 PST; 11s ago
Main PID: 106045 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
7、查看具体挂载目录
$ cat /var/lib/nfs/etab
/k8s/nfs2 *(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash)
/k8s/nfs1 *(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash)
/k8s/nfs0 *(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash)
8、创建pv
for i in {0..2}; do
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv00${i}
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
path: /k8s/nfs${i}
server: 192.168.199.128
EOF
done
9、查看pv
[root@master k8s]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv000 1Gi RWO Retain Available 19s
pv001 1Gi RWO Retain Available 19s
pv002 1Gi RWO Retain Available 19s