20 持久化存储之存储类

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

存储类的基本概念

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

存储类的关键字段包括:

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

创建一个存储类

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

1
2
3
4
5
6
7
8
9
10
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 类型的存储,并且在使用时只有在有消费者时才会进行卷的绑定。

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

1
kubectl apply -f storage-class.yaml

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

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

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

1
2
3
4
5
6
7
8
9
10
11
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: gp2

执行命令以创建PVC:

1
kubectl apply -f pvc.yaml

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

管理和查看存储类

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

1
kubectl get storageclass

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

总结

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

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

20 持久化存储之存储类

https://zglg.work/kubernetes-zero/20/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论