部署:
一、部署NFS服务端:
1、安装nfs服务:
yum install -y nfs-utils rpcbind
vim /etc/exports
/nfsdata *(rw,no_root_squash,no_all_squash,sync)
2、保存文件,创建相应共享目录,赋予权限;
mkdir /nfsdata
chmod 777 /nfsdata
3、启动服务:
systemctl start rpcbind && systemctl enable rpcbind
systemctl start nfs && systemctl enable nfs
4、每个node节点安装nfs
yum install -y nfs-utils
5、每个node查询NFS服务器:
showmount -e nfs-ip
二、创建PV&&PVC
1、创建PV 编辑配置文件nfs-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv1
spec:
capacity:
storage: 1G
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle #PV回收策略;
storageClassName: nfs
nfs:
path: /nfsdata/pv1
server: ip地址
kubectl apply -f nfs-pv1.yml
kubectl get pv
2、创建PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1G
storageClassName: nfs
3、Pod使用PVC:
编辑Pod的配置文件:
apiVersion: v1
kind: Pod
metadata:
name: mypod1
spec:
containers:
- name: mypod1
image: busybox
args:
- /bin/sh
- -c
- sleep 30000
volumeMounts:
- mountPath: /mydata
name: mydata
volumes:
- name: mydata
persistentVolumeClaim:
claimName: mypvc1
执行文件创建pod
验证是否可用:
kubectl exec mypod1 /bin/sh
4、回收PV
kubectl delete pvc mypvc1
5、PV回收策略:
Retain – 需要管理员手工回收。
Recycle – 清除 PV 中的数据,效果相当于执行 rm -rf /thevolume/*。
Delete – 删除 Storage Provider 上的对应存储资源,例如 AWS EBS、GCE PD、Azure Disk、OpenStack Cinder Volume 等。