5.2. CSI inline 临时卷
借助容器存储接口(CSI)内联临时卷,您可以定义 Pod
规格,在 pod 部署时创建内联临时卷,并在 pod 销毁时删除它们。
此功能仅可用于受支持的 Container Storage Interface (CSI) 驱动程序。
CSI 内联临时卷只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/。
5.2.1. CSI 内联临时卷概述
通常,由 Container Storage Interface(CSI)驱动程序支持的卷只能用于 PersistentVolume
和 PersistentVolumeClaim
对象的组合。
通过此功能,可以在 Pod
规格中直接指定 CSI 卷,而不是在 PersistentVolume
中指定。内联卷是临时的,在 pod 重启后不会保留。
5.2.1.1. 支持限制
在默认情况下,OpenShift Container Platform 支持 CSI 内联临时卷,但有以下限制:
- 仅支持 CSI 驱动程序。不支持 in-tree 和 FlexVolumes。
- OpenShift Container Platform 不包括任何 CSI 驱动程序。请使用由开源社区或存储供应商提供的 CSI 驱动程序。请根据 CSI 驱动程序提供的说明进行操作。
-
CSI 驱动程序可能没有实现内联卷功能,包括
Ephemeral
能力。详情请查看 CSI 驱动程序文档。
5.2.2. 在 pod 规格中嵌入 CSI 内联临时卷
您可以在 OpenShift Container Platform 中的 Pod
规格中嵌入 CSI 内联临时卷。在运行时,嵌套的内联卷遵循与其关联的 Pod 的临时生命周期,以便 CSI 驱动程序在 Pod 创建和销毁时处理卷操作的所有阶段。
流程
-
创建
Pod
对象定义,并将其保存到文件中。 在该文件中嵌入 CSI 内联临时卷。
my-csi-app.yaml
kind: Pod apiVersion: v1 metadata: name: my-csi-app spec: containers: - name: my-frontend image: busybox volumeMounts: - mountPath: "/data" name: my-csi-inline-vol command: [ "sleep", "1000000" ] volumes: 1 - name: my-csi-inline-vol csi: driver: inline.storage.kubernetes.io volumeAttributes: foo: bar
- 1
- Pod 使用的卷的名称。
创建在上一步中保存的对象定义文件。
$ oc create -f my-csi-app.yaml