8.16. 自定义 OpenShift 资源
AMQ Streams 部署会创建 OpenShift 资源,如 Deployment
、Pod
和 Service
资源。这些资源由 AMQ Streams operator 管理。只有负责管理特定 OpenShift 资源的操作器才能更改该资源。如果您尝试手动更改操作器管理的 OpenShift 资源,Operator 将还原您的更改。
如果要执行某些任务,更改 Operator 管理的 OpenShift 资源会很有用,例如:
-
添加自定义标签或注解,以控制 Istio 或其他服务如何处理
Pod
-
管理如何为集群创建
Loadbalancer
-type 服务
要更改 OpenShift 资源,您可以使用各种 AMQ Streams 自定义资源的 spec
部分中的 template
属性。
以下是您可以应用更改的自定义资源列表:
-
Kafka.spec.kafka
-
Kafka.spec.zookeeper
-
Kafka.spec.entityOperator
-
Kafka.spec.kafkaExporter
-
Kafka.spec.cruiseControl
-
KafkaNodePool.spec
-
KafkaConnect.spec
-
KafkaMirrorMaker.spec
-
KafkaMirrorMaker2.spec
-
KafkaBridge.spec
-
KafkaUser.spec
有关这些属性的更多信息,请参阅 AMQ Streams 自定义资源 API 参考。
AMQ Streams 自定义资源 API 参考提供了有关可自定义字段的更多详情。
在以下示例中,template
属性用于修改 Kafka 代理的 pod 中的标签。
模板自定义示例
8.16.1. 自定义镜像拉取策略 复制链接链接已复制到粘贴板!
AMQ Streams 允许您自定义 Cluster Operator 部署的所有 pod 中容器的镜像拉取策略。镜像拉取策略使用 Cluster Operator 部署中的环境变量 STRIMZI_IMAGE_PULL_POLICY
进行配置。STRIMZI_IMAGE_PULL_POLICY
环境变量可以设置为三个不同的值:
Always
- 每次 pod 启动或重启时,容器镜像都会从 registry 中拉取。
IfNotPresent
- 只有在容器镜像之前没有拉取时才从 registry 中拉取容器镜像。
Never
- 容器镜像从 registry 中拉取。
目前,镜像拉取策略一次只能为所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群自定义。更改策略将导致所有 Kafka、Kafka Connect 和 Kafka MirrorMaker 集群的滚动更新。
8.16.2. 应用终止宽限期 复制链接链接已复制到粘贴板!
应用终止宽限期,为 Kafka 集群提供足够时间来完全关闭。
使用 terminationGracePeriodSeconds
属性指定时间。将属性添加到 Kafka
自定义资源的 template.pod
配置中。
您添加的时间将取决于 Kafka 集群的大小。终止宽限期的 OpenShift 默认为 30 秒。如果您发现集群没有完全关闭,您可以提高终止宽限期。
每次 pod 重启时都会应用终止宽限期。当 OpenShift 发送一个 术语 (termination)信号到容器集中运行的进程时,周期开始。周期应反映在终止 pod 停止前将终止 pod 的进程传输到另一个 pod 所需的时间。在周期结束后,kill 信号将停止 pod 中仍在运行的任何进程。
以下示例为 Kafka
自定义资源添加 120 秒的终止宽限期。您还可以在其他 Kafka 组件的自定义资源中指定配置。
终止宽限期配置示例