第15章 AMQ Streams リソースのアップグレード
本リリースの AMQ Streams では、API バージョン kafka.strimzi.io/v1alpha1
を使用するリソースを更新して kafka.strimzi.io/v1beta1
を使用するようにする必要があります。
kafka.strimzi.io/v1alpha1
API バージョンは非推奨になりました。
ここでは、リソースのアップグレード手順を説明します。
リソースのアップグレードは、Cluster Operator をアップグレードしてから実施する 必要 があります。これにより、Cluster Operator がリソースを認識できるようになります。
リソースのアップグレードが実施されない場合
アップグレードが実施されない場合、apiVersion
を更新するまでリソースを更新できないことを示す警告が、調整に関するログに記録されます。
更新をトリガーするには、カスタムリソースにアノテーション追加などの表面的な変更を加えます。
アノテーションの例:
metadata: # ... annotations: upgrade: "Upgraded to kafka.strimzi.io/v1beta1"
15.1. Kafka リソースのアップグレード
前提条件
-
v1beta1
API バージョンをサポートする 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 {}
- ファイルを保存し、エディターを終了して更新したリソースが調整されるのを待ちます。
15.2. Kafka Connect リソースのアップグレード
前提条件
-
v1beta1
API バージョンをサポートする Cluster Operator が稼働している必要があります。
手順
デプロイメントの KafkaConnect
リソースごとに以下の手順を実行します。
エディターで
KafkaConnect
リソースを更新します。oc edit kafkaconnect my-connect
以下の行を見つけます。
apiVersion: kafka.strimzi.io/v1alpha1
この行を以下の行に変更します。
apiVersion:kafka.strimzi.io/v1beta1
以下があるか確認します。
KafkaConnect.spec.affinity
KafkaConnect.spec.tolerations
あれば以下に変更します。
KafkaConnect.spec.template.pod.affinity
KafkaConnect.spec.template.pod.tolerations
たとえば、以下の場合を考えてみましょう。
spec: # ... affinity {} tolerations {}
これを以下に変更します。
spec: # ... template: pod: affinity {} tolerations {}
- ファイルを保存し、エディターを終了して更新したリソースが調整されるのを待ちます。
15.3. Kafka Connect S2I リソースのアップグレード
前提条件
-
v1beta1
API バージョンをサポートする Cluster Operator が稼働している必要があります。
手順
デプロイメントの KafkaConnectS2I
リソースごとに以下の手順を実行します。
エディターで
KafkaConnectS2I
リソースを更新します。oc edit kafkaconnects2i my-connect
以下の行を見つけます。
apiVersion: kafka.strimzi.io/v1alpha1
この行を以下の行に変更します。
apiVersion:kafka.strimzi.io/v1beta1
以下があるか確認します。
KafkaConnectS2I.spec.affinity
KafkaConnectS2I.spec.tolerations
あれば以下に変更します。
KafkaConnectS2I.spec.template.pod.affinity
KafkaConnectS2I.spec.template.pod.tolerations
たとえば、以下の場合を考えてみましょう。
spec: # ... affinity {} tolerations {}
これを以下に変更します。
spec: # ... template: pod: affinity {} tolerations {}
- ファイルを保存し、エディターを終了して更新したリソースが調整されるのを待ちます。
15.4. Kafka MirrorMaker リソースのアップグレード
前提条件
-
v1beta1
API バージョンをサポートする Cluster Operator が稼働している必要があります。
手順
デプロイメントの KafkaMirrorMaker
リソースごとに以下の手順を実行します。
エディターで
KafkaMirrorMaker
リソースを更新します。oc edit kafkamirrormaker my-connect
以下の行を見つけます。
apiVersion: kafka.strimzi.io/v1alpha1
この行を以下の行に変更します。
apiVersion:kafka.strimzi.io/v1beta1
以下があるか確認します。
KafkaConnectMirrorMaker.spec.affinity
KafkaConnectMirrorMaker.spec.tolerations
あれば以下に変更します。
KafkaConnectMirrorMaker.spec.template.pod.affinity
KafkaConnectMirrorMaker.spec.template.pod.tolerations
たとえば、以下の場合を考えてみましょう。
spec: # ... affinity {} tolerations {}
これを以下に変更します。
spec: # ... template: pod: affinity {} tolerations {}
- ファイルを保存し、エディターを終了して更新したリソースが調整されるのを待ちます。
15.5. Kafka Topic リソースのアップグレード
前提条件
-
v1beta1
API バージョンをサポートする Topic Operator が稼働している必要があります。
手順
デプロイメントの KafkaTopic
リソースごとに以下の手順を実行します。
エディターで
KafkaTopic
リソースを更新します。oc edit kafkatopic my-topic
以下の行を見つけます。
apiVersion: kafka.strimzi.io/v1alpha1
この行を以下の行に変更します。
apiVersion:kafka.strimzi.io/v1beta1
- ファイルを保存し、エディターを終了して更新したリソースが調整されるのを待ちます。
15.6. Kafka User リソースのアップグレード
前提条件
-
v1beta1
API バージョンをサポートする User Operator が稼働している必要があります。
手順
デプロイメントの KafkaUser
リソースごとに以下の手順を実行します。
エディターで
KafkaUser
リソースを更新します。oc edit kafkauser my-user
以下の行を見つけます。
apiVersion: kafka.strimzi.io/v1alpha1
この行を以下の行に変更します。
apiVersion:kafka.strimzi.io/v1beta1
- ファイルを保存し、エディターを終了して更新したリソースが調整されるのを待ちます。