第26章 Streams for Apache Kafka のダウングレード
アップグレードしたバージョンの Streams for Apache Kafka で問題が発生した場合は、インストールを直前のバージョンに戻すことができます。
YAML インストールファイルを使用して Streams for Apache Kafka をインストールした場合は、以前のリリースの YAML インストールファイルを使用してダウングレード手順を実行できます。Cluster Operator と使用中の Kafka のバージョンを更新することで、Streams for Apache Kafka をダウングレードできます。Kafka バージョンのダウングレードは、Cluster Operator によって実行されます。
次のダウングレード手順は、インストールファイルを使用して Streams for Apache Kafka をインストールした場合にのみ適しています。OperatorHub などの別の方法を使用して Streams for Apache Kafka をインストールした場合、ドキュメントに記載されていない限り、その方法ではダウングレードがサポートされていない可能性があります。ダウングレードプロセスを確実に成功させるには、サポートされているアプローチを使用することが不可欠です。
26.1. Cluster Operator の以前のバージョンへのダウングレード
Streams for Apache Kafka で問題が発生した場合は、インストールを元に戻すことができます。
この手順では、Cluster Operator デプロイメントを以前のバージョンにダウングレードする方法を説明します。
前提条件
- 既存の Cluster Operator デプロイメントを利用できる。
- 以前のバージョンのインストールファイルがダウンロード済み である必要があります。
作業を開始する前に
Streams for Apache Kafka フィーチャーゲート のダウングレード要件を確認します。フィーチャーゲートが永続的に有効になっている場合は、ターゲットバージョンにダウングレードする前に、フィーチャーゲートを無効にできるバージョンにダウングレードする必要がある場合があります。
手順
-
既存の Cluster Operator リソース (
/install/cluster-operator
ディレクトリー内) に追加した設定変更を書留めておきます。すべての変更は、以前のバージョンの Cluster Operator によって上書きされます。 - カスタムリソースを元に戻して、ダウングレードする Streams for Apache Kafka バージョンで利用可能なサポート対象の設定オプションを反映します。
Cluster Operator を更新します。
Cluster Operator を実行している namespace に従い、以前のバージョンのインストールファイルを編集します。
Linux の場合は、以下を使用します。
sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
MacOS の場合は、以下を使用します。
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
ローリング更新が完了するのを待ちます。
Kafka Pod のイメージを取得して、ダウングレードが正常に完了したことを確認します。
oc get pod my-cluster-kafka-0 -o jsonpath='{.spec.containers[0].image}'
イメージタグには、新しい Streams for Apache Kafka バージョンと Kafka バージョンが表示されます。たとえば、
<strimzi_version>-kafka-<kafka_version>
です。