Kubernetes 支持存储的动态调配,允许在需要时使用 StorageClasses 自动创建持久卷。这一功能无需管理员手动调配存储,从而简化了存储资源的管理。


下面举例说明如何创建 StorageClass 并使用它动态调配 PersistentVolumeClaim (PVC)。

【代码清单】

# Define a StorageClass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
 name: fast-storage
provisioner: kubernetes.io/gce-pd
parameters:
 type: pd-ssd
 replication-type: none
---
# Create a PersistentVolumeClaim using the StorageClass
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: my-pvc
spec:
 accessModes:
  - ReadWriteOnce
 resources:
  requests:
   storage: 10Gi
 storageClassName: fast-storage

【执行结果】

如果应用了这些 YAML 文件,Kubernetes 将使用定义的 StorageClass 自动创建一个与 PVC 中的规范相匹配的 PersistentVolume。

StorageClass 定义了存储类型和动态调配存储所需的其他参数。provisioner 字段指定了存储后端类型,如用于 Google 计算引擎持久磁盘的 kubernetes.io/gce-pd。当一个 PersistentVolumeClaim 请求具有特定 StorageClass 的存储时,Kubernetes 会动态地配置一个满足该请求的 PersistentVolume,使其可供应用程序使用。这种方法无需预先配置存储资源,能以更灵活、更自动化的方式管理 Kubernetes 集群中的存储。

【小知识】

动态调配可提高资源利用效率,因为只有在需要时才会分配存储空间。此外,通过使用不同的存储类,管理员可以根据不同应用的具体需求,提供不同级别的性能和冗余。