k8s环境安装nfs服务器
k8s中快速安装搭建nfs服务器
k8s环境安装nfs服务器
ubuntu中安装nfs服务器
搭建nfs服务器是很简单的,通过几行命令就可以安装好。
sudo apt install nfs-kernel-server
mkdir -p /mnt/disk
chown nobody:nogroup /mnt/disk
chmod 777 /mnt/disk
vim /etc/exports
/mnt/disk 10.0.0.0/8(rw,sync,no_subtree_check)
注意:其中的10.0.0.0/8是表示内网可访问的网段
使配置生效
$ exportfs -r
服务端查看下是否生效
$ showmount -e localhost
将nfs服务加入到k8s中去
首先,在某个能执行k8s命令的节点之上,安装nfs-client-provisioner应用。
添加仓库防止默认仓库:
$ helm repo add azure http://mirror.azure.cn/kubernetes/charts/
执行安装:
$ helm install azure/nfs-client-provisioner --set nfs.server=10.0.0.188 --set nfs.path=/mnt/disk --generate-name
其中 10.0.0.188 是这台nfs服务器的内网IP;另外k8s执行命令的节点之中需要安装helm。
出现持久券“等待中”问题:
查看名称(如:minio)
kubectl get pvc -n kubesphere-system
kubectl describe pvc minio -n kubesphere-system 来查看更多错误信息
waiting for a volume to be created, either by external provisioner “cluster.local/nfs-client-provisioner-1667538143” or manually created by system administrator
因为:
Kubernetes v1.20 (opens new window) 开始,默认删除了 metadata.selfLink 字段,然而,部分应用仍然依赖于这个字段,例如 nfs-client-provisioner。如果仍然要继续使用这些应用,您将需要重新启用该字段。
可以更改:
/etc/kubernetes/manifests/kube-apiserver.yaml
增加一行:
- –feature-gates=RemoveSelfLink=false
来解决,也可以直接使用新版本的nfs-client-provisioner
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=192.168.56.188 \
--set nfs.path=/data/disk
再设置成默认存储卷,这样就好了;
查看存储类:
kubectl get storageclass
将nfs设置为默认存储类(名字后面带default才是默认)
kubectl patch storageclass nfs-client -p ‘{“metadata”: {“annotations”:{“storageclass.kubernetes.io/is-default-class”:“true”}}}’
编辑对应的storageclass改为默认,支持默认不声明场景下动态使用存储空间:
annotations:
storageclass.kubernetes.io/is-default-class: ‘true’
查看安装情况: kubectl get sc
若挂载报错:
wrong fs type, bad option, bad superblock
没个node上面安装:
apt-get install nfs-common
ref:
[1]: https://kubesphere.io/zh/docs/reference/storage-system-installation/nfs-server/
[2]: https://cloud.tencent.com/developer/article/1433258
更多推荐
所有评论(0)