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 资源
先决条件
-
支持
v1beta1API 版本的一个 Cluster Operator 已启动且正在运行。
步骤
对部署中的每个 Kafka 资源执行以下步骤。
更新编辑器中的
Kafka资源。oc edit kafka my-cluster替换:
apiVersion: kafka.strimzi.io/v1alpha1
使用:
apiVersion: kafka.strimzi.io/v1beta1
如果
Kafka资源有:Kafka.spec.topicOperator
替换为:
Kafka.spec.entityOperator.topicOperator
例如,替换:
spec: # ... topicOperator: {}使用:
spec: # ... entityOperator: topicOperator: {}如果存在,移动:
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 {}如果存在,移动:
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 {}如果存在,移动:
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 {}- 保存文件,退出编辑器并等待更新的资源得到协调。