已适配k8s-1.23.9集群(docker运行时)
1.部署NFS
nfs 服务端(k8s-master)(ip:192.168.1.201)
# 所有服务端节点安装nfs
yum install -y nfs-utils
systemctl enable nfs-server rpcbind --now
# 创建nfs共享目录、授权
mkdir -p /data/k8s && chmod -R 777 /data/k8s
# 写入exports
cat > /etc/exports << EOF
/data/k8s 192.168.1.0/24(rw,sync,no_root_squash)
EOF
systemctl reload nfs-server
使用如下命令进行验证
# showmount -e 192.168.1.201
Export list for 192.168.1.201:
/data/k8s 192.168.1.0/24
nfs 客户端(k8s-node)
# 所有使用nfs的k8s节点安装nfs客户端
yum install -y nfs-utils
systemctl enable rpcbind --now
使用如下命令进行验证
# showmount -e 192.168.1.201
Export list for 192.168.1.201:
/data/k8s 192.168.1.0/24
2.部署 NFS Subdir External Provisioner
mkdir nfs-subdir-external-provisioner-4.0.17 && cd nfs-subdir-external-provisioner-4.0.17
# 版本:nfs-subdir-external-provisioner-4.0.17
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/raw/nfs-subdir-external-provisioner-4.0.17/deploy/deployment.yaml
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/raw/master/deploy/rbac.yaml
wget https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/raw/master/deploy/class.yaml
# 1、修改镜像(默认谷歌k8s.gcr.io)
sed -i 's/k8s.gcr.io\/sig-storage/dyrnq/g' deployment.yaml
# 2、修改nfs服务端地址
sed -i 's/10.3.243.101/192.168.1.201/g' deployment.yaml
# 3、修改存储地址(/data/k8s)
sed -i 's#\/ifs\/kubernetes#\/data\/k8s#g' deployment.yaml
以上中镜像使用的版本是:dyrnq/nfs-subdir-external-provisioner:v4.0.2
kubectl apply -f .
kubectl get pods -n default -l app=nfs-client-provisioner
kubectl get storageclass