第 2 章 挂载外部文件以提供配置数据


您可以使用 extraMounts 参数在 OpenShift (RHOSO)部署中挂载外部文件以进行配置或身份验证数据。使用此参数将 Red Hat Ceph Storage 配置文件分发给服务,访问用于临时存储的外部 NFS 共享,或者在持久文件系统上运行存储后端驱动程序。

示例情境包括:

  • 将 Red Hat Ceph Storage 集群配置和密钥环文件分发到 Block Storage (cinder)、Image (glance)和 Compute (nova)服务
  • 在消耗节点磁盘空间时访问外部 NFS 共享以进行临时镜像存储
  • 配置存储后端驱动程序以在持久文件系统上运行,以在系统重启后保留数据

extraMounts 参数可在以下级别上定义:

  • Service - 一个 Red Hat OpenStack Services on OpenShift (RHOSO)服务,如 GlanceCinderManila
  • 组件 - 服务的组件,如 GlanceAPICinderAPICinderSchedulerManilaShareCinderBackup
  • 实例 - 特定组件的单个实例。例如,您的部署可能有两个组件 ManilaShare 实例,名为 share1share2实例 级别传播代表与同一组件类型一部分的实例关联的 Pod。

propagation 字段用于描述如何应用定义。如果没有使用 propagation 字段,则定义会传播到定义它的级别下的每个级别:

  • 服务 级别定义传播到 组件和 实例 级别。
  • 组件 级别定义传播到 实例 级别。

以下是 extraMounts 定义的一般结构:

extraMounts:
  - name: <extramount-name>
    region: <openstack-region>
    extraVol:
      - propagation:
        - <location>
        extraVolType: <Ceph | Nfs | Undefined>
        volumes:
        - <pod-volume-structure>
        mounts:
        - <pod-mount-structure>
Copy to Clipboard Toggle word wrap
  • name 是命名 extraMounts 定义的字符串。这用于机构目的,无法从清单的其他部分引用。这是一个可选属性。
  • region 是定义 extraMounts 定义的 RHOSO 区域的字符串。这是一个可选属性。
  • propagation 描述了如何应用定义。如果没有使用 propagation 字段,则定义会传播到定义它的级别下的每个级别。这是一个可选属性。
  • extraVolType 是一个字符串,可帮助管理员对属于列表的 extraVol 条目的挂载组进行分类或标记。此参数没有定义值,但 CephNfsUndefined 的值比较常见。这是一个可选属性。
  • volumes 是定义 Red Hat OpenShift 卷源的列表。此字段的结构与 Pod 中的 volumes 部分相同。结构取决于定义的卷类型。本节中定义的名称用作 挂载 部分的参考。
  • mounts 是代表在 Pod 中挂载 volumeSource 的路径的挂载点列表。volumes 部分中卷的名称用作参考,以及应挂载它的路径。此属性的结构与 Pod 的 volumeMounts 属性相同。

2.1. 使用 extraMounts 属性挂载外部文件

配置 OpenStackControlPlane 自定义资源(CR),以访问 OpenShift (RHOSO)部署的 Red Hat OpenStack Services 中的配置或身份验证目的的外部数据。

流程

  1. 在工作站上打开 OpenStackControlPlane CR 文件 openstack_control_plane.yaml
  2. extraMounts 属性添加到 OpenStackControlPlane CR 服务定义中。

    以下示例演示了添加 extraMounts 属性:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    metadata:
      name: openstack
    spec:
      extraMounts:
        - name: v1
          region: r1
          extraVol:
            extraVolType: Ceph
    Copy to Clipboard Toggle word wrap
  3. 添加 propagation 字段,以指定服务定义中 extraMount 属性适用的位置。

    以下示例将 propagation 字段添加到上例中:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    metadata:
      name: openstack
    spec:
      glance:
      ...
      extraMounts:
        - name: v1
          region: r1
          extraVol:
            - propagation:
              - Glance
              extraVolType: Ceph
    Copy to Clipboard Toggle word wrap

    propagation 字段可以有以下值之一:

    • 服务级别传播:

      • Glance
      • Cinder
      • Manila
      • Horizon
      • Neutron
    • 组件级别传播:

      • CinderAPI
      • CinderScheduler
      • CinderVolume
      • CinderBackup
      • GlanceAPI
      • ManilaAPI
      • ManilaScheduler
      • ManilaShare
      • NeutronAPI
    • 后端传播:

      • CinderVolumeManilaShareGlanceAPI 映射中的任何后端。
  4. 定义卷源:

    以下示例演示了如何将 volumes 字段添加到上例中,以向镜像服务(glance)提供 Red Hat Ceph Storage secret:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    metadata:
      name: openstack
    spec:
      extraMounts:
        - name: v1
          region: r1
          extraVol:
            extraVolType: Ceph
            volumes:
              - name: ceph
                secret:
                  secretName: ceph-conf-files
    Copy to Clipboard Toggle word wrap

    其中:

    ceph
    是 Red Hat Ceph Storage secret 名称。
  5. 定义在 pod 中挂载不同卷的位置。

    以下示例演示了在上例中添加 mount 字段,以提供包含 Red Hat Ceph Storage secret 的文件的位置和名称:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    metadata:
      name: openstack
    spec:
      extraMounts:
        - name: v1
          region: r1
          extraVol:
            extraVolType: Ceph
            volumes:
              - name: ceph
                secret:
                  secretName: ceph-conf-files
              mounts:
              - name: ceph
                mountPath: "/etc/ceph"
                readOnly: true
    Copy to Clipboard Toggle word wrap

    其中:

    "/etc/ceph"
    是 secret 文件的位置。
  6. 更新 control plane:

    $ oc apply -f openstack_control_plane.yaml -n openstack
    Copy to Clipboard Toggle word wrap
  7. 等待 RHOCP 创建与 OpenStackControlPlane CR 相关的资源。运行以下命令来检查状态:

    $ oc get openstackcontrolplane -n openstack
    Copy to Clipboard Toggle word wrap

    当状态为 "Setup complete" 时,会创建 OpenStackControlPlane 资源。

    提示

    -w 选项附加到 get 命令的末尾,以跟踪部署进度。

  8. 通过查看 openstack 命名空间中的 pod 确认 control plane 已部署:

    $ oc get pods -n openstack
    Copy to Clipboard Toggle word wrap

    当所有 pod 都已完成或运行时,会部署 control plane。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat