2.6. 自定义 OpenShift 资源
AMQ Streams 创建几个 OpenShift 资源,如 Deployment
、StatefulSet、
Pod
和 Services
,它们由 AMQ Streams 操作器管理。只有负责管理特定 OpenShift 资源的操作器才能更改该资源。如果您尝试手动更改由 operator 管理的 OpenShift 资源,Operator 会将您的更改还原。
但是,更改由 Operator 管理的 OpenShift 资源对于执行某些任务很有用,例如:
-
添加控制 Istio 或其他服务如何处理
Pod
的自定义标签或注解 -
管理集群如何创建
Loadbalancer
-type Services
您可以使用 AMQ Streams 自定义资源中的 template
属性进行此类更改。template
属性在以下资源中受到支持:API 引用提供了有关可自定义字段的更多详情。
Kafka.spec.kafka
-
请查看 第 B.53 节 “
KafkaClusterTemplate
模式参考” Kafka.spec.zookeeper
-
请查看 第 B.63 节 “
ZookeeperClusterTemplate
模式参考” Kafka.spec.entityOperator
-
请查看 第 B.68 节 “
EntityOperatorTemplate
模式参考” Kafka.spec.kafkaExporter
-
请查看 第 B.74 节 “
KafkaExporterTemplate
模式参考” Kafka.spec.cruiseControl
-
请查看 第 B.71 节 “
CruiseControlTemplate
模式参考” KafkaConnect.spec
-
请查看 第 B.88 节 “
KafkaConnectTemplate
模式参考” KafkaConnectS2I.spec
-
请查看 第 B.88 节 “
KafkaConnectTemplate
模式参考” KafkaMirrorMaker.spec
-
请查看 第 B.119 节 “
KafkaMirrorMakerTemplate
模式参考” KafkaMirrorMaker2.spec
-
请查看 第 B.88 节 “
KafkaConnectTemplate
模式参考” KafkaBridge.spec
-
请查看 第 B.128 节 “
KafkaBridgeTemplate
schema reference” KafkaUser.spec
-
请查看 第 B.112 节 “
KafkaUserTemplate
模式参考”
在以下示例中,使用 template
属性来修改 Kafka 代理的 StatefulSet
中的标签:
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka metadata: name: my-cluster labels: app: my-cluster spec: kafka: # ... template: statefulset: metadata: labels: mylabel: myvalue # ...
2.6.1. 自定义镜像拉取策略
AMQ Streams 允许您自定义 Cluster Operator 部署的所有 pod 中容器的镜像拉取策略。镜像拉取策略使用 Cluster Operator 部署中的环境变量 STRIMZI_IMAGE_PULL_POLICY
进行配置。STRIMZI_IMAGE_PULL_POLICY
环境变量可设置为三个不同的值:
Always
- 每次 pod 启动或重启时,都会从注册表调取容器镜像。
IfNotPresent
- 容器镜像只有在之前没有拉取(pull)时才从注册表中提取。
Never
- 容器镜像永远不会从注册表调取。
镜像拉取策略目前只能对所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群进行自定义。更改策略会导致所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群滚动更新。
其他资源
- 有关 Cluster Operator 配置的更多信息,请参阅 第 5.1 节 “使用 Cluster Operator”。
- 有关镜像拉取策略的更多信息,请参阅 Disruptions。