Kubernetes存储基础
卷
PVC
- 用于请求和绑定持久化存储卷pv,PVC 独立于具体的存储实现,可以通过存储类(StorageClass)来动态配置和管理存储资源。
yaml参考
apiVersion: v1 |
K.os
- 应该是可以理解为通过pvc进行申请后,StorageClass会根据pvc来动态创建pv
configMap
- 于在集群中管理非机密数据配置,将配置信息从代码中分离出来,注入配置数据的方法,便于管理和更新。
K.os
- 可以用键值得形式存储重要数据
secret
可以参考:
持久卷
为Pod提供独立于Pod生命周期的持久存储。
PV
- 一块存储资源。它是集群级别的资源,与Pod的生命周期分离。PV可以由管理员预先创建,也可以通过存储类动态创建。
静态
- 写完直接apply
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi动态
- 需要一个存储类StorageClass进行动态申领,就是想定义好StorageClass,再进行pvc进行获取
绑定
- Kubernetes会根据PVC的需求自动寻找和绑定合适的PV。
回收
- 当PVC被删除后,PV的回收策略决定了PV的处理方式。回收策略有三种:Retain、Recycle和Delete。
- Retain:保留数据,管理员可以手动处理数据。
- Recycle:清空数据后重新供PVC使用(已弃用)。
- Delete:删除PV和存储数据。
K.os
- 可以理解成物理卷一样,都是可以当作一块存储。但是后续的操作不一样,this.pv是能够通过StorageClass动态创建。
投射卷
- 将多种不同类型的数据源投射到 Pod 内的单个卷中。这些数据源包括 Secret、ConfigMap、Downward API 和 ServiceAccount Token 等。投射卷的一个主要优势是,它可以将多个来源的数据整合到一个挂载点,从而简化了数据管理和使用。
apiVersion: v1 |
存储类
用来定义PV的资源对象
属性
Provisioner:定义由谁负责提供存储资源。不同的 Provisioner 对应不同的存储系统,如 kubernetes.io/aws-ebs 对应 AWS 的 EBS 存储,kubernetes.io/gce-pd 对应 Google Cloud 的 Persistent Disk,等等。
Parameters:提供给存储系统的参数。例如,对于 AWS EBS,可以指定卷类型(如 gp2、io1 等)、IOPS 等参数。
ReclaimPolicy:定义 PV 被释放后如何处理。有两种策略:
Retain:保留存储资源供管理员手动回收。
Delete:自动删除存储资源。
AllowVolumeExpansion:指示是否允许动态扩展存储卷大小。
MountOptions:提供给挂载卷的选项,这些选项会应用于挂载存储卷时。
VolumeBindingMode:定义 PV 的绑定模式,主要有两种:
Immediate:PV 会立即绑定到 PVC。
WaitForFirstConsumer:PV 会等待第一个消费者(Pod)出现后再绑定,以便更好地优化存储资源分配。
apiVersion: storage.k8s.io/v1 # 指定API版本 |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Kalyan的小书房!
評論