介绍:
使用Helm软件包管理器将自定义存储类安装到Kubernetes集群中。它还将NFS客户端配置程序安装到群集中,该群集从单个NFS共享动态创建持久卷。
一、NFS 服务器端安装
#yum 安装 NFS 安装包
yum install nfs-utils
#设置开机自启
systemctl enable rpcbind
systemctl enable nfs
#启动 NFS 服务
systemctl start rpcbind
systemctl start nfs
#在服务端配置一个共享目录
mkdir -p /data/k8s-test
#编辑配置文件,配置相关权限
vi /etc/exports
#添加如下配置
/data/k8s-test 192.168.0.1/24(rw,sync,no_root_squash,no_all_squash)
#/opt/data: 共享目录位置。
#192.168.0.1/24: 客户端 IP 范围,* 代表所有,即没有限制。
#rw: 权限设置,可读可写。
#sync: 同步共享目录。
#no_root_squash: 可以使用 root 授权。
#no_all_squash: 可以使用普通用户授权。
#修改后重启
systemctl restart nfs
#可以检查一下本地的共享目录
showmount -e localhost
#这样,服务端就配置好了
二、 配置nfs 存储类。
1、下载helm charts
helm repo add moikot https://moikot.github.io/helm-charts
helm pull moikot/nfs-client-provisioner
解压:
tar -zxvf nfs-client-provisioner-1.2.9.tgz
2、修改values.yaml
修改以下部分。
安装
helm install nfs-client-provisioner .
检查
详情参考: https://artifacthub.io/packages/helm/moikot/nfs-client-provisioner
镜像下载慢可替换为阿里源镜像
registry.cn-hangzhou.aliyuncs.com/wang_feng/nfs-client-provisioner:3.1.0
错误处理:
如果创建pvc时一直处于pending状态,查看pvc报错
Normal ExternalProvisioning 13s (x2 over 25s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "nfs-client" or manually created by system administrator
查看kubectl logs nfs-client-provisioner-6df55f9474-fdnpc的日志有如下信息:
E1022 07:01:24.615869 1 controller.go:1004] provision "default/test-claim" class "nfs-storage": unexpected error getting claim reference: selfLink was empty, can't make reference
参考一下文章处理:https://www.cnblogs.com/xull0651/p/15439162.html
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/issues/25