2.4. Operator 如何选择容器镜像


为代理部署创建自定义资源 (CR) 实例时,您不需要在 CR 中明确指定代理或初始容器镜像名称。默认情况下,如果您部署 CR 且没有指定容器镜像值,Operator 会自动选择要使用的适当容器镜像。

注意

如果使用 OpenShift 命令行界面安装 Operator,Operator 安装存档包括一个示例 CR 文件,名为 broker_activemqartemis_cr.yaml。在示例 CR 中,包含 spec.deploymentPlan.image 属性,并将其默认值设置为 placeholder。此值表示,在部署 CR 前,Operator 不会选择代理容器镜像。

spec.deploymentPlan.initImage 属性(用于指定 Init 容器镜像) 没有包括在 broker_activemqartemis_cr.yaml 示例 CR 文件中。如果您没有在 CR 中明确包含 spec.deploymentPlan.initImage 属性并指定值,Operator 会选择一个适当的内置初始容器镜像,以便在部署 CR 时使用。

本节中介绍了 Operator 选择这些镜像的方式。

要选择代理和初始容器镜像,Operator 首先决定镜像应与之对应的 AMQ Broker 版本。Operator 决定版本,如下所示:

  • 如果主 CR 中的 spec.upgrades.enabled 属性已设置为 true,并且 spec.version 属性指定 7.7.0, 7.8.0, 7.8.1, 或 7.8.2,则 Operator 会使用指定的版本。
  • 如果 spec.upgrades.enabled 没有 设为 true,或 spec.version 设置为早于 7.7.0 的 AMQ Broker 版本,Operator 将 使用最新版本的 AMQ Broker (即 7.10.7)。

然后,Operator 会检测您的容器平台。AMQ Broker Operator 可以在以下容器平台中运行:

  • OpenShift Container Platform (x86_64)
  • IBM Z (s390x) 上的 OpenShift Container Platform
  • IBM Power Systems (ppc64le) 上的 OpenShift Container Platform

然后,Operator 会根据 AMQ Broker 和容器平台的版本,在 operator.yaml 配置文件中引用两组环境变量。这些环境变量组为 AMQ Broker 的各种版本指定代理和初始容器镜像,如以下子章节中所述。

2.4.1. 代理容器镜像的环境变量

代理容器镜像的 operator.yaml 配置文件中包含的环境变量有以下命名规则:

OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>
IBM Z 上的 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_s390x
IBM Power 系统上的 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_ppc64le

表中会显示每个受支持的容器平台和特定 AMQ Broker 版本的环境变量名称。

Expand
容器平台环境变量名称

OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100

IBM Z 上的 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782_s390x
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790_s390x
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100_s390x

IBM Power 系统上的 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_782_ppc64le
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_790_ppc64le
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100_ppc64le

每个环境变量的值都指定可通过红帽使用的代理容器镜像。例如:

- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100
  #value: registry.redhat.io/amq7/amq-broker-rhel8:7.10
  value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:982ba18be1ac285722bc0ca8e85d2a42b8b844ab840b01425e79e3eeee6ee5b9

因此,根据 AMQ Broker 版本和容器平台,Operator 会决定适用的环境变量名称。Operator 在启动代理容器时使用对应的镜像值。

注意

operator.yaml 文件中,Operator 使用一个由 Secure Hash Algorithm (SHA) 值代表的镜像。注释行以数字符号 (#) 符号开头,注明 SHA 值对应于特定的容器镜像标签。

2.4.2. Init 容器镜像的环境变量

Init 容器镜像的 operator.yaml 配置文件中包含的环境变量有以下命名约定:

RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_<AMQ_Broker_version_identifier>

下面列出了特定 AMQ Broker 版本的环境变量名称。

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100

每个环境变量的值都指定红帽提供的初始容器镜像。例如:

- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100
  #value: registry.redhat.io/amq7/amq-broker-init-rhel8:0.4-21
  value: registry.redhat.io/amq7/amq-broker-init-rhel8@sha256:f37f98c809c6f29a83e3d5a3ac4494e28efe9b25d33c54f533c6a08662244622

因此,Operator 基于 AMQ Broker 版本,决定适用的环境变量名称。Operator 在启动初始容器时使用对应的镜像值。

注意

如示例所示,Operator 使用一个由 Secure Hash Algorithm (SHA) 值表示的镜像。注释行以数字符号 (#) 符号开头,注明 SHA 值对应于特定的容器镜像标签。注意,对应的容器镜像标签为 0.4-21 的形式,因此不是浮动标签。这意味着 Operator 使用的容器镜像会保持固定。当它可以从红帽获得时,Operator 不会自动拉取并使用新的 micro 镜像版本(为 0.4-21-n,其中 n 是最新的 micro 版本)。

Init 容器镜像的 operator.yaml 配置文件中包含的环境变量有以下命名约定:

OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_<AMQ_Broker_version_identifier>
IBM Z 上的 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_<AMQ_Broker_version_identifier>
IBM Power 系统上的 OpenShift Container Platform
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_<AMQ_Broker_version_identifier>

表中会显示每个受支持的容器平台和特定 AMQ Broker 版本的环境变量名称。

Expand
容器平台环境变量名称

OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100

IBM Z 上的 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_7100

IBM Power 系统上的 OpenShift Container Platform

  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_782
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_790
  • RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_7100

每个环境变量的值都指定红帽提供的初始容器镜像。例如:

- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100
  #value: registry.redhat.io/amq7/amq-broker-init-rhel8:0.4-21-1
  value: registry.redhat.io/amq7/amq-broker-init-rhel8@sha256:f37f98c809c6f29a83e3d5a3ac4494e28efe9b25d33c54f533c6a08662244622

因此,根据 AMQ Broker 版本和容器平台,Operator 会决定适用的环境变量名称。Operator 在启动初始容器时使用对应的镜像值。

注意

如示例所示,Operator 使用一个由 Secure Hash Algorithm (SHA) 值表示的镜像。注释行以数字符号 (#) 符号开头,注明 SHA 值对应于特定的容器镜像标签。注意,对应的容器镜像标签为 0.4-21 的形式,因此不是浮动标签。这意味着 Operator 使用的容器镜像会保持固定。当它可以从红帽获得时,Operator 不会自动拉取并使用新的 micro 镜像版本(为 0.4-21-n,其中 n 是最新的 micro 版本)。

其他资源

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部