Dynamic Volume Provisioning
Dynamic volume provisioning允许用户按需自动创建存储卷,这种方式可以让用户不需要关心存储的复杂性和差别,又可以选择不同的存储类型。
需要先提前创建
StorageClass
对象,StorageClass
中定义了使用哪个provisioner
,并且在provisioner
被调用时传入哪些参数,具体可参考StorageClass
介绍。例如:
- 磁盘类存储
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: slow
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-standard
- SSD类存储
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
创建一个PVC对象,并且在其中
storageClassName
字段指明需要用到的StorageClass
的名称,例如:apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: claim1
spec:
accessModes:
- ReadWriteOnce
storageClassName: fast
resources:
requests:
storage: 30Gi
当使用到PVC的时候会自动创建对应的外部存储,当PVC被删除的时候,会自动销毁(或备份)外部存储。
当没有对应的
StorageClass
配置时,可以设定默认的StorageClass
,需要执行以下操作:- 设置默认的
StorageClass
对象。
可以通过添加
storageclass.kubernetes.io/is-default-class
注解的方式设置某个StorageClass
为默认的StorageClass
。当用户创建了一个PersistentVolumeClaim
,但没有指定storageClassName
的时候,会自动将该PVC的storageClassName
指向默认的StorageClass
。参考文章:
- https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/
最近更新 6mo ago