2.8. 自定义 OpenShift 资源
AMQ Streams 部署创建 OpenShift 资源,如 Deployment
、StatefulSets
、Pod
和 Services
。这些资源由 AMQ Streams operator 管理。只有负责管理特定 OpenShift 资源的 Operator 才能更改该资源。如果您尝试手动更改操作器管理的 OpenShift 资源,Operator 将还原您的更改。
如果要执行某些任务,则更改操作器管理的 OpenShift 资源非常有用,例如:
-
添加控制 Istio 或其他服务如何处理
Pod
的自定义标签或注解 -
管理集群如何创建
Loadbalancer
-type Services
您可以使用 AMQ Streams 自定义资源中的 template
属性进行更改。以下资源支持 template
属性。API 引用提供有关可自定义字段的更多详情。
Kafka.spec.kafka
-
请查看 第 12.2.33 节 “
KafkaClusterTemplate
模式参考” Kafka.spec.zookeeper
-
请查看 第 12.2.43 节 “
ZookeeperClusterTemplate
模式参考” Kafka.spec.entityOperator
-
请查看 第 12.2.48 节 “
EntityOperatorTemplate
模式参考” Kafka.spec.kafkaExporter
-
请查看 第 12.2.55 节 “
KafkaExporterTemplate
模式参考” Kafka.spec.cruiseControl
-
请查看 第 12.2.51 节 “
CruiseControlTemplate
模式参考” KafkaConnect.spec
-
请查看 第 12.2.71 节 “
KafkaConnectTemplate
模式参考” KafkaMirrorMaker.spec
-
请查看 第 12.2.112 节 “
KafkaMirrorMakerTemplate
模式参考” KafkaMirrorMaker2.spec
-
请查看 第 12.2.71 节 “
KafkaConnectTemplate
模式参考” KafkaBridge.spec
-
请查看 第 12.2.121 节 “
KafkaBridgeTemplate
模式参考” KafkaUser.spec
-
请查看 第 12.2.106 节 “
KafkaUserTemplate
模式参考”
在以下示例中,template
属性用于修改 Kafka 代理 pod 中的标签。
模板自定义示例
2.8.1. 自定义镜像拉取策略 复制链接链接已复制到粘贴板!
AMQ Streams 允许您为 Cluster Operator 部署的所有 pod 中容器自定义镜像拉取策略。镜像拉取策略使用 Cluster Operator 部署中的环境变量 STRIMZI_IMAGE_PULL_POLICY
配置。STRIMZI_IMAGE_PULL_POLICY
环境变量可以设置为三个不同的值:
Always
- 每次 pod 启动或重启时都会从 registry 中拉取容器镜像。
IfNotPresent
- 仅当容器镜像没有拉取时,才会从 registry 中拉取容器镜像。
Never
- 容器镜像从 registry 中拉取。
镜像拉取(pull)策略目前只能自定义所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群。更改策略将导致所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群滚动更新。
2.8.2. 应用终止宽限期 复制链接链接已复制到粘贴板!
应用终止宽限期,让 Kafka 集群有足够的时间来完全关闭。
使用 terminationGracePeriodSeconds
属性指定时间。将 属性添加到 Kafka
自定义资源的 template.pod
配置中。
您添加的时间将取决于 Kafka 集群的大小。终止宽限期的 OpenShift 默认为 30 秒。如果您发现集群没有完全关闭,您可以提高终止宽限期。
每次 pod 重启时会应用终止宽限期。在 OpenShift 向容器集中运行的进程发送 术语 (终止)信号时,该周期开始。周期应反映将终止 pod 的进程传输到另一个 pod 所需的时间,然后再停止它们。在周期结束后,kill 信号将停止 pod 中仍在运行的任何进程。
以下示例在 Kafka
自定义资源中添加终止宽限期( 120 秒)。您还可以在其他 Kafka 组件的自定义资源中指定配置。
终止宽限期配置示例