Menu Close

4.6. OpenStack Manila CSI Driver Operator

4.6.1. 概述

OpenShift Container Platform 可以使用 OpenStack Manila 共享文件系统服务的 Container Storage Interface(CSI)驱动程序置备持久性卷(PV)。

建议您熟悉 PV持久性卷声明(PVC)动态置备RBAC 授权的概念。

在创建 PVC 前,必须安装 Manila CSI Driver Operator。Operator 为动态置备所需的所有可用 Manila 共享类型创建所需的存储类。

安装 Operator 后,还必须创建 OpenShift Container Platform 集群所需的 ManilaDriver 自定义资源(CR)。

4.6.2. 安装 Manila CSI Driver Operator

默认情况下,Manila Container Storage Interface(CSI)Driver Operator 不会在 OpenShift Container Platform 中安装 。使用以下流程来安装和配置这个 Operator,从而在集群中启用 OpenStack Manila CSI 驱动。

先决条件

  • 访问 OpenShift Container Platform web 控制台。
  • 底层 Red Hat OpenStack Platform(RHOSP)基础架构云部署 Manila 服务 NFS 共享。

流程

按照以下步骤通过 web 控制台安装 Manila CSI Driver Operator:

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 导航至 OperatorsOperatorHub
  3. 在过滤器框中键入 Manila CSI Driver Operator 以找到 Operator。
  4. 点击 Install
  5. Install Operator 页中,从 Installed Namespace 下拉菜单中选择 openshift-manila-CSI-driver-operator
  6. Update ChannelApproval Strategy 的值调整为所需的值。唯一支持的 Installation ModeAll namespaces on the cluster
  7. 点击 Install

完成后,Manila CSI Driver Operator 会在 web 控制台的 Installed Operators 部分列出。

4.6.3. 安装 OpenStack Manila CSI 驱动程序

OpenStack Manila Container Storage Interface(CSI)驱动程序是一个自定义资源(CR),它可让您创建并挂载 OpenStack Manila 共享。它还支持创建快照并从快照中恢复共享。

默认情况下,这个驱动程序不会在 OpenShift Container Platform 中安装,它必须在安装 Manila CSI Driver Operator 后安装。

先决条件

  • 已安装了 Manila CSI Driver Operator。
  • 访问 OpenShift Container Platform web 控制台或命令行 (CLI)。

UI 流程

按照以下步骤通过 web 控制台安装 Manila CSI 驱动程序:

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 导航到 OperatorsInstalled Operators
  3. 从列表中找到 Manila CSI Driver Operator 并点 Operator 链接。
  4. 创建驱动程序:

    1. Details 选项卡中,点 Create Instance
    2. 可选: 选择 YAML 视图 以对 ManilaDriver 对象模板进行修改(如添加通知)。
    3. 点 Create 即可完成。

      重要

      重命名集群和指定特定命名空间是不支持的功能。

CLI 过程

要从 CLI 安装 Manila CSI 驱动程序,请完成以下步骤:

  1. 创建一个对象 YAML 文件,如 maniladriver.yaml,来定义 ManilaDriver:

    maniladriver 示例

      apiVersion: csi.openshift.io/v1alpha1
      kind: ManilaDriver
      metadata:
        name: cluster 1

    1
    重命名集群和指定特定命名空间是不支持的功能。
  2. 通过指定您在上 一 步中创建的文件,在 OpenShift Container Platform 集群中创建 ManilaDriver CR 对象:

    $ oc create -f maniladriver.yaml

在 Operator 安装完成后,Manila CSI 驱动程序会在 OpenShift Container Platform 上部署,以便在 Red Hat OpenStack Platform(RHOSP)中动态置备 RWX 持久性卷。

验证

  1. 通过输入以下命令验证 Manila 驱动程序 CR 是否已成功创建:

    $ oc get all -n openshift-manila-csi-driver
    NAME                                                              READY   STATUS    RESTARTS   AGE
    pod/csi-nodeplugin-nfsplugin-lzvpm                                1/1     Running   0          18h
    pod/csi-nodeplugin-nfsplugin-slvg2                                1/1     Running   0          18h
    pod/csi-nodeplugin-nfsplugin-xmps9                                1/1     Running   0          18h
    pod/openstack-manila-csi-controllerplugin-7d4f5d985b-mw4x5        3/3     Running   0          17h
    pod/openstack-manila-csi-nodeplugin-6xchs                         2/2     Running   0          18h
    pod/openstack-manila-csi-nodeplugin-bkcmz                         2/2     Running   0          18h
    pod/openstack-manila-csi-nodeplugin-rlpps                         2/2     Running   0          18h
    
    NAME                                                              DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
    daemonset.apps/csi-nodeplugin-nfsplugin                           3       3       3     3          3                       18h
    daemonset.apps/openstack-manila-csi-nodeplugin                    3       3       3     3          3                       18h
    
    NAME                                                              READY UP-TO-DATE AVAILABLE AGE
    deployment.apps/openstack-manila-csi-controllerplugin             1/1   1          1         18h
    
    NAME                                                              DESIRED CURRENT READY AGE
    replicaset.apps/openstack-manila-csi-controllerplugin-7d4f5d985b  1       1       1     17h
  2. 输入以下命令验证存储类是否已成功创建:

    $ oc get storageclasses | grep -E "NAME|csi-manila-"
    NAME              PROVISIONER               RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION  AGE
    csi-manila-gold   manila.csi.openstack.org  Delete          Immediate           false                 18h

4.6.4. 动态置备 Manila CSI 卷

OpenShift Container Platform 为每个可用 Manila 共享类型安装一个 StorageClass。

所创建的 YAML 文件与 Manila 及其 Container Storage Interface(CSI)插件完全分离。作为应用程序开发人员,您可以动态置备 ReadWriteMany(RWX)存储,并部署应用程序 Pod 使用 YAML 清单安全地使用存储。您还可以置备其他访问模式,如 ReadWriteOnce(RWO)。

在您的内部环境中,可以使用与 AWS、GCP、Azure 和其他平台中的 OpenShift Container Platform 使用的相同的 Pod 和持久性卷声明(PVC)定义(PVC 定义中的存储类引用除外)。

先决条件

  • Red Hat OpenStack Platform(RHOSP)被部署为带有适当的 Manila 共享基础架构,以便使用它来在 OpenShift Container Platform 中动态置备和挂载卷。

流程 (UI)

使用 web 控制台动态创建 Manila CSI 卷:

  1. 在 OpenShift Container Platform 控制台中,点击 StoragePersistent Volume Claims
  2. 在持久性卷声明概述页中,点 Create Persistent Volume Claim
  3. 在接下来的页面中定义所需选项。

    1. 选择适当的 StorageClass。
    2. 输入存储声明的唯一名称。
    3. 选择访问模式来指定您要创建的 PVC 的读写访问权限。

      重要
      • 如果您希望此 PVC 所使用的持久性卷(PV)可以被挂载到集群中的多个节点上的多个 Pod 时,使用 RWX。
      • 如果要防止其他 Pod 被动态置备,请使用 RWO 模式。
  4. 定义存储声明的大小。
  5. 点击 Create 创建持久性卷声明,并生成一个持久性卷。

流程 (CLI)

使用命令行界面(CLI)动态创建 Manila CSI 卷:

  1. 使用以下 YAML 描述的 PersistentVolumeClaim 对象创建并保存一个文件:

    pvc-manila.yaml

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-manila
    spec:
      accessModes: 1
        - ReadWriteMany
      resources:
        requests:
      	storage: 10Gi
      storageClassName: csi-manila-gold 2

    1
    如果您希望此 PVC 所使用的持久性卷(PV)可以被挂载到集群中的多个节点上的多个 Pod 时,使用 RWX。使用 ReadWriteOnce(RWO)模式以防止动态置备其他 Pod。
    2
    置备存储后端的存储类的名称。Manila StorageClasses 由 Operator 置备,并包含 csi-manila- 前缀。
  2. 运行以下命令,创建上一步中保存的对象:

    $ oc create -f pvc-manila.yaml

    创建了一个新的 PVC。

  3. 运行以下命令验证卷已创建并就绪:

    $ oc get pvc pvc-manila

    pvc-manila 显示它的状态为 Bound

现在,您可以使用新的 PVC 来配置 Pod。

4.6.5. 卸载 Manila CSI Driver Operator

在卸载 Manila Container Storage Interface(CSI)Driver Operator 之前,您必须删除所有 Operator 正在使用的持久性卷声明(PVC)。

先决条件

  • 访问 OpenShift Container Platform Web 控制台。

流程

从 web 控制台卸载 Manila CSI Driver Operator:

  1. 登录到 web 控制台。
  2. 导航到 StoragePersistent Volume claim
  3. 选择 Manila CSI Driver Operator 使用中的 PVC 并点 Delete
  4. OperatorsInstalled Operators 页中,在 Filter by name 项中输入 Manila CSI 来找到 Operator。然后点击它。
  5. Installed Operators 详情面的右侧,从 Actions 下拉菜单中选择 Uninstall Operator
  6. Uninstall Operator 窗口提示时,点 Uninstall 按钮从命名空间中删除 Operator。Operator 在集群中部署的任何应用程序都需要手动清理。

完成后,Manila CSI Driver Operator 将不会在 web 控制台的 Installed Operators 部分列出。

其他资源