7.2. AMQ Streams 资源升级

kafka.strimzi.io/v1alpha1 API 版本已弃用,用于以下 AMQ Streams 资源:

  • kafka
  • KafkaConnect
  • KafkaConnectS2I
  • KafkaMirrorMaker
  • KafkaTopic
  • KafkaUser

更新这些资源,以使用 kafka.strimzi.io/v1beta1 API 版本。

本节论述了资源的升级步骤。

重要

资源升级 必须在 升级 Cluster Operator 后执行,以便 Cluster Operator 可以了解资源。

如果资源升级不起作用,该怎么办?

如果升级不生效,协调日志中会给出一个警告信息,表示在 apiVersion 更新前无法更新资源。

要触发更新,请对自定义资源进行任意更改,如添加注解。

注解示例:

metadata:
  # ...
  annotations:
    upgrade: "Upgraded to kafka.strimzi.io/v1beta1"

以下流程描述了更新特定资源以使用 kafka.strimzi.io/v1beta1 API 版本的步骤:

7.2.1. 升级 Kafka 资源

先决条件

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

步骤

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

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

    oc edit kafka my-cluster
  2. 替换:

    apiVersion: kafka.strimzi.io/v1alpha1

    使用:

    apiVersion: kafka.strimzi.io/v1beta1
  3. 如果 Kafka 资源有:

    Kafka.spec.topicOperator

    替换为:

    Kafka.spec.entityOperator.topicOperator

    例如,替换:

    spec:
      # ...
      topicOperator: {}

    使用:

    spec:
      # ...
      entityOperator:
        topicOperator: {}
  4. 如果存在,移动:

    Kafka.spec.entityOperator.affinity
    Kafka.spec.entityOperator.tolerations

    改为:

    Kafka.spec.entityOperator.template.pod.affinity
    Kafka.spec.entityOperator.template.pod.tolerations

    例如,移动:

    spec:
      # ...
      entityOperator:
        affinity {}
        tolerations {}

    改为:

    spec:
      # ...
      entityOperator:
        template:
          pod:
            affinity {}
            tolerations {}
  5. 如果存在,移动:

    Kafka.spec.kafka.affinity
    Kafka.spec.kafka.tolerations

    改为:

    Kafka.spec.kafka.template.pod.affinity
    Kafka.spec.kafka.template.pod.tolerations

    例如,移动:

    spec:
      # ...
      kafka:
        affinity {}
        tolerations {}

    改为:

    spec:
      # ...
      kafka:
        template:
          pod:
            affinity {}
            tolerations {}
  6. 如果存在,移动:

    Kafka.spec.zookeeper.affinity
    Kafka.spec.zookeeper.tolerations

    改为:

    Kafka.spec.zookeeper.template.pod.affinity
    Kafka.spec.zookeeper.template.pod.tolerations

    例如,移动:

    spec:
      # ...
      zookeeper:
        affinity {}
        tolerations {}

    改为:

    spec:
      # ...
      zookeeper:
        template:
          pod:
            affinity {}
            tolerations {}
  7. 保存文件,退出编辑器并等待更新的资源得到协调。