4.17. 配置没有在自定义资源定义中公开的项目


自定义资源定义(CRD)是您可以修改 AMQ Broker 的配置项目模式。您可以在对应的自定义资源(CR)实例中为 CRD 中的配置项目指定值。Operator 从 CR 实例生成每个代理容器的配置。

您可以通过将项目添加到 brokerProperties 属性,在 CRD 中包含没有在 CRD 中公开的配置项。brokerProperties 属性中包含的项目存储在 secret 中,该 secret 作为代理 Pod 上的属性文件挂载。在启动时,属性文件会在应用 XML 配置后应用到内部 java 配置 bean。

在以下示例中,单个属性应用于配置 bean。

spec:
  ...
  brokerProperties:
  - globalMaxSize=500m
  ...

在以下示例中,将多个属性应用到嵌套的配置 Bean 集合,以创建一个名为 target 的代理连接,该连接使用另一个代理镜像消息。

spec:
  ...
  brokerProperties
  - "AMQPConnections.target.uri=tcp://<hostname>:<port>"
  - "AMQPConnections.target.connectionElements.mirror.type=MIRROR"
  - "AMQPConnections.target.connectionElements.mirror.messageAcknowledgements=true"
  - "AMQPConnections.target.connectionElements.mirror.queueCreation=true"
  - "AMQPConnections.target.connectionElements.mirror.queueRemoval=true"
  ...
重要

使用 brokerProperties 属性提供对在 OpenShift Container Platform 上无法为 AMQ Broker 配置的许多配置项的访问。如果使用不正确,一些属性可能会对部署产生严重后果。在使用此方法配置属性时要谨慎。

流程

  1. 编辑部署的 CR。

    1. 使用 OpenShift Web 控制台:

      1. 输入以下命令:

        oc edit ActiveMQArtemis <CR instance name> -n <namespace>
    2. 使用 OpenShift Container Platform Web 控制台:

      1. 以具有特权在项目中为代理部署 CR 的用户登录到控制台。
      2. 在左侧窗格中,点 Operators Installed Operator
      3. Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch) operator。
      4. AMQ Broker 选项卡。
      5. 单击 ActiveMQArtemis 实例名称的名称。
      6. YAML 标签。

        在控制台中,会打开 YAML 编辑器,供您编辑 CR 实例。

  2. 在 CR 的 spec 部分中,添加一个 brokerProperties 元素,并以 camel-case 格式添加属性列表。例如:

    spec:
      ...
      brokerProperties:
      - globalMaxSize=500m
      - maxDiskUsage=85
      ...
  3. 保存 CR。
  4. (可选)检查配置的状态。

    1. 使用 OpenShift 命令行界面:

      1. 获取代理的状态条件。

        $ oc get activemqartemis -o yaml
    2. 使用 OpenShift Web 控制台:

      1. 导航到代理部署的 CR 的 status 部分。
    3. 检查 BrokerPropertiesApplied 状态信息中的 reason 字段的值。例如:

      - lastTransitionTime: "2023-02-06T20:50:01Z"
        message: ""
        reason: Applied
        status: "True"
        type: BrokerPropertiesApplied

      可能的值有:

      应用
      OpenShift Container Platform 将更新的 secret 传播到每个代理 Pod 上的属性文件中。
      AppliedWithError
      OpenShift Container Platform 将更新的 secret 传播到每个代理 Pod 上的属性文件中。但是,在 brokerProperties 配置中发现了一个错误。在 CR 的 status 部分中,检查 message 字段以识别无效属性并在 CR 中修正。
      OutOfSync
      OpenShift Container Platform 还没有将更新的 secret 传播到每个代理 Pod 上的属性文件中。当 OpenShift Container Platform 将更新的 secret 传播到每个 Pod 时,状态会被更新。
注意

代理会定期检查配置更改,包括对 Pod 上挂载的属性文件的更新,并在检测到任何更改时重新加载配置。但是,只有在代理启动时(如 JVM 设置)才会对属性进行更新,直到重启代理为止。有关 重新载入哪些属性的更多信息,请参阅配置 AMQ Broker 中的重新加载配置更新

其它信息

有关您可以在 CR 中的 brokerProperties 元素中配置的属性列表,请参阅配置 AMQ Broker 中的 Broker 属性

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.