Kubernetes dynamic pv

Install nfs

NFS 是 Network File System 的缩写,即网络文件系统。 详细信息

1
yum -y install nfs-utils

Configurtion nfs server

1
2
3
4
5
# 创建共享目录
mkdir /data && chmod 755 /data
vim /etc/exports
#  添加配置
/data/     192.168.0.0/24(rw,sync,no_root_squash,no_all_squash)
  • /data: 共享目录位置。
  • 192.168.0.0/24: 客户端 IP 范围,* 代表所有,即没有限制。
  • rw: 权限设置,可读可写。
  • sync: 同步共享目录。
  • no_root_squash: 可以使用 root 授权。
  • no_all_squash: 可以使用普通用户授权。
1
systemctl enable rpcbind nfs && systemctl restart rpcbind nfs

Install dynamic pv

Helm charts 详细信息

1
2
3
4
5
6
7
8
# 添加Helm repo
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/

# Install 
helm install --name nfs \
--set nfs.server=192.168.124.200 \
--set nfs.path=/data \
nfs-subdir-external-provisioner/nfs-subdir-external-provisioner 

Configurtion default storage class

详细信息

设置默认Storage Classes,就不需要在pvc里面声明Sc的name,默认就会调用此sc

1
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

Cancel default storage class

1
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'

K8s v1.20.0 nfs

相关Issue 需要在kube-apiserver添加 - --feature-gates=RemoveSelfLink=false