StorageClass 资源对象

StorageClass 是 Kubernetes 中的资源对象之一。它用于定义和配置存储的类型、属性和行为。通过创建一个 StorageClass 对象,您可以在 Kubernetes 中定义不同的存储类别,并为应用程序提供灵活的存储选项。在创建 PersistentVolumeClaim(PVC)时,可以指定使用哪个 StorageClass,从而将 PVC 动态绑定到相应的持久卷(PersistentVolume)。这样,应用程序可以方便地使用所需的存储资源。因此,StorageClass 在 Kubernetes 中充当了定义存储策略和提供存储抽象的重要角色。

创建一个示例,基于NSF

apiVersion: storage.k8s.io/v1 #版本号
kind: StorageClass #储存类资源对象
metadata:
  name: test-storage #自定义名字
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner #使用NFS存储提供程序
parameters:
  retainOnDelete: "true" #储存策略

retainOnDelete有两种策略

Retain策略,参数被设置为 "true",这意味着在 PVC 删除时保留存储卷

默认为Delete参数,不会保留粗存卷

pv资源对象

PV(PersistentVolume)是 Kubernetes 中的一种资源对象,用于表示持久化的存储卷。PV 独立于 Pod 存在,并且可以手动创建或由存储插件动态创建。

PV 具有以下特点:

  • PV 是集群范围的资源,可以被多个命名空间中的 Pod 使用。

  • PV 具有自己的生命周期,与 Pod 的生命周期无关。

  • PV 具有容量、访问模式(读写一致性)和回收策略等属性。

  • PV 可以手动绑定到 PVC(PersistentVolumeClaim),也可以由动态存储插件自动绑定。

  • PV 可以通过 PVC 来使用,并且可以在 PVC 和 Pod 之间进行动态绑定和解绑。

创建一个pv示例

apiVersion: v1 #版本号
kind: PersistentVolume #pv资源对象
metadata: #元数据
  name: pv1 #自定义pv名称
spec:
  capacity:
    storage: 500Mi #PV的存储容量
  accessModes:
    - ReadWriteOnce #PV的访问模式
  persistentVolumeReclaimPolicy: Retain #PV的回收策略
  storageClassName: nfs #使用的存储类名称
  nfs: #nfs的配置
    path: /nfsdata  #挂载的nfs目录
    server: 10.8.166.252 #目标的地址
<p>

1.storage参数可以选择M,G等,后面需要加一个i

2.ReadWriteOnce有三种访问模式

  • ReadWriteOnce:只能被一个 Pod 以读写方式访问。

  • ReadOnlyMany:可以被多个 Pod 以只读方式访问,但不能写入。

  • ReadWriteMany:可以被多个 Pod 以读写方式同时访问。

3.persistentVolumeReclaimPolicy 的回收策略在高版本有两种

  • Retain测试在PVC被删除时保留 pv,并不会自动清理相关数据。管理员可以手动清理pv。

  • Delete策略会在PVC被删除时同时删除关联的pv,并释放底层存储系统上的资源。

pvc资源对象

PVC(PersistentVolumeClaim)是 Kubernetes 中用于申请和使用 PV(PersistentVolume)的资源对象。PVC 允许用户声明对 PV 的需求,而不用关心 PV 的具体细节。下面是 PVC 资源对象的详细解释:

PVC 资源对象的作用是声明对 PV 的需求,通过指定访问模式和资源需求来申请合适的 PV。Kubernetes 控制器会自动将匹配的 PV 绑定到 PVC 上,然后将 PVC 提供给 Pod 使用。

需要注意的是,PVC 只是一个声明性的资源对象,它本身并不提供实际的存储,而是与 PV 进行绑定来获取持久性存储。

创建一个pvc示例,创建出来后会自动绑定到nfs类型的pv

apiVersion: v1 #版本
kind: PersistentVolumeClaim #pvc对象
metadata:
name: pvc1 #自定义名称
spec:
accessModes:
- ReadWriteOnce #PVC所需的访问模式
resources:
requests:
storage: 500Mi #请求的存储容量
storageClassName: nfs #绑定的类型,如果不设置会按照需求大小自动绑定pv

accessModes可以设置三种访问模式

  1. ReadWriteOnce(RWO):该模式表示 PV 可以被单个节点以读写方式挂载。即 PV 只能被一个 Pod 使用,并且该 Pod 可以读取和写入 PV 上的数据。

  2. ReadOnlyMany(ROX):该模式表示 PV 可以被多个节点以只读方式挂载。多个 Pod 可以同时从 PV 中读取数据,但不能对其进行写操作。

  3. ReadWriteMany(RWX):该模式表示 PV 可以被多个节点以读写方式挂载。多个 Pod 可以同时读写 PV 上的数据。