存储卷:容器内的目录和宿主机的目录进行挂载。
容器在系统上的生命周期是短暂的,delete。k8s用控制创建的pod,delete相当于重启。容器的状态也会恢复到初始状态。
一旦恢复到初始状态,所有的后天编辑的文件都会消失。
容器和节点之间创建一个可以持久化保存容器内文件的存储卷,即使热熔器被销毁,删除,重启,节点上的存储的数据依然可以继续使用。可以继续讲容器内目录和宿主机挂载,保存的数据继续使用。
1,mptyDir
容器内部共享存储卷,k8s系统中,是一个pod当中的多个容器共享一个存储卷目录。
emptyDir:卷可以是pod当中容器在这个存储卷上读取和写入。
emptyDir:是不能挂载到节点的,随着pod的生命周期结束emptyDir也会结束,数据也不会保留。
??emptyDir:共享数据会丢失。
?快速创建一个yaml文件
容器内共享。
进入容器
只能在容器内部共享。Inmp
2,hostPath:将容器内的挂载点,和节点上的目录进行挂载,hostPath也可以实现数据的持久,node节点被销毁,那么数据也会丢失。
查看不同容器的日志
3,NFS共享存储:所有的pod内的目录和节点上的NFS共享目录形成数据,所有的数据文件都保存在共享目录当中。集中方便管理
也可以用主机名
Server可以是共享节点的ip地址,也可以是主机名,主机名要做映射。
Master ?node节点都要做映射
这两一样的意思删除。
PVC和PV
PV:全称Persistent Volume 持久化存储卷,描述和定义一个存储卷,PV是由运维人员来定。
PVC:Persistent Volume Claim 持久化存储的请求。PVC实际上是用来描述或者声明我希望使用什么样的PV来进行存储。
PV和PVC是一一对应的关系(描述,存储(大小))
PVC----PV-----NFS
PV和PVC都是虚拟化的概念,是k8s的抽象的虚拟的存储资源。
PVC和PV之间静态请求,一但成百个PVC怎么办,所有动态PVC
PV实集群当中的存储资源,PVC请求存储资源,也是对存储资源的一个检索(检索索引),选择一个最合适的PV来存储资源。
PV和PVC之间是有生命周期管理:
配置:静态,动态
绑定:就是把PV分配给PVC
使用:就是pod通过PVC使用存储资源
释放:pod解除和volume的关系,删除PVC
回收:保留PV,让下一个PVC使用。
PV的状态:
Available:可用,而且没有被任何PVC绑定。
Bound:绑定,PV已经绑定了PVC,即绑定即使用。
Released:释放,PVC已经被删除了,但是pv的存储资源还没有被集群回收。
Failed:表示PV资源回收失败,而且PV为不可用状态。
支持的读写方式:
ReadWriteOnce ?RWO,配置文件里是全称,存储PV可读可写,但是只能被单个pod挂载。
ReadOnlyMany ?ROM,存储的PV可以以只读的方式被多个pod挂载
ReadWriteMany ?RWX,存储可以支持读写的方式被多个pod共享。
NFS:可以支持三种读写和挂载方式。
ISCSI:不支持ReadWriteMany
查看当前设备
Iscsiadm查看服务器是否有iscsi设备
-m session 指定操作的会话模块,管理iscsi的会话
-P 3 :显示显示详细信息的级别。级别就是3显示详细信息。
hostPath:只支持ReadWriteOnce方式。
集群回收PV资源的方式:
当pod运行之后,通过PVC请求到了PV,除非pod被销毁,否则无法删除PVC
开始创建PV
k8s当中存储卷的模式:
emptyDir;容器内存储卷。随着pod被销毁,也会被销毁数据不保存。
hostPath:节点目录的存储卷,可以实现持久化存储,数据在每个节点上都有,不方便集中管理。
NFS:共享目录存储卷,可以实现持久化,数据集中在 一个目录,方便管理。
PV和PVC
PVC请求---PV的存储资源---硬盘空间(NFS)
NFS支持PVC的所有挂载方式和读写模式。
hostPath仅支持ReadWriteOnce 的的方式
PVC是以上检索的方式找到匹配的PV资源
检索挂载方式和读写模式
检索PV能提供的存储资源的大小
谁合适选谁
保留:默认可以不写
回收:自动回收,节点上的数据会被删除
删除:PV会变成failed模式,不可用,数据也会被删除。