Kubernetes存储:NFS存储

来自AI助手的总结
介绍了Kubernetes使用NFS创建PV、PVC并挂载到Pod的完整流程
Kubernetes存储:NFS存储

一、额外开一台虚拟机,搭建NFS服务。假设NFS服务器IP地址为192.168.1.34,共享目录为/data/nfs。

1.1 每台机器安装NFS客户端

$ yum install nfs-utils -y

1.2 在k8s-node01(192.168.1.34)启动nfs

[root@k8s-node01 ~]# systemctl start nfs-server

1.3 在k8s-node01(192.168.1.34)查看nfs支持的版本

[root@k8s-node01 ~]# cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

1.4 在k8s-node01(192.168.1.34)上创建一个共享目录

[root@k8s-node01 ~]# mkdir  -p  /data/nfs

1.5 在k8s-node01(192.168.1.34)编辑授权文件,这里网段根据自己主机来定,我这里网段是192.168.1.0/24

[root@k8s-node01 ~]# vim /etc/exports
/data/nfs/ 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)

1.6 在k8s-node01(192.168.1.34)配置生效

[root@k8s-node01 ~]# exportfs -r

1.7 在k8s-node01(192.168.1.34)重新加载NFS

[root@k8s-node01 ~]# systemctl reload nfs-server

1.8 在每台主机上查看是否可以成功挂载

$ showmount -e 192.168.1.34

Export list for 192.168.1.34:
/data/nfs 192.168.1.0/24

二、在k8s-master01节点上定义基于NFS的PV

$ vi nfs-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs-storage
  nfs:
    path: /data/nfs
    server: 192.168.1.34

三、在k8s-master01节点上应用

$ k apply -f nfs-pv.yaml

四、在k8s-master01节点上定义PVC

$ vi nfs-pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  storageClassName: nfs-storage
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

五、在k8s-master01节点上应用

$ k apply -f nfs-pvc.yaml

六、在k8s-master01节点上定义Pod

$ vi  nfs-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nfs-pod
spec:
  containers:
  - name: nfs-container
    image: nginx:1.21.6
    volumeMounts:
    - name: nfs-storage
      mountPath: /data
  volumes:
  - name: nfs-storage
    persistentVolumeClaim:
      claimName: nfs-pvc

七、在k8s-master01节点上应用

$ k apply -f nfs-pod.yaml

八、测试验证

在192.168.1.34主机上/data/nfs目录下创建nfs-test文件

$ cd /data/nfs/
$ touch nfs-test
$ echo "xxxxxx"   > nfs-test

进入nfs-pod验证查看

$ k exec -it nfs-pod  bash
$ cat data/nfs-test
xxxxxx

九、恢复

$ k delete -f nfs-pod.yaml,nfs-pvc.yaml,nfs-pv.yaml
© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容