纳管卷供应
纳管卷供应(Manage Volume Provisioning)允许管理员使用已经在存储侧创建的资源做为PV,并能够支持动态卷的特性,例如:扩容,快照,克隆等,属于华为CSI自定义能力。使用该特性可满足如下场景:
- 容器化应用的改造场景,需要使用已有的存储卷。
- 重建Kubernetes集群。
- 容灾场景下,对存储数据进行迁移。
在多Kubernetes集群场景下,使用纳管卷特性对同一存储资源进行管理时,在任一集群中对该资源对应的PVC进行管理操作后,不会同步到其他集群中。 例如:在某一集群中对PVC进行扩容时,其他集群对应的PVC不会自动扩容,需要在其他集群中手动根据扩容PVC中的扩容命令进行扩容。
前提条件
- 已在CSI中注册需要纳管卷所在存储。
- 已登录存储设备获取需要纳管卷的名称和容量。
配置StorageClass
根据业务需要,参考动态卷供应典型场景StorageClass配置示例和动态卷供应StorageClass参数说明,创建StorageClass配置文件,如本例从的mysc.yaml文件。
执行命令,使用配置文件创建StorageClass。
kubectl apply -f mysc.yaml
执行命令,查看已创建的StorageClass信息。
kubectl get sc mysc
命令结果示例如下:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE mysc csi.huawei.com Delete Immediate true 8s
配置PVC
根据业务需要,参考本节描述和PVC配置文件示例,修改具体参数,生成本次需要创建的PVC配置文件,如本例中mypvc.yaml文件。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mypvc annotations: csi.huawei.com/manageVolumeName: "*" # 存储资源名称 csi.huawei.com/manageBackendName: "*" # 存储后端名称 labels: provisioner: csi.huawei.com spec: accessModes: - ReadWriteOnce volumeMode: Filesystem storageClassName: mysc resources: requests: storage: 100Gi
执行命令,使用配置文件创建PVC。
kubectl create -f mypvc.yaml
等待一段时间后,执行以下命令,查看已经创建的PVC信息。
kubectl get pvc mypvc
命令结果示例如下。如果PVC的状态是“Bound”时,则说明该PVC已经创建成功,后续可以被Pod使用。
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s
- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考创建PVC时, PVC的状态为Pending。
- 建议每批次最多批量创建/删除100个PVC。
使用PVC
与动态卷供应使用PVC方式相同。