20.3. 滚动更新的维护时间窗


通过维护时间窗口,您可以调度 Kafka 和 ZooKeeper 集群的某些滚动更新,以便在方便的时间启动。

20.3.1. 维护时间窗概述

在大多数情况下,Cluster Operator 只更新您的 Kafka 或 ZooKeeper 集群,以响应对应的 Kafka 资源。这可让您计划何时对 Kafka 资源应用更改,以最大程度降低对 Kafka 客户端应用程序的影响。

但是,对 Kafka 和 ZooKeeper 集群的一些更新可能会出现任何与 Kafka 资源对应的更改。例如,如果其管理的 CA (证书颁发机构)证书接近到期,Cluster Operator 需要执行滚动重启。

虽然 pod 的滚动重启应该不会影响服务的可用性 (假设正确的代理和主题配置),但它可能会影响 Kafka 客户端应用程序的性能。维护时间窗允许您调度 Kafka 和 ZooKeeper 集群的此类 spontaneous 滚动更新,以便在方便的时间启动。如果没有为集群配置维护时间窗,则此类更新可能会在不方便的时间进行,比如在可预测的高负载期间。

20.3.2. 维护时间窗定义

您可以通过在 Kafka.spec.maintenanceTimeWindows 属性中输入字符串数组来配置维护时间窗。每个字符串都有一个 cron 表达式 解释为 UTC (协调通用时间),用于实际目的与 Greenwich Mean Time 相同。

以下示例配置了一个维护时间窗,其从午夜开始,并以 01:59am (UTC)结束,在 Sundays、Mondays、Mondays、rednesdays 和 Thursdays 上结束:

# ...
maintenanceTimeWindows:
  - "* * 0-1 ? * SUN,MON,TUE,WED,THU *"
# ...

在实践中,维护窗口应当与 Kafka 资源的 Kafka.spec.clusterCa.renewalDaysKafka.spec.clientsCa.renewalDays 属性一起设置,以确保在配置的维护时间窗口中完成必要的 CA 证书续订。

注意

AMQ Streams 不根据给定的窗口完全调度维护操作。相反,对于每个协调,它会检查维护窗口当前是否是"打开"。这意味着,在一个给定时间窗内开始维护操作会延迟到 Cluster Operator 协调间隔。因此,维护时间窗必须至少是这个时间。

20.3.3. 配置维护时间窗

您可以为支持的进程触发的滚动更新配置维护时间窗。

先决条件

  • 一个 OpenShift 集群。
  • Cluster Operator 正在运行。

流程

  1. Kafka 资源中添加或编辑 maintenanceTimeWindows 属性。例如,允许 0800 到 1059 到 1400 到 1559 之间的维护,您可以设置 maintenanceTimeWindows,如下所示:

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
      name: my-cluster
    spec:
      kafka:
        # ...
      zookeeper:
        # ...
      maintenanceTimeWindows:
        - "* * 8-10 * * ?"
        - "* * 14-15 * * ?"
  2. 创建或更新资源:

    oc apply -f <kafka_configuration_file>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.