Kubernetes动态分配存储卷组件 nfs-subdir-external-provisioner

Kubernetes动态分配存储卷组件 nfs-subdir-external-provisioner

存储组件 nfs-subdir-external-provisioner 是一个存储资源自动调配器,它可用现有的 NFS 服务器通过持久卷声明来支持 Kubernetes 持久卷的动态分配,自动创建的文件夹将被命名为 n a m e s p a c e − {namespace}− namespace{pvcName}-${pvName} ,由三个资源名称拼合而成。

一、NFS服务安装配置

1、NFS服务端(master节点)

1).安装rpc、nfs服务
yum install rpcbind nfs-utils -y
2).创建共享目录
mkdir /nfs/data -p
3).修改配置文件
cat >/etc/exports<<-'EOF'
/nfs/data *(rw,sync,no_subtree_check,no_root_squash)
EOF
4).启动服务并添加开机自启
systemctl start rpcbind && systemctl enable rpcbind
systemctl start nfs-server && systemctl enable nfs-server
5).服务端验证
showmount -e  [host]

在这里插入图片描述

2、NFS客户端(node节点)

1).安装nfs服务
yum install nfs-utils -y
2).客户端验证
showmount -e  [host]

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

二、Helm安装 nfs-subdir-external-provisioner

1、添加helm源

helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner

在这里插入图片描述

2、更新helm仓库

helm repo update

在这里插入图片描述

3、查看helm仓库

helm repo list

在这里插入图片描述

4、安装 nfs-subdir-external-provisioner

helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    -n kube-system \									#指定命名空间
	--set image.repository=k8s.m.daocloud.io/sig-storage/nfs-subdir-external-provisioner \  	#指定镜像地址
	--set image.tag=v4.0.2 \							#指定版本
    --set nfs.server=172.16.0.20 \						#指定nfs地址
    --set nfs.path=/nfs/data \							#指定nfs的共享目录
    --set storageClass.name=nfs-sc \					#指定sc的名字
    --set storageClass.defaultClass=true				#指定为默认sc

在这里插入图片描述

5、查看 helm安装 nfs-subdir-external-provisioner 服务的状态

helm status nfs-subdir-external-provisioner -n kube-system

在这里插入图片描述

6、检查 nfs-subdir-external-provisioner 服务 pod的状态

kubectl get pod -n kube-system

在这里插入图片描述

7、检查默认的存储是否是 nfs-sc

kubectl get sc

在这里插入图片描述

8、卸载

helm uninstall nfs-subdir-external-provisioner -n kube-system

在这里插入图片描述

三、测试nfs-sc

1、创建测试目录

mkdir test-nfs-pvc && cd test-nfs-pvc

2、创建测试文件

1).test-nfs-pvc.yaml
cat >test-nfs-pvc.yaml<<-'EOF'
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: test-nfs-pvc
spec:
  storageClassName: nfs-sc
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Mi
EOF
2).test-pod.yaml
cat >test-pod.yaml<<-'EOF'
kind: Pod
apiVersion: v1
metadata:
  name: test-pod
spec:
  containers:
  - name: test-pod
    image: busybox:stable
    command:
      - "/bin/sh"
    args:
      - "-c"
      - "touch /mnt/SUCCESS && exit 0 || exit 1"
    volumeMounts:
      - name: nfs-pvc
        mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
    - name: nfs-pvc
      persistentVolumeClaim:
        claimName: test-nfs-pvc
EOF

在这里插入图片描述

3、部署要创建的资源

kubectl apply -f ./

在这里插入图片描述

4、查看pv的状态

kubectl get pv

在这里插入图片描述

5、查看pvc的状态

kubectl get pvc

在这里插入图片描述

6、查看pod的状态

kubectl get pod

在这里插入图片描述

7、查看pod的详细信息

kubectl describe pod test-pod

kubectl describe pod test-pod

8、查看共享目录下生成的文件

在这里插入图片描述

9、删除创建的资源

kubectl delete -f ./

在这里插入图片描述

10、验证是否删除成功

kubectl get pv,pvc,pod

在这里插入图片描述

11、删除后文件还有保存,可根据需求调整策略

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值