K8S的存储卷---数据卷

容器内的目录和宿主机的目录进行挂载

容器在系统上的生命周期是短暂的。delete,K8S用控制器创建的pod,delete相当于重启,容器的状态也会恢复到初始状态。一旦回到初始状态,所有的后天编辑的文件都会消失

容器和节点之间创建一个可以持久化保存容器内文件的存储卷。即使容器被销毁、删除、重启,节点上的存储卷的数据依然存在,后续也可以继续使用。可以继续将容器内目录和宿主机挂载,保存的数据继续使用

1、emptyDir

容器内部共享存储卷,K8S系统中,是一个pod当中的多个容器共享一个存储卷目录

emptyDir卷可以使pod当中的容器在这个存储卷上读取和写入

emptyDir不能挂载到节点。随着pod生命周期的结束,emptyDir卷也会结束,数据也不会保留

容器内部共享。lnmp

2、hostPath

将容器内的挂载点和节点上的目录进行挂载,hostPath可以实现数据的持久。node节点被销毁,那么数据也会丢失

Q:污点设置为NoExcute时,节点上的pod会被驱逐,那么文件数据是否还在?

A:在。①只是pod被驱逐,并不是node节点被销毁。所以数据还是保留在节点上; ②pod被驱逐之后,基于控制器创建的,会在其他重新部署,又会在其他节点生成一个新的存储卷,数据依然可以持久化。emptyDir的共享数据会丢失,hostPath不会

3、NFS共享存储

所有pod内的目录都和节点上的NFS共享目录形成数据卷,所有的数据文件都保存在共享目录中.集中方便管理

K8S的存储卷---数据卷_第1张图片

PV和PVC(面试必问:组件、功能、网络、资源调度、扩缩容、pvc/pv)

pv(Presistent Volume):持久化存储卷。描述和定义一个存储卷,pv由运维人员来定

pvc(Presistent Volume Claim):持久化存储的请求。pvc实际上是用来描述或者申明我希望使用什么样的pv来进行存储

pvc和pv是一一对应的关系(描述(期望类型)、存储(大小))

pvc ---> pv ---> NFS

pv和pvc都是虚拟化的概念,是K8S的抽象的虚拟的存储资源

pvc和pv之间的静态请求。(一旦形成百个pvc怎么办?所以还有动态pvc)

K8S的存储卷---数据卷_第2张图片

pv是集群当中的存储资源,pvc请求存储资源,也是对存储资源的一个检索(检查索引),选择一个最合适的pv来存储资源

pv和pvc之间有生命周期管理:

1、Provisioning(配置) ---> pvc请求request ---> 检索(找一个合适的pvc) ---> pvc和pv(binding绑定) ---> 使用 ---> pod被删除 ---> pv的releasing(释放) ---> recycling(回收)

配置:静态、动态

绑定:就是把pv分配给pvc

使用:就是pod通过pvc使用存储资源

释放:pod解除和volume之间的关系,删除pvc

回收:可以保留pv,以供下一个pvc使用

pv状态:

Availble:可用,而且没有被任何pvc绑定(等待绑定)

Bound:绑定。pv已经绑定了pvc,绑定即使用

released:释放。pvc已经被删除了,但是pv的存储资源尚未被集群回收

Failed:pv资源回收失败,而且pv为不可用状态

ReadWriteOnce(RWO):在配置文件里是全称,存储pv可读可写,但是只能被单个pod挂载

ReadOnlyMany(ROX):存储的pv可以以只读的方式被多个pod挂载

ReadWriteMany(RWX):存储可以支持读写的方式被多个pod共享

NFS:可以支持RWO、ROX、RWX三种读写和挂载方式

SCSI:

ISCSI:不支持RWX

hostPath:只支持RWO

lsscsi  查看全部的挂载设备

[root@master01 opt]# lsscsi

[1:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0

[2:0:0:0]    disk    VMware,  VMware Virtual S 1.0   /dev/sda

[root@master01 opt]# iscsiadm -m session -P 3

iscsiadm: No active sessions.

iscsiadm -m session -P 3

iscsiadm:查看服务器是否有iscsi设备

-m session:指定操作的模块,管理iSCSI的会话

-P 3:显示详细信息的级别。级别就是3,显示详细信息

集群回收pv资源的方式:

1、Retain(默认策略):保留。pod和挂载点的数据不会被删除

2、Recycle:回收。pv上的数据被删除,挂载点的数据也被删除

3、Delete:删除。解绑时自动删除pv上的数据,(本地硬盘不能使用,AWS, EBS GCE)支持动态卷的可以使用,pv不再可用(云平台自己处理)

补充:当pod运行之后,通过pvc请求到pv,除非pod被销毁,否则无法删除pvc

K8S当中存储卷的模式:

emptyDir:容器内存储卷,随着pod被销毁,也会被销毁,数据不保留

hostPath:节点目录的存储卷,可以实现持久化存储。数据在每个几点上都有,不方便集中管理

NFS:共享目录存储卷,可以实现持久化,数据集中在一个目录,方便管理

pv和pvc

pvc是一种请求,请求pv的存储资源--------硬盘空间(NFS方式)

NFS支持pvc的所有挂载方式和读写模式

hostPath仅支持RWO

pvc是以检索的方式找到匹配的pv资源

检索挂载方式和读写方式

检索pv能提供的存储资源的大小

谁合适选谁

保留:默认可以不屑

回收:自动回收。节点上的数据会被删除

删除:pv会变成failed模式,不可用,数据也会被删除

你可能感兴趣的:(kubernetes,容器,云原生)