Dynamic Volume Provisioning 介绍
Dynamic Volume Provisioning
Dynamic volume provisioning允许用户按需自动创建存储卷,这种方式可以让用户不需要关心存储的复杂性和差别,又可以选择不同的存储类型。
1. 开启Dynamic 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
2. 使用Dynamic Provisioning
创建一个PVC对象,并且在其中storageClassName
字段指明需要用到的StorageClass
的名称,例如:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: claim1
spec:
accessModes:
- ReadWriteOnce
storageClassName: fast
resources:
requests:
storage: 30Gi
当使用到PVC的时候会自动创建对应的外部存储,当PVC被删除的时候,会自动销毁(或备份)外部存储。
3. 默认的StorageClass
当没有对应的StorageClass
配置时,可以设定默认的StorageClass
,需要执行以下操作:
- 在API Server开启
DefaultStorageClass
admission controller 。 - 设置默认的
StorageClass
对象。
可以通过添加storageclass.kubernetes.io/is-default-class
注解的方式设置某个StorageClass
为默认的StorageClass
。当用户创建了一个PersistentVolumeClaim
,但没有指定storageClassName
的时候,会自动将该PVC的storageClassName
指向默认的StorageClass
。
参考文章:
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
最后修改 December 25, 2022: deploy by blog source (a162b04)