8.2.5. 升级 Kafka 资源以支持 v1beta2

先决条件

  • 支持 v1beta2 API 版本的一个 Cluster Operator 已启动且正在运行。

流程

对部署中的每个 Kafka 自定义资源执行以下步骤。

  1. 更新编辑器中的 Kafka 自定义资源。

    oc edit kafka KAFKA-CLUSTER
  2. 如果您还没有这样做,请将 update .spec.kafka.listener 更新为新的通用监听程序格式,如 第 8.2.6 节 “将监听程序更新到通用监听器配置” 所述。

    警告

    API 版本 v1beta2 不支持旧的监听程序格式。

  3. 如果存在,将 关联性.spec.kafka.affinity 移到 .spec.kafka.template.pod.affinity
  4. 如果存在,将 容限.spec.kafka.tolerations 移到 .spec.kafka.template.pod.tolerations
  5. 如果存在,则删除 .spec.kafka.template.tlsSidecarContainer
  6. 如果存在,则删除 .spec.kafka.tlsSidecarContainer
  7. 如果存在以下策略配置:

    • .spec.kafka.template.externalBootstrapService.externalTrafficPolicy
    • .spec.kafka.template.perPodService.externalTrafficPolicy

      1. 将配置移动到 .spec.ka.listeners[].configuration.externalTrafficPolicy,两者都用于 loadbalancertype: nodeport 侦听器。
      2. remove .spec.kafka.template.externalBootstrapService.externalTrafficPolicy.spec.kafka.template.perPodService.externalTrafficPolicy.
  8. 如果存在以下 负载均衡器监听程序 配置之一:

    • .spec.kafka.template.externalBootstrapService.loadBalancerSourceRanges
    • .spec.kafka.template.perPodService.loadBalancerSourceRanges

      1. 将配置移到 .spec.ka.kafka.listeners[].configuration.loadBalancerSourceRanges,用于 type: loadbalancer 侦听器。
      2. remove .spec.kafka.template.externalBootstrapService.loadBalancerSourceRanges.spec.kafka.template.perPodService.loadBalancerSourceRanges.
  9. 如果 type: 外部 日志记录配置了 in .spec.kafka.logging

    替换包含日志配置的 ConfigMap 名称

    logging:
      type: external
      name: my-config-map

    使用 valueFrom.configMapKeyRef 字段,并指定将日志记录存储在的 ConfigMap 名称和

    logging:
      type: external
      valueFrom:
        configMapKeyRef:
          name: my-config-map
          key: log4j.properties
  10. 如果使用 .spec.kafka.metrics 字段来启用指标数据:

    1. 创建一个将 JMX Prometheus 导出器的 YAML 配置存储到一个键下的新 ConfigMap。YAML 必须与 .spec.kafka.metrics 字段中当前的内容匹配。

      kind: ConfigMap
      apiVersion: v1
      metadata:
        name: kafka-metrics
        labels:
          app: strimzi
      data:
        kafka-metrics-config.yaml: |
            <YAML>
    2. 添加指向 ConfigMap 和键的 a .spec.kafka.metricsConfig 属性:

      metricsConfig:
        type: jmxPrometheusExporter
        valueFrom:
          configMapKeyRef:
            name: kafka-metrics
            key: kafka-metrics-config.yaml
    3. 删除 old .spec.kafka.metrics 字段。
  11. 保存文件,退出编辑器并等待更新的自定义资源得到协调。

接下来要做什么

对于每个 Kafka 自定义资源,升级 ZooKeeper、Topic Operator、实体 Operator 和 Cruise Control(如果已部署)的配置来支持 v1beta2 版本。这在以下步骤中进行了说明。

当所有 Kafka 配置都更新为支持 v1beta2 时,您可以将 Kafka 自定义资源升级到 v1beta2