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 集群中的存储。
【小知识】
动态调配可提高资源利用效率,因为只有在需要时才会分配存储空间。此外,通过使用不同的存储类,管理员可以根据不同应用的具体需求,提供不同级别的性能和冗余。