一、搭建nfs服务器

1.创建nfs共享目录并赋予目录777权限

mkdir /nfsdata      %这里选择将物理机作为nfs服务器
chmod 777 /nfsdata/

2.编写共享策略

vim /etc/exports:
/nfsdata       *(rw,no_root_squash)   %所有人可读写,没有root用户限制]
showmount -e   %显示指定NFS服务器输出目录列表(也称为共享目录列表)

在这里插入图片描述
在这里插入图片描述

3.启动nfs-server服务

systemctl start nfs-server.service

在这里插入图片描述

4.测试

yum install -y nfs-utils     %服务端和客户端必须软件nfs-utils,否则无法挂载nfs服务器共享目录,这里我们在所有节点均安装这个软件

在这里插入图片描述
在客户端挂载nfs服务器的/nfsdata目录看是否能够挂载成功:
在这里插入图片描述

二、helm整体部署

1.heml添加第三方库,并拉取包

helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner %拉取包

在这里插入图片描述
在这里插入图片描述

2.下载需要的镜像并上传到harbor仓库

docker load -i nfs-client-provisioner-v4.0.0.tar   %这里镜像已经提前下载好,直接load -i就可以
docker push reg.westos.org/library/nfs-subdir-external-provisioner   %上传到harbor仓库

3.解压下载的包,编辑values.yaml文件

tar zxf nfs-subdir-external-provisioner-4.0.5.tgz 
cd nfs-subdir-external-provisioner/
vim values.yaml 
image:
  repository: reg.westos.org/library/nfs-subdir-external-provisioner   %由于文件中没有设置全局,因此需要写镜像在harbor仓库中完整的路径
  tag: v4.0.0
  pullPolicy: IfNotPresent

nfs:
  server: 172.25.1.250     %指定nfs服务器ip
  path: /nfsdata     %指定nfs目录
  mountOptions:

在这里插入图片描述

4.创建namespace

kubectl create namespace nfs-provisioner  %为了更好的做环境隔离,创建专属的namespace:nfs-provisioner

在这里插入图片描述

5.在指定namespace下安装

helm install nfs-subdir-external-provisioner . -n nfs-provisioner

在这里插入图片描述
在这里插入图片描述

三、测试

1.编辑pvc.yaml文件并应用

cat pvc.yaml: 
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: test-claim
spec:
  #storageClassName: managed-nfs-storage
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Mi
kubectl apply -f pvc.yaml 

2.查看是否创建pv和pvc

kubectl get pv
kubectl get pvc

在这里插入图片描述

3.查看在nfs服务器上的/nfsdata目录下是否有文件产生

创建完pv和pvc后在nfs服务器的共享目录下将会产生相应的目录,当删除pv和pvc后,/nfsdata目录下的文件也将会被删除,如果在配置文件中指定参数,文件将会被打包保存,是否需要保存依具体情况而言:
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐