1、安装nfs(所有节点安装)
yum install -y nfs-utils
2、创建共享目录
mkdir -p /data/nfs/dynamic-provisioner
执行这行命令将这个目录写到写到 /etc/exports 文件当中去,这样NFS会对局域网暴露这个目录
cat >> /etc/exports << EOF
/data/nfs/dynamic-provisioner *(rw,sync,no_root_squash)
EOF
3、启动nfs
systemctl enable --now nfs-server
查看是否启动成功:
systemctl status nfs-server
4、检查是否暴露成功,如下图
showmount -e {nfs服务器地址}
5、下载动态供给驱动
a>>下载
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
或命令下载
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/archive/refs/tags/nfs-subdir-external-provisioner-4.0.18.tar.gz
b>>解压
tar -zxvf nfs-subdir-external-provisioner-4.0.18.tar.gz
c>>进入目录
cd nfs-subdir-external-provisioner-nfs-subdir-external-provisioner-4.0.18/deploy/
d>>修改驱动,如下图,修改框红的地方(镜像换成国内的)
vim deployment.yaml
d>>查看默认命名空间下的资源
yamls=$(grep -rl 'namespace: default' ./)
for yaml in ${yamls}; do
echo ${yaml}
cat ${yaml} | grep 'namespace: default'
done
e>>创建命名空间
kubectl create namespace nfs-provisioner
f>>移动默认命名空间下的资源
sed -i 's/namespace: default/namespace: nfs-provisioner/g' `grep -rl 'namespace: default' ./`
6、安装动态供给
a>>kubectl apply -k .
b>>查看是否安装完成(READY为 1/1
并且STATUS状态为 Running
那么动态供给就已经部署完毕)
kubectl get all -o wide -n nfs-provisioner
c>>查询安装的动态供应存储类的名字
kubectl get storageclass