k8s Volume和PVC

概念

在这里插入图片描述
在这里插入图片描述
卷的实现原理,因为外部卷挂载在POD的Pause容器中,然后POD中的容器C1,C2使用Pause中挂载的共享卷,所以即使C1,C2容器重启也不会丢失使用卷的内容.
在这里插入图片描述

卷的类型

在这里插入图片描述

emptyDir

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

emptyDir demo

创建Pod中2个容器test-pd1
在这里插入图片描述

kubectl exec test-pd1 -c test-container -it -- /bin/sh进入pod对应的容器中
在这里插入图片描述
在test-container容器中进入挂载目录/cache下将当前时间创建写入index.html中
kubectl exec test-pd1 -c liveness-exec-container -it -- /bin/sh进入pod的liveness容器中查看/test目录,可以查看到test-container容器中/cache目录下的日期内容
在这里插入图片描述

hostPath

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

hostPath Demo

在这里插入图片描述
kubectl exec -it test-pd -it -- /bin/sh进入容器的test-pd目录创建index.html文件
在这里插入图片描述
在宿主机目录上查看存储卷,更新成功
在这里插入图片描述

PVC

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PV

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PV和PVC的演示

安装nfs过程
在这里插入图片描述
1.nfs服务器安装nfs相关的插件
在这里插入图片描述
2.创建/nfs目录更改权限.更改所属用户,并且修改/etc/exports文件,将权限写入nfs配置文件中,然后开启rpcbind 和nfs服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.所有k8s节点安装nfs客户端,创建目录.使用命令showmount -e ip 查看nfs共享存储主机上面的存储策略,mount -t nfs ip:/nfs /test将本机的目录挂载到提供共享nfs服务主机的目录下面
在这里插入图片描述
在这里插入图片描述
3.部署PV
在这里插入图片描述4.kubectl get pv 查看可用的pv信息
在这里插入图片描述
5.创建多个nfs,观察pv和pvc的关系
vi /etc/exports修改文件
在这里插入图片描述
在这里插入图片描述
6.mkdir nfs{1..3}创建nfs目录
在这里插入图片描述
7.systemctl restart rpcbind systemctl restart nfs 重启nfs服务
在这里插入图片描述

扫描二维码关注公众号,回复: 13333252 查看本文章

8.挂载测试新增nfs是否可以挂载
在这里插入图片描述
9.nfs服务没问题,创建pv,nfspv-nfspv3 使用不同的pv,nfspv3 使用storageClassName为slow
在这里插入图片描述
10.kubectl get pv 查看所有创建的pv
在这里插入图片描述
11.创建svc为headless的svc,
在这里插入图片描述
12.创建statefulset控制器

在这里插入图片描述
13.修改镜像参数,并且加上挂载卷以及挂载模板
在这里插入图片描述
14.kubectl describe pod1查看未起来的pod的描述内容,未成功绑定pvc
在这里插入图片描述

在这里插入图片描述
分析未启动成功原因:因为符合nfs条件并且访问模式的只有一个pv,所以只有pod1创建成功了到pod2就没有符合条件的pv了
在这里插入图片描述
在这里插入图片描述
15.删除不符合条件的pv,nfspv3,nfspv4
在这里插入图片描述
16.新增2个符合策略的pv nfspv3,和nfspv4
在这里插入图片描述
17.查看新增的pv情况,并且查看statefulset创建的pod情况
在这里插入图片描述
在这里插入图片描述
pod起来后再次查看pv情况,已经看到pv已经被pvc绑定,并且CLAIM为namespace/pvc名称-pod名称
在这里插入图片描述
所以得出结论pvc和pv一一对应,并且pvc会格局符合模板条件的pv自动绑定
18.kubectl describe pv nfspv1 查看pv1
在这里插入图片描述
在这里插入图片描述
19.修改nfs 主机所设置目录的pv里面内容
在这里插入图片描述
20.curl podip 可以看到nginx镜像里面的 index.html文件在nfs服务器上面修改的内容展示了
在这里插入图片描述StatefulSet总结

在这里插入图片描述21.随便进入一个pod中ping pod名称.headlesssvc名
在这里插入图片描述
22.删除pod web-0 发现重新拉起了个新的pod, 虚拟ip变为10.244.2.88

在这里插入图片描述
23.再次通过ping 域名访问 也可以ping通
在这里插入图片描述
24.通过dig svc 来访问后端映射的statefulset创建的pod
在这里插入图片描述
在这里插入图片描述

pod,pvc,pv,nfsstatefulset之间的关联图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Persistence___/article/details/117737041