NFS动态存储卷

    • 系统要求:CentOS

    NFS 允许系统将其目录和文件共享给网络上的其他系统。通过 NFS,用户和应用程序可以访问远程系统上的文件,就象它们是本地文件一样。

    • 在集群每一个节点安装

    • 创建共享目录

      1. mkdir -p /u01/prod
    • 编辑/etc/exports文件添加需要共享目录,每个目录的设置独占一行,编写格式如下:

      1. NFS共享目录路径 客户机IP段(参数1,参数2,...,参数n)
      1. /u01 192.168.1.1/16(rw,sync,insecure,no_subtree_check,no_root_squash)
      • 注1:尽量指定IP段最小化授权可以访问NFS 挂载的资源的客户端
      • 注2:经测试参数insecure必须要加,否则客户端挂载出错mount.nfs: access denied by server while mounting
    • 配置完成后,您可以在终端提示符后运行以下命令来启动 NFS 服务器:

      1. sudo systemctl enable nfs-server
      2. sudo systemctl start nfs-server
    • 到客户机上执行showmount命令进行检查

    1. helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
    • 在集群每一个节点安装nfs-utils

      1. sudo yum install -y nfs-utils
    • 在任意一个master节点执行下面helm命令,安装nfs-client-provisioner

      1. helm upgrade --install nfs-client-provisioner c7n/nfs-client-provisioner \
        --set rbac.create=true \
        --set persistence.enabled=true \
        --set storageClass.name=nfs-provisioner \
      2. --set persistence.nfsServer=127.0.0.1 \
      1. --set persistence.nfsPath=/u01/prod \

      NFS服务共享的目录

    • 新建文件,粘贴以下内容:

      1. kind: Pod
      2. apiVersion: v1
      3. metadata:
      4. name: write-pod
      5. spec:
      6. containers:
      7. - name: write-pod
      8. image: busybox
      9. command:
      10. - "/bin/sh"
      11. args:
      12. - "-c"
      13. volumeMounts:
      14. - name: nfs-pvc
      15. mountPath: "/mnt"
      16. restartPolicy: "Never"
      17. volumes:
      18. - name: nfs-pvc
      19. claimName: myclaim
      20. ---
      21. kind: PersistentVolumeClaim
      22. apiVersion: v1
      23. metadata:
      24. name: myclaim
      25. spec:
      26. accessModes:
      27. - ReadWriteOnce
      28. storageClassName: nfs-provisioner
      29. resources:
      30. requests:
      31. storage: 1Mi
    • 部署测试用例

      1. kubectl apply -f write-pod.yaml
    • 验证是否正常

      1. $ kubectl get po
      2. NAME READY STATUS RESTARTS AGE
      3. write-pod 0/1 Completed 0 8s