搜索

4.6. 配置代理存储要求

download PDF

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

重要

当您在 OpenShift Container Platform 中手动置备 PV 时,请确保将每个 PV 的重新声明策略设置为 Retain。如果 PV 的 reclaim 策略没有设置为 Retain,且 Operator 用于声明 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. 以具有在您要创建部署的项目中部署 CR 的用户身份登录 OpenShift。

        oc login -u <user> -p <password> --server=<host:port>
      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

    观察 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
    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
    storage.storageClassName

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

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

    注意

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

  4. 部署 CR 实例。

    1. 使用 OpenShift 命令行界面:

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

        $ oc project <project_name>
      3. 创建 CR 实例。

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

      1. 配置完 CR 后,点 Create
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.