概述
官方GitHub及参考文档:GitHub - kubernetes-sigs/nfs-subdir-external-provisioner: Dynamic sub-dir volume provisioner on a remote NFS server.
部署nfs-subdir-external-provisioner提供StorageClass服务
步骤
nfs 服务器准备
/etc/exports
# cat /etc/exports
/nfsshare *(rw,no_root_squash,sync)
install nfs-utils
yum -y install nfs-utils
systemctl enable --now nfs
namespace
apiVersion: v1
kind: Namespace
metadata:
labels:
kubernetes.io/metadata.name: nfs-server
name: nfs-server
spec:
finalizers:
- kubernetes
class
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-client
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
archiveOnDelete: "true"
# 定义路径格式
pathPattern: "${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}"
不同的呈现方式
rbac
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: nfs-server
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nfs-client-provisioner-runner
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"]
-