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-ssd2. 使用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开启 - DefaultStorageClassadmission controller 。
- 设置默认的 - StorageClass对象。
可以通过添加storageclass.kubernetes.io/is-default-class注解的方式设置某个StorageClass为默认的StorageClass。当用户创建了一个PersistentVolumeClaim,但没有指定storageClassName的时候,会自动将该PVC的storageClassName指向默认的StorageClass。
参考文章:
- https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/ 
最后更新于
这有帮助吗?
