配置动态持久卷
动态卷供应(Dynamic Volume Provisioning)允许按需创建存储卷。动态卷供应依赖StorageClass对象。 集群管理员可以根据需要定义多个StorageClass对象,在声明PV或者PVC时,指定满足业务要求的StorageClass。华为CSI在从华为存储设备上申请资源时,会根据StorageClass的预置定义,创建满足业务要求的存储资源。
配置说明
请根据以下步骤配置使用动态持久卷:
前置准备
在开始配置动态持久卷前,请参考 配置存储类 ,完成StorageClass的配置。
配置PVC
准备PVC配置文件mypvc.yaml,示例如下,其他配置参数请参考 表1 。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mypvc 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。
表 1 配置动态卷持久卷PVC参数说明
以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。 | ||||
卷模式。可选参数。 当使用LUN类型的卷时,支持配置以下类型:
|
| |||
PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表2;当使用的是XFS文件系统时,容量限制见表3。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。 | ||||
|
|
表 2 ext4容量的规格
表 3 XFS容量的规格
使用PVC
在完成PVC创建后,就可以使用PVC来创建Pod。如下示例是一个简单的使用PVC示例,在该示例中,创建的Pod使用了刚刚创建的_ mypvc_。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx:alpine
name: container-0
volumeMounts:
- mountPath: /tmp
name: pvc-mypvc
restartPolicy: Always
volumes:
- name: pvc-mypvc
persistentVolumeClaim:
claimName: mypvc # name of PVC
若使用PVC批量创建Pod,Pod长时间处于ContainerCreating状态,且huawei-csi-node服务状态为OOMKilled,说明当前huawei-csi-node服务内存不足。请根据 表1 ,将huawei-csi-node内存限制增大。