×

概述

OpenShift Container Platform 能够使用 OpenStack Cinder 的容器存储接口 (CSI) 驱动程序来配置持久卷 (PV)。

建议您在使用容器存储接口 (CSI) 操作符和驱动程序时,熟悉持久性存储配置 CSI 卷

为了创建挂载到 OpenStack Cinder 存储资源的 CSI 配置的 PV,OpenShift Container Platform 会在openshift-cluster-csi-drivers命名空间中安装 OpenStack Cinder CSI 驱动程序操作符和 OpenStack Cinder CSI 驱动程序。

  • OpenStack Cinder CSI 驱动程序操作符提供了一个 CSI 存储类,您可以使用它来创建 PVC。如果需要,您可以禁用此默认存储类(请参阅管理默认存储类)。

  • OpenStack Cinder CSI 驱动程序使您可以创建和挂载 OpenStack Cinder PV。

OpenShift Container Platform 为 Cinder 内置卷插件提供自动迁移到其等效的 CSI 驱动程序。更多信息,请参阅CSI 自动迁移

关于 CSI

存储供应商传统上将存储驱动程序作为 Kubernetes 的一部分提供。通过容器存储接口 (CSI) 的实现,第三方提供商可以使用标准接口交付存储插件,而无需更改核心 Kubernetes 代码。

CSI 操作符为 OpenShift Container Platform 用户提供了内置卷插件无法实现的存储选项,例如卷快照。

OpenShift Container Platform 默认使用 CSI 插件来配置 Cinder 存储。

将 OpenStack Cinder CSI 设置为默认存储类

OpenStack Cinder CSI 驱动程序使用cinder.csi.openstack.org参数键来支持动态配置。

为了在 OpenShift Container Platform 中启用 OpenStack Cinder CSI 配置,建议您使用standard-csi覆盖默认的内置存储类。或者,您可以创建持久卷声明 (PVC) 并将存储类指定为“standard-csi”。

在 OpenShift Container Platform 中,默认存储类引用的是内置的 Cinder 驱动程序。但是,如果启用了 CSI 自动迁移,则使用默认存储类创建的卷实际上使用的是 CSI 驱动程序。

步骤

请按照以下步骤应用 `standard-csi` 存储类,以覆盖默认的内置存储类。

  1. 列出存储类

    $ oc get storageclass
    示例输出
    NAME                   PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    standard(default)      cinder.csi.openstack.org   Delete          WaitForFirstConsumer   true                   46h
    standard-csi           kubernetes.io/cinder       Delete          WaitForFirstConsumer   true                   46h
  2. 将默认存储类的注释 `storageclass.kubernetes.io/is-default-class` 的值更改为 `false`,如下例所示

    $ oc patch storageclass standard -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
  3. 通过添加或修改注释为 `storageclass.kubernetes.io/is-default-class=true`,将另一个存储类设置为默认存储类。

    $ oc patch storageclass standard-csi -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
  4. 验证 PVC 现在默认引用的是 CSI 存储类

    $ oc get storageclass
    示例输出
    NAME                   PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    standard               kubernetes.io/cinder       Delete          WaitForFirstConsumer   true                   46h
    standard-csi(default)  cinder.csi.openstack.org   Delete          WaitForFirstConsumer   true                   46h
  5. 可选:您可以定义一个新的 PVC,而无需指定存储类

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: cinder-claim
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi

    未指定特定存储类的 PVC 将使用默认存储类自动进行配置。

  6. 可选:新文件配置完成后,在您的集群中创建它

    $ oc create -f cinder-claim.yaml
更多资源