Jupyter AI

20 持久化存储之存储类

📅 发表日期: 2024年8月15日

分类: ☸️Kubernetes 入门

👁️阅读: --

在Kubernetes中,持久化存储是为了确保应用数据在Pod重启或者迁移时仍然可用。其中,存储类(StorageClass)是一个用于定义存储的属性和策略的资源。它们允许用户动态生成存储卷,从而简化了持久化存储的管理过程。在本节中,我们将深入探讨存储类的创建与应用,确保它与前后两节内容无缝连接。

存储类的基本概念

在Kubernetes中,StorageClass用于描述如何动态地供应持久卷(PV)。通过定义存储类,用户可以为其应用指定存储需求,包括存储类型、性能规格等。

存储类的关键字段包括:

  • provisioner:用于指定所使用的存储插件。
  • parameters:用于提供存储卷的配置参数。
  • reclaimPolicy:存储卷被释放后的处理策略,通常有RetainDelete
  • volumeBindingMode:指定卷绑定的方式,可以是Immediate(立即绑定)或WaitForFirstConsumer(等待消费者)。

创建一个存储类

以下是一个创建存储类的示例,其中我们使用了kubernetes.io/gce-pd作为provisioner,来在Google Cloud平台上创建持久盘。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gp2
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  fsType: ext4
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

在以上示例中,我们创建了一个名为 gp2 的存储类,该存储类使用 AWS EBS 类型的存储,并且在使用时只有在有消费者时才会进行卷的绑定。

执行以下命令以创建上面的存储类:

kubectl apply -f storage-class.yaml

通过存储类创建持久卷声明(PVC)

一旦我们定义了存储类,就可以通过持久卷声明(PVC)来引用它。在PVC中,我们只需要指定所需的存储类名称。

以下是一个示例PVC,使用了之前创建的 gp2 存储类。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: gp2

执行命令以创建PVC:

kubectl apply -f pvc.yaml

一旦创建,Kubernetes会自动根据 gp2 存储类的配置动态地提供持久卷。

管理和查看存储类

要查看当前集群中已有的存储类,可以使用以下命令:

kubectl get storageclass

这将列出所有存在的存储类及其相关信息。

总结

在本节中,我们介绍了Kubernetes中存储类的概念、创建方法及其如何与持久卷声明(PVC)进行关联。了解存储类的工作原理,可以使我们在管理持久化存储时更加灵活和高效。

在下一节中,我们将进一步探讨如何利用存储类实现动态存储供应,这将更加深入地展示如何在Kubernetes中自动化存储的管理。