2.6. image
使用 image
属性配置组件使用的容器镜像。
只有在需要使用不同的容器 registry 或自定义镜像时,才建议在特殊情况下覆盖容器镜像。
例如,如果您的网络不允许访问 Apache Kafka 的 Streams 使用的容器存储库,您可以复制 Apache Kafka 镜像的流或从源构建它们。但是,如果配置的镜像与 Apache Kafka 镜像的 Streams 不兼容,则它可能无法正常工作。
容器镜像的副本也可以自定义并用于调试。
您可以使用以下资源中的 image
属性指定要用于组件的容器镜像:
-
Kafka.spec.kafka
-
Kafka.spec.zookeeper
-
Kafka.spec.entityOperator.topicOperator
-
Kafka.spec.entityOperator.userOperator
-
Kafka.spec.entityOperator.tlsSidecar
-
Kafka.spec.cruiseControl
-
Kafka.spec.kafkaExporter
-
Kafka.spec.kafkaBridge
-
KafkaConnect.spec
-
KafkaMirrorMaker.spec
-
KafkaMirrorMaker2.spec
-
KafkaBridge.spec
更改 Kafka 镜像版本不会自动为其他 Kafka 组件更新镜像版本,如 Kafka Exporter。这些组件不依赖于版本,因此在更新 Kafka 镜像版本时不需要额外的配置。
为 Kafka、Kafka Connect 和 Kafka MirrorMaker 配置 image
属性
Kafka、Kafka Connect 和 Kafka MirrorMaker 支持多个 Kafka 版本。每个组件都需要自己的镜像。不同 Kafka 版本的默认镜像在以下环境变量中配置:
-
STRIMZI_KAFKA_IMAGES
-
STRIMZI_KAFKA_CONNECT_IMAGES
-
STRIMZI_KAFKA_MIRROR_MAKER2_IMAGES
-
(已弃用)
STRIMZI_KAFKA_MIRROR_MAKER_IMAGES
这些环境变量包含 Kafka 版本和对应镜像之间的映射。映射与 image
和 version
属性一起使用,以确定所使用的镜像:
-
如果自定义资源中没有给出镜像或
版本
,则版本
默认为 Cluster Operator 的默认 Kafka 版本,使用的镜像是环境变量中与此版本对应的镜像。 -
如果指定了
image
但没有指定version
,则指定的镜像会被使用,其version
被假设为 Cluster Operator 的默认 Kafka 版本。 -
如果给出
version
,但没有提供image
,则使用与环境变量中给定版本对应的镜像。 -
如果同时提供了
version
和image
,则使用给定的镜像。假设镜像包含带有给定版本的 Kafka 镜像。
组件的 镜像和
版本
可以在以下属性中配置:
-
对于
spec.kafka.image
和spec.kafka.version
中的 Kafka。 -
对于
spec.image
和spec.version
中的 Kafka Connect 和 Kafka MirrorMaker。
建议您仅提供 version
,并不指定 image
属性。这可减少配置自定义资源时出错的机会。如果您需要更改用于不同 Kafka 版本的镜像,最好配置 Cluster Operator 的环境变量。
在其他资源中配置 image
属性
对于其他组件的自定义资源中的 image
属性,在部署期间使用给定值。如果没有设置
属性,则使用在 Cluster Operator 配置中指定为环境变量的容器镜像。如果在 Cluster Operator 配置中没有定义镜像名称,则会使用默认值。image
如需有关镜像环境变量的更多信息,请参阅配置 Cluster Operator。
组件 | 环境变量 | 默认镜像 |
---|---|---|
Topic Operator |
|
|
User Operator |
|
|
Entity Operator TLS sidecar |
|
|
Kafka Exporter |
|
|
Sything Control |
|
|
Kafka Bridge |
|
|
Kafka initializer |
|
|
容器镜像配置示例