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 容器镜像版本匹配的内置 Init 容器镜像。
要选择代理和初始容器镜像,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 |
|
每个环境变量的值都指定红帽提供的容器镜像的地址。镜像名称由 安全哈希算法 (SHA)值表示。例如:
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7123 value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:55ae4e28b100534d63c34ab86f69230d274c999d46d1493f26fe3e75ba7a0cec
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7123
value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:55ae4e28b100534d63c34ab86f69230d274c999d46d1493f26fe3e75ba7a0cec
因此,Operator 基于 AMQ Broker 版本和容器平台,Operator 决定代理和 init 容器的适用环境变量名称。Operator 在启动代理容器时使用对应的镜像值。
其他资源
- 要了解如何使用 AMQ Broker Operator 创建代理部署,请参阅 第 3 章 使用 AMQ Broker Operator 在 OpenShift Container Platform 上部署 AMQ Broker。
- 如需有关 Operator 如何使用初始容器生成代理配置的更多信息,请参阅 第 4.1 节 “Operator 如何生成代理配置”。
- 要了解如何构建并指定 自定义初始容器镜像,请参阅 第 4.11 节 “指定自定义初始容器镜像”。