k8s存储卷与数据持久化


Kubernetes支持多种存储卷类型,这些类型包括:

  1. 临时存储卷:emptyDir。在Pod和其下所有容器之间共享的临时空目录,只在该Pod的生命周期内存在。emptyDir通常用于容器之间共享文件,如共享配置文件等。

  2. 本地存储卷:hostPath:在每个节点上的主机文件系统中创建一个目录或文件,并将其挂载到Pod中。hostPath通常用于需要在容器内直接访问主机文件系统的情况,如日志文件。

  3. 网络存储卷:云存储awsEBS、azureFile,网络文件系统NFS、GlusterFS、CephFS、Cinder,网络块存储iscsi、FC。
  4. 特殊存储卷:Secret、ConfigMap、DownwardAPI、Projected。
  5. 自定义存储插件

由于底层存储配置相对比较复杂,除了直接在资源清单上配置挂载使用这些存储卷,还可以由管理员事先适配定义存储资源配置,用户声明存储需求使用定义好的存储资源。

有两个相关的概念:持久卷(Persistent Volume,PV)和持久卷声明(Persistent Volume Claim,PVC)。

PV是在Kubernetes集群范围内动态创建,可以由集群管理员创建或由存储管理员创建,它定义了存储卷的属性和规范,而PVC则是对PV的请求,并定义了应该如何使用PV。PVC拥有容量、访问模式和存储类等属性,并将这些属性与PV相关联,以方便Pod的访问和使用。

当Pod请求使用持久卷时,Kubernetes会使用PVC来选择一个PV,并通过PV将持久卷挂载到Pod中。一旦Pod被删除,对应的PVC也会被删除;而PV则可以被重用。

PV的生命周期

  • 存储预配:存储预配是指为PVC准备PV的过程,k8s有静态、动态两种预配方式,静态是指管理员手工创建PV的操作,动态是基于StorageClass(存储类)定义模板创建。
  • 存储绑定:用户基于存储需求和访问模式定义好PPVC后,PV控制器即会为其寻找匹配的PV,完成关联后它们二者同时转为已绑定状态。
  • 存储使用:pod资源基于PVC存储卷的定义用于容器内部应用的数据存取。
  • 存储回收:存储卷的目标完成之后,删除PVC对象可使关联的PV处于released状态,之后处理机制依赖于回收策略。

PV回收策略

  • Retain(保留):删除PVC后将保留其绑定的PV及数据,但会把该PV置为Released状态,不再可以和其他PVC绑定,需要管理手工清理。
  • Delete(删除):删除PVC的同时删除PV资源以及关联的外部存储组件;动态PV回收策略继承自SC资源,默认为Delete。
  • Recycle(回收):删除PVC后数据删除,但是PV重新可以为PVC绑定。
posted @   哪都通临时工  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示