1. 安装 NFS Server
想要在 Rancher 中使用 NFS 存储类,首先需要选择一台服务器作为服务端(本例为 172.22.190.172),安装 NFS 服务。
# 下载 nfs 相关软件
yum -y install nfs-utils rpcbind
# 启动服务并加入开机自启
systemctl start nfs && systemctl enable nfs
systemctl start rpcbind && systemctl enable rpcbind
# 创建共享目录并赋予最大权限
mkdir -p /nfs && chmod -R 777 /nfs
# 多种权限配置策略,此处举例两种,第一种为限制 172.22.190 网段访问
echo "/nfs 172.22.190.*(rw,sync,no_root_squash)" >> /etc/exports
# 第二种为无限制访问
echo "/nfs *(rw,sync,no_root_squash)" >> /etc/exports
# 配置完成后重新加载
exportfs -r
# 查看挂载点信息
showmount -e
2. 安装 nfs-client-provisioner
-
打开 Rancher 应用商店,找到 nfs-client-provisioner 点击进入编辑页面
-
填写应答后点击启动即可
# 应答内容 nfs.server=172.22.190.172 nfs.path=/nfs
等待片刻后即可安装完成。
-
新建 mysql 负载验证 pvc
启动服务即可,如果顺利的话此时已正常启动。
-
如果启动报错,错误内容如下:
0/4 nodes are available: 4 pod has unbound immediate PersistentVolumeClaims. I1009 04:21:09.817638 1 controller.go:987] provision "default/mysql-test-pvc" class "nfs-client": started E1009 04:21:09.822616 1 controller.go:1004] provision "default/mysql-test-pvc" class "nfs-client": unexpected error getting claim reference: selfLink was empty, can't make reference
这个问题应该是由于 k8s 版本是 v1.20+ 导致的,解决方法很简单,往下看。
编辑集群,通过 yaml 文件编辑
在 kube-api 下面添加内容如下即可
extra_args: feature-gates: RemoveSelfLink=false
更新集群后,重新建立 pvc 即可成功。