本文主要是介绍k8s笔记13--配置nfs-client-provisioner,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
k8s笔记13--配置nfs-client-provisioner
- 1 介绍
- 2 部署测试
- 2.1 使用helm
- 2.2 使用案例
- 3 注意事项
- 4 说明
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 11m
- 测试
笔者使用新建的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-clientaccessModes:- ReadWriteOnceresources:requests:storage: 102Mivim busybox.yaml
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: busybox-pvcname: busybox-pvc
spec:replicas: 1selector:matchLabels:app: busybox-pvcstrategy: {}template:metadata:creationTimestamp: nulllabels:app: busybox-pvcspec:containers:- image: busybox:1.31name: busyboxcommand: [sh, -c, "sleep infinity"]volumeMounts:- name: data-nfsmountPath: /data-nfsresources: {}volumes:- name: data-nfspersistentVolumeClaim: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-client
2 github stable/nfs-client-provisioner
3 k8s中创建nfs存储类(公共盘)
这篇关于k8s笔记13--配置nfs-client-provisioner的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!