实际上,它已经由
PersistentVolumes 的动态配置。
PersistentVolumes和PersistentVolumeClaims可以轻松获得持久存储,而无需开发人员处理底层使用的实际存储技术。但这仍然需要集群管理员预先配置 实际存储。您认为,必须创建PersistentVolume,但不必一直这样。幸运的是,Kubernetes 还可以通过动态配置 PersistentVolume 自动执行这项工作。
集群管理员无需创建 PersistentVolume,而是可以部署PersistentVolume 配置器并定义一个或多个StorageClass对象,让用户选择他们想要的PersistentVolume类型。用户可以在他们的 PersistentVolumeClaims中引用StorageClass ,供应商 在供应持久存储时会考虑到这一点。
kubernetes 通过包含默认的StoregeClass定义使其变得更简单。您不必在 yaml 清单中指向StorageClass,如下所示:
PVC yaml 文件:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgresdb-pvc
spec:
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteOnce
此 PVC 定义仅包括存储大小请求和所需的访问模式,但不包括存储类。创建 PVC 时,将使用任何标记为默认的存储类。
$ kubectl get pvc postgresdb-pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS
postgresdb-pvc Bound pvc-95a5ec12 1Gi RWO standard
$ kubectl get pv pvc-95a5ec12
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS STORAGECLASS
pvc-95a5ec12 1Gi RWO Delete Bound standard
这张图片来自Kubernetes In Action这本书,完美地总结了所有步骤。