按照如下教程配置NFS
先服务器:
搭建 NFS 服务器
后客户端:
安装 NFS Client
按照链接操作以后,在客户端上面把目录挂载到服务端
root@client_banana:/# mount 172.25.110.41:/mnt/nfs_share /mnt/client_floder
客户端: mount <server-ip>:<the_share_dir_onserver> <local_share_dir>
#检查nfs的状态
service nfs-server status
# 停止nfs
service nfs-server stop
# 启动nfs
service nfs-server start
创建StorageClass
先决条件
nfs-server、nfs-client已经安装完毕并挂载
步骤概览
- 安装Helm
- 安装卷插件 NFS-Subdir
- 验证安装
安装Helm
参考Helm官方文档:Helm | 安装Helm
笔者使用的是Ubuntu,所以采用如下命令安装:
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
安装卷插件 NFS-Subdir
参考插件安装指南:https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/blob/master/charts/nfs-subdir-external-provisioner/README.md
提示:该插件要求
Kubernetes >=1.9
,按照版本号命名规则来看,主版本号是1,次版本号是9,所以我们之前选择的k8s版本是v1.21.5是没问题的。
版本号命名规则:主版本号.次版本号.补丁号
$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=x.x.x.x \
--set nfs.path=/exported/path
把 nfs.server 修改成自己的nfs.server的IP。 nfs.path 改成共享目录的路径
INSTALLATION FAILED
写错路径或者主机以后,想再执行一次命令,需要先删除之前部署失败的package
报错信息:
Error: INSTALLATION FAILED: cannot re-use a name that is still in use
解决方案
//查看fail的包在哪
helm ls --all-namespaces
//删除该包
helm -n <namespace> delete <package-name>
镜像拉取失败
默认镜像地址是:registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
可能会出现镜像拉取失败的情况。
去dockerhub上寻找相同版本的即可。我采用的是以下版本:dyrnq/nfs-subdir-external-provisioner:v4.0.2
验证安装
kubectl get sc
可以看到已经有一个叫 nfs-share 的StorageClass。
如果是k8sp平台,可以去创建一个pvc,再去虚机里自己设置的共享目录查看一下有没有相应的pvc。该步骤省略。