k8s笔记13--配置nfs-client-provisioner
Posted 昕光xg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s笔记13--配置nfs-client-provisioner相关的知识,希望对你有一定的参考价值。
k8s笔记13--配置nfs-client-provisioner
1 介绍
NFS 客户端配置器是 Kubernetes 的自动配置器,它使用已经配置的 NFS 服务器,自动创建持久卷,从而为其它应用提供持久化存储。自动创建的持久卷在nfs的根目录下存储形式为:$namespace-$pvcName-$pvName。
本文通过helm部署nfs-client,并为minio 提供持久化存储。后续会在此处持续更新 nfs-client-provisioner 相关的使用方式和注意事项。
2 部署测试
2.1 使用helm
- 部署nfs-client
详细参数可以参考githu stable/nfs-client-provisioner
搭建nfs服务器:
# cat /etc/exports |grep data
/data/nfs *(insecure,rw,sync,fsid=0,crossmnt,no_subtree_check)
/etc/init.d/nfs-kernel-server restart
# 部署nfs-client
helm install nfs-client stable/nfs-client-provisioner --set nfs.server=192.168.1.4 --set nfs.path=/data/nfs
或者在https://github.com/helm/charts 下载repo文件,解压出 stable/nfs-client-provisioner目录
helm install nfs-client nfs-client-provisioner/ --set nfs.server=192.168.1.4 --set nfs.path=/data/nfs
安装成功后可以正常get sc:
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-client cluster.local/nfs-client-nfs-client-provisioner Delete Immediate true
- 测试
笔者使用新建的nfs-client 为mino分配动态存储,minio 部署方法见博文:minio笔记3–基于k8s搭建minio集群 nfs-client 和 minio 部署成功后,可以看到已经有了SC nfs-client 且动态生成了pvc,如下图:
sc: - pvc:
- pv:
- 在物理机的nfs 目录下也生成了对应的存储目录,如下图所示:
- 综上,nfs-client 已经成功部署,且达到了应有的效果。
2.2 使用案例
本案例中基于nfs-client创建pvc, 然后将其挂载到busybox中。
vim pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: test-claim
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 102Mi
vim busybox.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: busybox-pvc
name: busybox-pvc
spec:
replicas: 1
selector:
matchLabels:
app: busybox-pvc
strategy:
template:
metadata:
creationTimestamp: null
labels:
app: busybox-pvc
spec:
containers:
- image: busybox:1.31
name: busybox
command: [sh, -c, "sleep infinity"]
volumeMounts:
- name: data-nfs
mountPath: /data-nfs
resources:
volumes:
- name: data-nfs
persistentVolumeClaim:
claimName: test-claim
status:
# kubectl apply -f pvc.yaml
# kubectl apply -f busybox.yaml
在busybox 终端中写入几个数据文件,可以发现已经正常挂载了nfs目录:
3 注意事项
- to add
4 说明
软件环境:
k8s 版本: 1.19.4
nfs-client-provisioner chart版本:stable/nfs-client-provisioner:1.2.11
参考文档:
1 github external-storage/tree/master/nfs-client2 github stable/nfs-client-provisioner3 k8s中创建nfs存储类(公共盘)
以上是关于k8s笔记13--配置nfs-client-provisioner的主要内容,如果未能解决你的问题,请参考以下文章