2.7. 自定义 OpenShift 资源


AMQ Streams 部署会创建 OpenShift 资源,如 DeploymentsStatefulSetsPodServices。这些资源由 AMQ Streams operator 管理。只有负责管理特定 OpenShift 资源的操作器才能更改该资源。如果您尝试手动更改 Operator 管理的 OpenShift 资源,Operator 将恢复您的更改。

如果要执行某些任务,则更改 Operator 管理的 OpenShift 资源会很有用,例如:

  • 添加可控制 Istio 或其他服务如何处理 Pod 的自定义标签或注解
  • 管理集群如何创建 Loadbalancer-type Services

您可以使用 AMQ Streams 自定义资源中的 template 属性进行更改。template 属性在下列资源中受支持:API 参考提供了有关可自定义字段的更多详情。

在以下示例中,template 属性用于修改 Kafka 代理 pod 中的标签。

模板自定义示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  labels:
    app: my-cluster
spec:
  kafka:
    # ...
    template:
      pod:
        metadata:
          labels:
            mylabel: myvalue
    # ...

2.7.1. 自定义镜像拉取(pull)策略

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 集群进行滚动更新。

2.7.2. 应用终止宽限期

应用终止宽限期,以便让 Kafka 集群有足够的时间完全关闭。

使用 terminationGracePeriodSeconds 属性指定时间。将属性添加到 Kafka 自定义资源的 template.pod 配置中。

您添加的时间将取决于 Kafka 集群的大小。终止宽限期的 OpenShift 默认为 30 秒。如果您发现集群没有完全关闭,您可以提高终止宽限期。

每次 pod 重启时都会应用终止宽限期。当 OpenShift 向 pod 中运行的进程发送 术语 (termination)信号时,这个周期开始。周期应反映在停止前将终止 pod 进程转移到另一个 pod 所需的时间。在周期结束后,kill 信号将停止 pod 中仍在运行的任何进程。

以下示例在 Kafka 自定义资源中添加终止宽限期 120 秒。您还可以在其他 Kafka 组件的自定义资源中指定配置。

终止宽限期配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    template:
      pod:
        terminationGracePeriodSeconds: 120
        # ...
    # ...

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部