一,挂载nfs存储
1,在所有节点安装nfs-utils
2,在共享服务器上安装nfs-utils,并且设置开机自起
systemctl enable nfs-server
systemctl start nfs-server
3,创建共享目录
vi /etc/exports
k8s学习笔记之基于NFS的pv,pvc

k8s学习笔记之基于NFS的pv,pvc
4,在deployment中设置容器挂载卷
k8s学习笔记之基于NFS的pv,pvc_第1张图片
以上的挂载是没有配额的,挂载目录可以使用宿主机全部剩余存储空间

二,pv以及pvc
网上借的图:
k8s学习笔记之基于NFS的pv,pvc_第2张图片
1,手动创建静态pv
k8s学习笔记之基于NFS的pv,pvc_第3张图片

k8s学习笔记之基于NFS的pv,pvc
创建pvc
k8s学习笔记之基于NFS的pv,pvc_第4张图片
在deploy中的挂载pvc
k8s学习笔记之基于NFS的pv,pvc_第5张图片
如果是在statefulset的情况下,如下
k8s学习笔记之基于NFS的pv,pvc_第6张图片
直接在spec中通过volumeClaimTamplates来集声明与指定挂载源为一体

2,使用存储类来根据pvc动态创建pv
创建存储类对象
k8s学习笔记之基于NFS的pv,pvc_第7张图片
k8s学习笔记之基于NFS的pv,pvc
创建rabc授权
创建服务账户-》创建角色-》创建角色绑定
在同一个yaml文件中创建
账户:
k8s学习笔记之基于NFS的pv,pvc_第8张图片
角色:
k8s学习笔记之基于NFS的pv,pvc_第9张图片
用户与角色绑定:
k8s学习笔记之基于NFS的pv,pvc_第10张图片
应用yaml文件之后,查看
k8s学习笔记之基于NFS的pv,pvc
对象已经创建成功

3,创建nfs-provisioner deployment
k8s学习笔记之基于NFS的pv,pvc_第11张图片
应用查看:
k8s学习笔记之基于NFS的pv,pvc_第12张图片
新建nginx测试应用
k8s学习笔记之基于NFS的pv,pvc_第13张图片
k8s学习笔记之基于NFS的pv,pvc_第14张图片
应用后,查看:
k8s学习笔记之基于NFS的pv,pvc_第15张图片
查看共享目录:
k8s学习笔记之基于NFS的pv,pvc
可以发现,系统已经自动创建了nfs挂载目录,自动创建了pv

暴露该应用端口测试
k8s学习笔记之基于NFS的pv,pvc

k8s学习笔记之基于NFS的pv,pvc
访问该应用
k8s学习笔记之基于NFS的pv,pvc_第16张图片

因为没有首页,在挂载目录新建一个测试页
k8s学习笔记之基于NFS的pv,pvc_第17张图片
成功访问。