k8s

PV

Posted by qijun on January 12, 2022

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