一、临时存储二、半持久化存储三、持久化存储 一、临时存储
当pod的存储方案设定为emptydir的时候,pod启动时就会在pod所在节点的磁盘空间开辟出一块空卷,pod启动后容器产生的数据会存放到那个空卷中,供pod内的容器读取和写入数据,一旦pod容器消失,节点上开辟出的这个临时空间就会随着pod销毁。
二、半持久化存储hostpath类型则是映射node文件系统中的文件或者目录到pod里。因为在k8s中pod会漂移,当pod漂移到其他node节点的时候,pod不会跨节点的去读取目录。所以说是一种半持久化的存储方式
三、持久化存储PV是集群中的一块存储,是集群资源,是持久化存储,对存储资源进行抽象。和普通的 Volume 一样,也是使用卷插件来实现的,只是它们拥有独立于任何使用 PV 的 Pod 的生命周期。
PVC是用户对存储的请求。概念上与 Pod 类似。 Pod 会耗用节点资源,而 PVC 申领会耗用 PV 资源。Pod 可以请求特定数量的资源(CPU 和内存);同样 PVC 可以请求特定的大小和访问模式。
PV、PVC生命周期
Provisioning ——-> Binding ——–>Using——>Releasing——>Recycling
Provisioning—通过集群外的存储系统或者云平台来提供存储持久化支持。
静态提供 Static:创建多个 PV,它们携带可供集群用户使用的真实存储的详细信息。
动态提供 Dynamic:当创建的静态 PV 都不匹配用户的PVC时,集群可能会尝试为 PVC 动态配置卷。 此配置PVC 必须请求一个类,并且必须已创建并配置该类才能进行动态配置。
Binding—创建 pvc 并指定需要的资源和访问模式。在找到可用 pv 之前,pvc 会保持未绑定状态。
Using—可在 pod 中像 volume一样使用 pvc。
Releasing—删除 pvc 来回收存储资源,pv 将变成“released”状态。由于还保留着之前的数据,这些数据需要根据不同的策略来处理,否则这些存储资源无法被其他 pvc 使用。
Recycling—pv 可以设置三种回收策略:保留(Retain),回收(Recycle)和删除 (Delete)。
保留策略:允许人工处理保留的数据。删除策略:将删除 pv 和外部关联的存储资源,需要插件支持。回收策略:将执行清除操作,之后可以被新的 pvc 使用,需要插件支持