6.4. 通过指定 AMQ Broker 版本来升级代理容器镜像


以下流程演示了如何通过指定 AMQ Broker 版本来为基于 Operator 的代理部署升级代理容器镜像。例如,您可以将 Operator 升级到 AMQ Broker 7.8.5 的最新版本,但 CR 中的 spec.upgrades.enabled 属性已设置为 truespec.version 属性指定 7.7.07.8.0要升级 代理容器镜像,您需要手动指定一个新的 AMQ Broker 版本(如 7.8.5)。当您指定 AMQ Broker 的新版本时,Operator 会自动选择与此版本对应的代理容器镜像。

先决条件

步骤

  1. 编辑代理部署的主代理 CR 实例。

    1. 使用 OpenShift 命令行界面:

      1. 以具有编辑和部署 CR 的用户身份登录到 OpenShift,以供代理部署。

        $ oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard
      2. 在文本编辑器中,打开用于代理部署的 CR 文件。例如,这可能是您之前下载并提取的 Operator 安装的 deploy/crs 目录中包含的 broker_activemqartemis_cr.yaml 文件。
    2. 使用 OpenShift Container Platform Web 控制台:

      1. 以有权编辑和部署项目中 CR 的用户身份登录控制台,以进行代理部署。
      2. 在左侧窗格中,单击 Administration Custom Resource Definitions
      3. 单击 ActiveMQArtemis CRD。
      4. 实例 选项卡。
      5. 查找与项目命名空间对应的 CR 实例。
      6. 对于 CR 实例,在右侧点击 More Options 图标(three vertical dots)。选择 Edit ActiveMQArtemis

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

  2. 要指定将代理容器镜像升级到的 AMQ Broker 版本,请为 CR 的 spec.version 属性设置一个值。例如:

    spec:
        version: 7.8.5
        ...
    Copy to Clipboard
  3. 在 CR 的 spec 部分,找到 upgrade 部分。如果这个部分还没有包含在 CR 中,请添加它。

    spec:
        version: 7.8.5
        ...
        upgrades:
    Copy to Clipboard
  4. 确保 upgrade 部分包含 enabledminor 属性。

    spec:
        version: 7.8.5
        ...
        upgrades:
            enabled:
            minor:
    Copy to Clipboard
  5. 要启用基于指定版本的 AMQ Broker 的代理容器镜像升级,请将 enabled 属性的值设置为 true

    spec:
        version: 7.8.5
        ...
        upgrades:
            enabled: true
            minor:
    Copy to Clipboard
  6. 要定义代理的升级行为,请为 minor 属性设置一个值。

    1. 要允许在 次要 AMQ Broker 版本间升级,请将 minor 的值设置为 true

      spec:
          version: 7.8.5
          ...
          upgrades:
              enabled: true
              minor: true
      Copy to Clipboard

      例如,假设当前代理容器镜像对应于 7.7.0,以及一个与为 spec.version 指定的 7.8.5 版本对应的新镜像。在这种情况下,Operator 决定在 7.77.8 次版本间有可用的升级。根据前面的设置,允许次版本间的升级,Operator 会升级代理容器镜像。

      相反,假设当前代理容器镜像对应于 7.8.0 和新镜像,对应于为 spec.version 指定的 7.8.5 版本。在这种情况下,Operator 决定在 7.8.07.8.5 微版本之间有可用的升级。根据前面的设置,这只允许在次版本间升级,Operator 不会 升级代理容器镜像。

    2. 要允许在 AMQ Broker 版本间升级,请将 minor 的值设为 false

      spec:
          version: 7.8.5
          ...
          upgrades:
              enabled: true
              minor: false
      Copy to Clipboard

      例如,假设当前代理容器镜像对应于 7.7.0,以及一个与为 spec.version 指定的 7.8.5 版本对应的新镜像。在这种情况下,Operator 决定在 7.77.8 次版本间有可用的升级。根据前面的设置,这不允许在次版本之间升级(这只在微版本之间升级),Operator 不会 升级代理容器镜像。

      相反,假设当前代理容器镜像对应于 7.8.0 和新镜像,对应于为 spec.version 指定的 7.8.5 版本。在这种情况下,Operator 决定在 7.8.07.8.5 微版本之间有可用的升级。根据允许在微版本之间升级的设置,Operator 会升级代理容器镜像。

  7. 将更改应用到 CR。

    1. 使用 OpenShift 命令行界面:

      1. 保存 CR 文件。
      2. 切换到代理部署的项目。

        $ oc project <project_name>
        Copy to Clipboard
      3. 应用 CR。

        $ oc apply -f <path/to/broker_custom_resource_instance>.yaml
        Copy to Clipboard
    2. 使用 OpenShift Web 控制台:

      1. 编辑完 CR 后,点击 Save

    应用 CR 更改时,Operator 首先验证升级到为 spec.version 指定的 AMQ Broker 版本是否可用于您现有的部署。如果您指定了一个要升级的 AMQ Broker 的无效版本(例如:还不可用的版本),Operator 会记录警告信息,且不进行进一步操作。

    但是,如果升级到指定的版本,且为 upgrade. enabled 和 upgrade. minor 指定的值允许升级,Operator 会升级部署中的每个代理,以使用与新 AMQ Broker 版本对应的代理容器镜像。

    Operator 使用的 broker 容器镜像在 Operator 部署的 operator.yaml 配置文件的一个环境变量中定义。环境变量名称包括 AMQ Broker 版本的标识符。例如,环境变量 RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_781 对应于 AMQ Broker 7.8.1。

    当 Operator 应用 CR 更改时,它会重启部署中的每个代理 Pod,以便每个 Pod 使用指定的镜像版本。如果您的部署中有多个代理,则只有一个代理 Pod 会关闭并重启。

其他资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat