Kubernetes(k8s)存储资源的NFS PersistentVolume类型

1.在Master节点安装NFS服务,并启动nfs服务和设置自动开机服务

# yum install  nfs-utils rpcbind -y


#以下是启动服务和设置自动开机服务
# systemctl start rpcbind 
# systemctl enable rpcbind 
# systemctl start nfs
# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

2.在Master节点配置共享文件目录,编辑nfs的配置文件

#以下是创建共享目录
# mkdir  /nfsdata
# chmod -R 777 /nfsdata/

#以下是创建pv1目录,作为卷的映射
# mkdir /nfsdata/pv1/

#以下是配置共享目录
# vi /etc/exports
/nfsdata *(rw,no_root_squash,sync)

#以下是重新加载配置文件,使配置文件生效
# systemctl reload nfs 

3.在Master节点查看nfs服务共享信息

# showmount -e
Export list for controller:
/nfsdata *

4 .在worker节点(工作节点)安装NFS服务

# yum install  nfs-utils -y
# systemctl start nfs && systemctl enable nfs

5.创建一个nfs类型的PersistentVolume和创建一个nfs类型的PersistentVolumeClaim(请求物理存储),还要创建一个Pod (使用你的 PersistentVolumeClaim 作为存储卷)

# vi nfs-pv-volume.yml 

kind: PersistentVolume
apiVersion: v1
metadata:
  name: nfs-pv-volume
spec:
  capacity:
    storage: 1Gi
  accessModes:
   - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
   path: /nfsdata/pv1
   server: 172.25.0.10

# kubectl apply -f  nfs-pv-volume.yml 
persistentvolume/nfs-pv-volume created


# kubectl get pv
NAME            CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
nfs-pv-volume   1Gi        RWO            Recycle          Available           nfs                     6s
# vi nfs-pvc-claim.yml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: nfs-pvc-claim
spec:
  storageClassName: nfs
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
 



# kubectl apply -f nfs-pvc-claim.yml
persistentvolumeclaim/nfs-pvc-claim created

# kubectl get pv
NAME            CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
nfs-pv-volume   1Gi        RWO            Recycle          Bound    default/nfs-pvc-claim   nfs                     4m26s

# kubectl get pvc
NAME            STATUS   VOLUME          CAPACITY   ACCESS MODES   STORAGECLASS   AGE
nfs-pvc-claim   Bound    nfs-pv-volume   1Gi        RWO            nfs            27s
# vi nfs-pv-pod.yml

kind: Pod
apiVersion: v1
metadata:
  name: nfs-pv-pod
spec:
 containers:
  - name: nfs-pv-pod
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 30000
    volumeMounts:
    - mountPath: "/mydata"
      name: mydata
 volumes:
  - name: mydata
    persistentVolumeClaim:
     claimName: nfs-pvc-claim


# kubectl apply -f nfs-pv-pod.yml 
pod/nfs-pv-pod created

6.测试PV是否可用

# kubectl exec nfs-pv-pod touch /mydata/hello

# ls /nfsdata/pv1/
hello

7.设置保留数据为Retain的策略

# vi nfs-pv-volume-retain.yml 

kind: PersistentVolume
apiVersion: v1
metadata:
  name: nfs-pv-volume
spec:
  capacity:
    storage: 1Gi
  accessModes:
   - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs
  nfs:
   path: /nfsdata/pv1
   server: 172.25.0.10

# kubectl apply -f nfs-pv-volume-retain.yml 
persistentvolume/nfs-pv-volume configured


# kubectl get pv
NAME            CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
nfs-pv-volume   1Gi        RWO            Retain           Bound    default/nfs-pvc-claim   nfs                     4h15m

8.测试保留数据是否可用

# kubectl exec nfs-pv-pod touch /mydata/hello

# ls /nfsdata/pv1/
hello

# kubectl get  pod
NAME         READY   STATUS    RESTARTS   AGE
nfs-pv-pod   1/1     Running   0          4h25m

#以下是删除pod
# kubectl delete  pod nfs-pv-pod
pod "nfs-pv-pod" deleted

#以下是查看pv信息
# kubectl get pv
NAME            CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                   STORAGECLASS   REASON   AGE
nfs-pv-volume   1Gi        RWO            Retain           Released   default/nfs-pvc-claim   nfs                     4h30m

#以下是查看数据是否存在
# ls /nfsdata/pv1
hello

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值