2.7. Operator 如何选择容器镜像
如果 CR 不包含 spec.deploymentPlan.image 和 spec.deployment.Plan.initImage 属性,它指定 Operator 必须部署的特定容器镜像的 registry URL,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 会选择一个与所选 Operator 容器镜像版本匹配的内置初始容器镜像。
要选择代理和初始容器镜像,Operator 首先决定所需镜像的 AMQ Broker 版本。Operator 从 spec.version 属性的值获取版本。如果没有设置 spec.version 属性,Operator 将为 AMQ Broker 使用最新版本的镜像。
然后,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.7.1. 代理和 init 容器镜像的环境变量 复制链接链接已复制到粘贴板!
operator.yaml 中包含的环境变量有以下命名约定。
| 容器平台 | 命名规则 |
|---|---|
| OpenShift Container Platform |
|
| IBM Z 上的 OpenShift Container Platform |
|
| IBM Power 系统上的 OpenShift Container Platform |
|
以下是每个支持的容器平台代理和 init 容器镜像的环境变量名称示例。
| 容器平台 | 环境变量名称 |
|---|---|
| OpenShift Container Platform |
|
| IBM Z 上的 OpenShift Container Platform |
|
| IBM Power 系统上的 OpenShift Container Platform |
|
每个环境变量的值都指定红帽提供的容器镜像的地址。镜像名称由 Secure Hash Algorithm (SHA)值表示。例如:
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7131 value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:e58d2f652106ccd55d1816acc64efe8905e8737f4d4b5fabca5232aeb3de73a7
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7131
value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:e58d2f652106ccd55d1816acc64efe8905e8737f4d4b5fabca5232aeb3de73a7
因此,Operator 基于 AMQ Broker 版本和容器平台,Operator 决定代理和 init 容器适用的环境变量名称。Operator 在启动代理容器时使用对应的镜像值。
其他资源
- 要了解如何使用 AMQ Broker Operator 创建代理部署,请参阅 第 3 章 使用 AMQ Broker Operator 在 OpenShift Container Platform 上部署 AMQ Broker。
- 如需有关 Operator 如何使用初始容器生成代理配置的更多信息,请参阅 第 4.1 节 “Operator 如何生成代理配置”。
- 要了解如何构建并指定 自定义初始容器镜像,请参阅 第 4.11 节 “指定自定义初始容器镜像”。