挂载动态存储卷是基于 Storage Class 实现的,在挂载动态存储卷前,需要先创建存储类型(StorageClass)。
说明
目前 LHC 未对接阿里云的 NAS 及云盘存储,若要使用存储功能,需要安装第三方存储插件。
前提条件
步骤一:创建 PVC
您需要在创建 Pod 前创建存储声明,供创建 Pod 时使用。PVC 创建后,会有对应的 PV 自动创建出来。
云盘类型 PVC 样例
apiVersion: v1
kind:PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
-ReadWriteOnce
resources:
requests:
storage:25Gi
storageClassName: csi-disk-efficiency # csi-disk-ssd
参数说明
参数名 | 参数说明 | 是否必选 | 备注 |
---|---|---|---|
accessModes | 只读或读写 | 否 | 仅支持:ReadWriteOnce |
storage | 存储空间大小 | 是 | 遵循后端存储限制,参考 阿里云云盘限制。对于 csi-disk-ssd 和 csi-disk-efficiency 两种 Storage Class,最小的存储空间都是 20 GiB,否则 PV 无法创建成功,PVC 会一直处于 pending 状态。 |
storageClassName | Storage Class 名称 | 是 | 必须指定一个已经存在的名字,否则云盘无法创建。 |
NAS 类型 PVC 样例
apiVersion: v1
kind:PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
-ReadWriteMany
resources:
requests:
storage:25Gi
storageClassName: csi-nas-capacity # 或者 csi-nas-performance
重要
对于 NAS 存储,其对应的存储空间限制能力将不会生效,不会限制容器在运行时数据的写入量,仅用做 PV-PVC 在绑定过程的匹配。
参数说明
参数名 | 参数说明 | 是否必选 | 备注 |
---|---|---|---|
accessModes | 只读或读写 | 否 | 可选值:- ReadWriteOnce- ReadWriteMany |
storage | 存储空间大小 | 是 | 遵循后端存储限制,如阿里云 NAS 限制。文件系统容量上限都为 1 PB(性能型)或者 10 PB(容量型)。 |
storageClassName | Storage Class 名称 | 是 | 必须指定一个已经存在的名字,否则云盘无法创建。 |
步骤二:使用 PVC
您可以在创建 Pod 时使用 PVC 挂载动态数据卷。
apiVersion: v1
kind: Pod
metadata:
name: pod-with-nas
labels:
app: nginx
spec:
tolerations:
- key: node.kubernetes.io/unreachable
effect: NoSchedule
operator: Exists
automountServiceAccountToken: false
containers:
- name: busybox
image: 'reg-cnsh-nf.cloud.alipay.com/library/busybox'
command: ["sleep","3000"]
ports:
- containerPort: 80
volumeMounts:
- name: data
mountPath: "/data"
volumes:
- name: data
persistentVolumeClaim:
claimName: test-pvc
容器运行后,可以看到 Pod 的状态为 Running:
# kubectl get pod
NAME READY STATUS RESTARTS AGE
pod-with-nas 1/1Running0103s
文档内容是否对您有帮助?