Menu Close

4.2. CSI inline 临时卷

借助容器存储接口(CSI)内联临时卷,您可以定义 Pod 规格,在 pod 部署时创建内联临时卷,并在 pod 销毁时删除它们。

此功能仅可用于受支持的 Container Storage Interface (CSI) 驱动程序。

重要

CSI 内联临时卷只是一个技术预览功能。技术预览功能不被红帽产品服务等级协议 (SLA) 支持,且可能在功能方面有缺陷。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的详情,请参阅 https://access.redhat.com/support/offerings/techpreview/

4.2.1. CSI 内联临时卷概述

通常,由 Container Storage Interface(CSI)驱动程序支持的卷只能用于 PersistentVolumePersistentVolumeClaim 对象的组合。

通过此功能,可以在 Pod 规格中直接指定 CSI 卷,而不是在 PersistentVolume 中指定。内联卷是临时的,在 pod 重启后不会保留。

4.2.1.1. 支持限制

在默认情况下,OpenShift Container Platform 支持 CSI 内联临时卷,但有以下限制:

  • 仅支持 CSI 驱动程序。不支持 in-tree 和 FlexVolumes。
  • OpenShift Container Platform 不包括任何 CSI 驱动程序。请使用由开源社区或存储供应商提供的 CSI 驱动程序。请根据 CSI 驱动程序提供的说明进行操作。
  • CSI 驱动程序可能没有实现内联卷功能,包括 Ephemeral 能力。详情请查看 CSI 驱动程序文档。

4.2.2. 在 Pod 规格中嵌入 CSI 内联临时卷

您可以在 OpenShift Container Platform 中的 Pod 规格中嵌入 CSI 内联临时卷。在运行时,嵌套的内联卷遵循与其关联的 Pod 的临时生命周期,以便 CSI 驱动程序在 Pod 创建和销毁时处理卷操作的所有阶段。

流程

  1. 创建 Pod 对象定义,并将其保存到文件中。
  2. 在该文件中嵌入 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 使用的卷的名称。
  3. 创建在上一步中保存的对象定义文件。

    $ oc create -f my-csi-app.yaml