23.4. Cluster Operator のアップグレード
デプロイの最初の方法と同じ方法を使用して、Cluster Operator をアップグレードします。
- インストールファイルの使用
- インストール用の YAML ファイルを使用して Cluster Operator をデプロイした場合は、インストールファイルを使用した Cluster Operator のアップグレード の説明に従って、Operator のインストールファイルを変更してアップグレードを実行します。
- OperatorHub の使用
OperatorHub から AMQ Streams をデプロイした場合は、Operator Lifecycle Manager (OLM) を使用して AMQ Streams Operator の更新チャネルを新しい AMQ Streams バージョンに変更します。
チャネルを更新すると、選択したアップグレード戦略に応じて、次のタイプのアップグレードのいずれかが開始されます。
- 自動アップグレード
- インストール開始前に承認が必要な手動アップグレード
注記安定した チャンネルに登録すると、チャンネルを変更せずに自動更新を取得できます。ただし、インストール前のアップグレード手順が失われる可能性があるため、自動更新を有効にすることは推奨しません。バージョン固有のチャネルでのみ自動アップグレードを使用します。
OperatorHub を使用した Operator のアップグレードについての詳細は、Upgrading installed Operators (OpenShift documentation) を参照してください。
23.4.1. Cluster Operator をアップグレードすると Kafka バージョンエラーが返される リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator を、使用している Kafka の現在のバージョンをサポートしていないバージョンにアップグレードすると、サポートされていない Kafka バージョン エラーが発生します。このエラーはすべてのインストール方法に適用され、Kafka をサポートされている Kafka バージョンにアップグレードする必要があることを意味します。Kafka
リソースの spec.kafka.version
をサポートされているバージョンに変更します。
oc
を使用して、Kafka
リソースの ステータス
でこのようなエラーメッセージを確認できます。
エラーの Kafka ステータスの確認
oc get kafka <kafka_cluster_name> -n <namespace> -o jsonpath='{.status.conditions}'
oc get kafka <kafka_cluster_name> -n <namespace> -o jsonpath='{.status.conditions}'
<kafka_cluster_name> は、Kafka クラスターの名前に、<namespace> は、Pod が実行されている OpenShift namespace に置き換えます。
23.4.2. OperatorHub を使用した AMQ Streams 1.7 以前からのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
OperatorHub を使用して AMQ Streams 1.7 以前からアップグレードする場合に必要となるアクション
AMQ Streams Operator をバージョン 2.5 にアップグレードする前に、次の変更を加える必要があります。
-
カスタムリソースおよび CRD を
v1beta2
に変換します。 -
ControlPlaneListener
フィーチャーゲートが無効になっている AMQ Streams のバージョンにアップグレードします。
これらの要件については、「1.7 より前の AMQ Streams バージョンからのアップグレード」 を参照してください。
AMQ Streams 1.7 以前からアップグレードする場合は、次の手順を実行します。
- AMQ Streams 1.7 にアップグレードします。
- AMQ Streams ソフトウェアのダウンロードページ から、AMQ Streams 1.8 で提供される Red Hat AMQ Streams API Conversion Tool をダウンロードします。
カスタムリソースおよび CRD を
v1beta2
に変換します。詳細は、AMQ Streams 1.7 アップグレードドキュメント を参照してください。
- OperatorHub で、AMQ Streams Operator のバージョン 1.7 を削除します。
AMQ Streams Operator のバージョン 2.5 も存在する場合は、削除します。
存在しない場合は、次のステップに進みます。
AMQ Streams Operator の Approval Strategy が Automatic に設定されている場合、Operator のバージョン 2.5 がすでにクラスターに存在する可能性があります。リリース前にカスタムリソースおよび CRD を
v1beta2
API バージョンに 変換しなかった 場合、Operator が管理するカスタムリソースおよび CRD は古い API バージョンを使用します。その結果、2.5 Operator は Pending ステータスで停止します。この状況では、AMQ Streams Operator のバージョン 1.7 だけでなくバージョン 2.5 も削除する必要があります。両方の Operator を削除すると、新しい Operator バージョンがインストールされるまで、調整は一時停止されます。カスタムリソースへの変更が遅延しないように、次の手順を直ちに実行します。
OperatorHub で、次のいずれかを実行します。
-
AMQ Streams Operator のバージョン 1.8 にアップグレードします (
ControlPlaneListener
フィーチャーゲートはデフォルトで無効になっています)。 -
ControlPlaneListener
フィーチャーゲートを無効にして、AMQ Streams Operator のバージョン 2.0 または 2.2 (ControlPlaneListener
フィーチャーゲートがデフォルトで有効になっている) にアップグレードします。
-
AMQ Streams Operator のバージョン 1.8 にアップグレードします (
AMQ Streams Operator のバージョン 2.5 にすぐにアップグレードしてください。
インストールされた 2.5 Operator はクラスターの監視を開始し、ローリング更新を実行します。このプロセス中に、クラスターのパフォーマンスが一時的に低下する場合があります。
23.4.3. インストールファイルを使用した Cluster Operator のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
この手順では、AMQ Streams 2.5 を使用するように Cluster Operator デプロイメントをアップグレードする方法を説明します。
インストール YAML ファイルを使用して Cluster Operator をデプロイした場合は、以下の手順に従います。
Cluster Operator によって管理される Kafka クラスターの可用性は、アップグレード操作による影響を受けません。
特定バージョンの AMQ Streams へのアップグレード方法は、そのバージョンをサポートするドキュメントを参照してください。
前提条件
- 既存の Cluster Operator デプロイメントを利用できる。
- AMQ Streams 2.5 のリリースアーティファクトがダウンロード済みである。
手順
-
既存の Cluster Operator リソース (
/install/cluster-operator
ディレクトリー内) に追加した設定変更を書留めておきます。すべての変更は、新しいバージョンの Cluster Operator によって上書きされます。 - カスタムリソースを更新して、AMQ Streams バージョン 2.5 で使用できるサポート対象の設定オプションを反映します。
Cluster Operator を更新します。
Cluster Operator を実行している namespace に従い、新しい Cluster Operator バージョンのインストールファイルを編集します。
Linux の場合は、以下を使用します。
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MacOS の場合は、以下を使用します。
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
既存の Cluster Operator
Deployment
で 1 つ以上の環境変数を編集した場合、install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml
ファイルを編集し、これらの環境変数を使用します。
設定を更新したら、残りのインストールリソースとともにデプロイします。
oc replace -f install/cluster-operator
oc replace -f install/cluster-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ローリング更新が完了するのを待ちます。
新しい Operator バージョンがアップグレード元の Kafka バージョンをサポートしなくなった場合、Cluster Operator はバージョンがサポートされていないことを示すエラーメッセージを返します。そうでない場合は、エラーメッセージは返されません。
エラーメッセージが返される場合は、新しい Cluster Operator バージョンでサポートされる Kafka バージョンにアップグレードします。
-
Kafka
カスタムリソースを編集します。 -
spec kafka.version
プロパティーをサポートされる Kafka バージョンに変更します。
-
- エラーメッセージが返されない場合は、次のステップに進みます。Kafka のバージョンを後でアップグレードします。
Kafka Pod のイメージを取得して、アップグレードが正常に完了したことを確認します。
oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'
oc get pods my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージタグには、新しい Operator のバージョンが表示されます。以下に例を示します。
registry.redhat.io/amq-streams/strimzi-kafka-35-rhel8:2.5.1
registry.redhat.io/amq-streams/strimzi-kafka-35-rhel8:2.5.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Cluster Operator はバージョン 2.5 にアップグレードされましたが、管理するクラスターで稼働している Kafka のバージョンは変更されていません。
Cluster Operator のアップグレードの次に、Kafka のアップグレード を実行する必要があります。