4.6. 配置代理存储要求


要在基于 Operator 的代理部署中使用持久性存储,您可以在用于创建部署的自定义资源(CR)实例中将 persistenceEnabled 设置为 true。如果您在 OpenShift 集群中没有容器原生虚拟化,则需要手动置备持久性卷(PV),并确保 Operator 可以使用持久性卷声明(PVC)声明它们。如果要创建带有持久性存储的两个代理集群,例如,您需要有两个 PV 可用。

重要

在 OpenShift Container Platform 中手动置备 PV 时,请确保将每个 PV 的 reclaim 策略设置为 Retain。如果 PV 的 reclaim 策略没有设置为 Retain,且用于声明 PV 的 PVC 已被删除,则也会删除 PV。删除 PV 会导致卷中的任何数据丢失。如需有关设置重新声明策略的更多信息,请参阅 OpenShift Container Platform 文档中的了解持久性存储

默认情况下,PVC 从为集群配置的默认存储类获取每个代理的 2 GiB 存储。您可以覆盖 PVC 中请求的默认大小和存储类,但一次只能部署 CR 在 CR 中配置新值。

4.6.1. 配置代理存储大小和存储类

以下流程演示了如何为代理部署配置自定义资源(CR)实例,以指定每个代理用于持久消息存储所需的持久性卷声明(PVC)的大小和存储类。

注意

如果在部署 AMQ Broker 后更改了 CR 中的存储配置,则更新的配置不会重新应用到现有的 Pod。但是,更新的配置会应用到在扩展部署时创建的新 Pod。

先决条件

  • 您应该熟悉如何使用 CR 实例创建基本代理部署。请参阅 第 3.4.1 节 “部署基本代理实例”
  • 您必须已置备持久性卷(PV),并使其可以被 Operator 声明。例如,如果要创建带有持久性存储的两个代理集群,则需要有两个 PV 可用。

    如需有关置备持久性存储的更多信息,请参阅 OpenShift Container Platform 文档中的了解持久性存储

流程

  1. 为代理部署开始配置自定义资源(CR)实例。

    1. 使用 OpenShift 命令行界面:

      1. 以具有特权的用户身份登录 OpenShift,可在您要创建部署的项目中部署 CR。

        oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      2. 打开名为 broker_activemqartemis_cr.yaml 的示例 CR 文件,该文件包含在您下载并提取的 Operator 安装存档的 deploy/crs 目录中。
    2. 使用 OpenShift Container Platform Web 控制台:

      1. 以具有特权的用户身份登录控制台,可在您要在其中创建部署的项目中部署 CR。
      2. 根据主代理 CRD 启动新的 CR 实例。在左侧窗格中,单击 Administration Custom Resource Definitions
      3. 单击 ActiveMQArtemis CRD。
      4. 实例 选项卡。
      5. 单击 Create ActiveMQArtemis

        在控制台中,会打开 YAML 编辑器,允许您配置 CR 实例。

    对于基本代理部署,配置可能类似以下配置。

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemis
    metadata:
      name: ex-aao
    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
    Copy to Clipboard Toggle word wrap

    broker_activemqartemis_cr.yaml 示例 CR 文件中观察,image 属性被设置为 占位符 的默认值。此值表示,默认情况下,image 属性没有指定用于部署的代理容器镜像。要了解 Operator 如何确定要使用的适当代理容器镜像,请参阅 第 2.7 节 “Operator 如何选择容器镜像”

  2. 要指定代理存储大小,在 CR 的 deploymentPlan 部分中,添加一个 storage 部分。添加 size 属性并指定值。例如:

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
        storage:
          size: 4Gi
    Copy to Clipboard Toggle word wrap
    storage.size
    每个代理 Pod 需要的持久性卷声明(PVC)的大小(以字节为单位)。此属性仅在将 persistenceEnabled 设置为 true 时才适用。您指定的值 必须使用 字节表示法(如 K、M、G)或二进制等效(Ki、Mi、Gi)包含单元。
  3. 要指定每个代理 Pod 需要的存储类,在 storage 部分,添加一个 storageClassName 属性并指定一个值。例如:

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
        storage:
          size: 4Gi
          storageClassName: gp3
    Copy to Clipboard Toggle word wrap
    storage.storageClassName

    在持久性卷声明(PVC)中请求的存储类的名称。存储类为管理员提供描述和分类可用存储的方法。例如,不同的存储类可能会映射到特定的服务质量级别、备份策略等。

    如果没有指定存储类,PVC 会声明带有集群配置默认存储类的持久性卷。

    注意

    如果您指定了存储类,只有在卷的存储类与指定存储类匹配时才会声明持久性卷。

  4. 部署 CR 实例。

    1. 使用 OpenShift 命令行界面:

      1. 保存 CR 文件。
      2. 切换到您要在其中创建代理部署的项目。

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. 创建 CR 实例。

        $ oc create -f <path/to/custom_resource_instance>.yaml
        Copy to Clipboard Toggle word wrap
    2. 使用 OpenShift Web 控制台:

      1. 配置完 CR 后,点 Create
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat