8.3. Cluster Operator のアップグレード
この手順では、AMQ Streams 1.8 を使用するように Cluster Operator デプロイメントをアップグレードする方法を説明します。
OperatorHub ではなくインストール用の YAML ファイルを使用して Cluster Operator をデプロイした場合は、次の手順に従ってください。
Cluster Operator によって管理される Kafka クラスターの可用性は、アップグレード操作による影響を受けません。
特定バージョンの AMQ Streams へのアップグレード方法については、そのバージョンをサポートするドキュメントを参照してください。
前提条件
- 既存の Cluster Operator デプロイメントを利用できる必要があります。
- AMQ Streams 1.8 のリリースアーティファクトがダウンロード済みである必要があります。
手順
-
既存の Cluster Operator リソース (
/install/cluster-operatorディレクトリー内) に追加した設定変更を覚えておきます。すべての変更は、新しいバージョンの Cluster Operator によって上書きされます。 - カスタムリソースを更新して、AMQ Streams バージョン 1.8 で使用できるサポート対象の設定オプションを反映します。
Cluster Operator を更新します。
Cluster Operator を実行している namespace に従い、新しい Cluster Operator バージョンのインストールファイルを編集します。
Linux の場合は、以下を使用します。
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yamlMacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml-
既存の Cluster Operator
Deploymentで 1 つ以上の環境変数を編集した場合、install/cluster-operator/060-Deployment-strimzi-cluster-operator.yamlファイルを編集し、これらの環境変数を使用します。
設定を更新したら、残りのインストールリソースとともにデプロイします。
oc replace -f install/cluster-operatorローリングアップデートが完了するのを待ちます。
新しい Operator バージョンがアップグレード前の Kafka バージョンをサポートしなくなった場合、「Version not found」というエラーメッセージが Cluster Operator によって返されます。そうでない場合は、エラーメッセージは返されません。
以下は例になります。
"Version 2.4.0 is not supported. Supported versions are: 2.6.0, 2.6.1, 2.7.0."エラーメッセージが返される場合は、新しい Cluster Operator バージョンでサポートされる Kafka バージョンにアップグレードします。
-
Kafkaカスタムリソースを編集します。 -
spec kafka.versionプロパティーをサポートされる Kafka バージョンに変更します。
-
- エラーメッセージが返されない場合は、次のステップに進みます。Kafka のバージョンを後でアップグレードします。
Kafka Pod のイメージを取得して、アップグレードが正常に完了したことを確認します。
oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'イメージタグには、新しい Operator のバージョンが表示されます。以下は例になります。
registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:{ContainerVersion}
Cluster Operator はバージョン 1.8 にアップグレードされましたが、管理するクラスターで稼働している Kafka のバージョンは変更されていません。
Cluster Operator のアップグレードの次に、Kafka のアップグレードを実行する必要があります。