Cluster Operatorを、現在使用中の Kafka のバージョンをサポートしていないバージョンにアップグレードすると、「 Kafka のバージョンがサポートされていません」というエラーが表示されます。 Strimziオペレーターをバージョン 0.47.0 から 0.51.0 へ、2段階に分けてアップグレードします。まず 0.47.0 から 0.49.1 へ、次に 0.49.1 から 0.51.0 へとアップグレードします。
準備
作業を開始する前に、以下の条件が満たされていることを確認してください:
- Strimziの Kafka クラスタは正常に稼働しています
- Kubernetes クラスタに対してクラスタ管理者権限をお持ちです
- コマンドラインツールは kubectl 設定されています
- Instana アーティファクトレジストリにアクセスできます
Kafka クラスタの現在の状態を確認します:
Kafka の現在のバージョンを確認してください:
kubectl get kafka instana -n instana-kafka -o jsonpath='{.spec.kafka.version}'
予期される出力:3.9.1
現在のオペレーターのバージョンを確認してください:
kubectl get deployment strimzi-cluster-operator -n instana-kafka -o jsonpath='{.spec.template.spec.containers[0].image}'
予期される出力:0.47.0
すべてのPodが正常であることを確認します:
kubectl get pods -n instana-kafka
すべてのポッドを表示する必要がありますRunningstatus.
Kafka が準備できていることを確認してください:
kubectl get kafka instana -n instana-kafka
このREADYこの列は表示する必要がありますTrue.
このタスクについて
Kafka のバージョン互換性の要件により、アップグレードプロセスは主に2つの段階から構成されています。 各段階では、まず Kafka のバージョンをアップグレードし、その後Strimziオペレーターをアップグレードします。
表 1. Strimziオペレーターと Kafka のバージョン互換性
| オペレーター・バージョン |
対応している Kafka のバージョン |
| 0.47.0 |
3.9.0, 3.9.1, 4.0.0 |
| 0.49.1 |
4.0.0, 4.0.1, 4.1.0, 4.1.1 |
| 0.51.0 |
4.1.0, 4.1.1, 4.2.0 |
ヒント:Helm を使用してCluster Operatorをアップグレードする場合、この helm upgrade コマンドではカスタムリソース定義(CRD)はアップグレードされません。 オペレーターのアップグレード後は、新しいCRDを手動でインストールする必要があります。 CRDは、 GitHub のリリースページからダウンロードするか、 Helm チャート内のサブディレクトリから入手してください crd 。
手順
- コマンドラインから、 Kafka をバージョン 3.9.1 から 4.0.0 にアップグレードします。
| タイプ | 使用された画像 |
|---|
| オペレーター |
artifact-public.instana.io/self-hosted-images/3rd-party/operator/strimzi:0.47.0_v0.28.0 |
| データストア |
artifact-public.instana.io/self-hosted-images/3rd-party/datastore/kafka:0.47.0-kafka-4.0.0 |
この中間バージョンは、 0.47.0 および 0.49.1 の両方のオペレーターバージョンでサポートされています。
- アップグレード中にオペレーターが変更を加えないように、照合を一時停止します:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true"
注釈が適用されたことを確認してください:
kubectl describe kafka instana -n instana-kafka | grep -i pause
- Kafka のイメージをバージョン 4.0.0: に更新してください
helm upgrade --install strimzi-kafka-operator instana/strimzi-kafka-operator \
--version 0.47.0 \
-n instana-kafka \
--set image.registry=artifact-public.instana.io \
--set image.repository=self-hosted-images/3rd-party/operator \
--set image.name=strimzi \
--set image.tag=0.47.0_v0.28.0 \
--set image.imagePullSecrets[0].name="instana-registry" \
--set kafka.image.registry=artifact-public.instana.io \
--set kafka.image.repository=self-hosted-images/3rd-party/datastore \
--set kafka.image.name=kafka \
--set kafka.image.tag=0.47.0-kafka-4.0.0
- Kafka カスタムリソースを更新し、バージョン 4.0.0: を使用するようにします
kubectl edit kafka instana -n instana-kafka
4.0.0エディタで、フィールドを spec.kafka.version から 3.9.1 に変更してください。
- 照合を再開するには、一時停止の注釈を削除してください:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
通信事業者は、「 Kafka 」のバージョンアップの提供を開始しました。
- Kafka のアップグレードが正常に完了したことを確認してください:
kubectl get kafka instana -n instana-kafka
このREADYこの列は表示する必要がありますTrue.
- Strimziオペレーターをバージョン 0.47.0 から 0.49.1 にアップグレードします。
| タイプ | 使用された画像 |
|---|
| オペレーター |
artifact-public.instana.io/self-hosted-images/3rd-party/operator/strimzi:0.49.1_v0.29.3 |
| データストア |
artifact-public.instana.io/self-hosted-images/3rd-party/datastore:0.49.1-kafka-4.0.0_v0.34.0 |
この手順の間、 Kafka のバージョンは 4.0.0 のままです。
- 照合を一時停止する:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true"
注釈が適用されたことを確認してください:
kubectl describe kafka instana -n instana-kafka | grep -i pause
- 0.49.1: 用の新しいカスタムリソース定義(CRD)をダウンロードして適用してください
Helm はCRDを自動的に更新しないため、オペレーターをアップグレードする前に、この手順を必ず実行する必要があります。
GitHub: から CRD をダウンロードしてください
curl -L https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.49.1/strimzi-crds-0.49.1.yaml -o strimzi-crds-0.49.1.yaml
CRDを適用する:
kubectl apply -f strimzi-crds-0.49.1.yaml --server-side --force-conflicts
CRDが更新されたことを確認してください:
kubectl get crds | grep strimzi
- Helm を使用して、オペレーターをバージョン 0.49.1 にアップグレードします:
helm upgrade --install strimzi-kafka-operator instana/strimzi-kafka-operator \
--version 0.49.1 \
-n instana-kafka \
--set image.registry=artifact-public.instana.io \
--set image.repository=self-hosted-images/3rd-party/operator \
--set image.name=strimzi \
--set image.tag=0.49.1_v0.29.3 \
--set image.imagePullSecrets[0].name="instana-registry" \
--set kafka.image.registry=artifact-public.instana.io \
--set kafka.image.repository=self-hosted-images/3rd-party/datastore \
--set kafka.image.name=kafka \
--set kafka.image.tag=0.49.1-kafka-4.0.0_v0.34.0
- Kafka のカスタムリソースを更新し、新しいバージョンの API を使用するように設定します:
kafka.strimzi.io/v1beta2Strimzi 0.49.1 は の代わりに を使用 kafka.strimzi.io/v1 しています。 Kafka に関連するすべてのリソースを更新してください。
コントローラーノードプールを更新します:
kubectl edit kafkanodepool controller -n instana-kafka
kafka.strimzi.io/v1エディタで、 を kafka.strimzi.io/v1beta2 に変更 apiVersion してください。
ブローカーノードプールを更新します:
kubectl edit kafkanodepool broker -n instana-kafka
kafka.strimzi.io/v1エディタで、 を kafka.strimzi.io/v1beta2 に変更 apiVersion してください。
Kafka ユーザーの情報を更新します:
kubectl edit kafkauser strimzi-kafka-user -n instana-kafka
kafka.strimzi.io/v1エディタで、 を kafka.strimzi.io/v1beta2 に変更 apiVersion してください。
Kafka クラスタおよびエンティティオペレーターのイメージを更新します:
kubectl edit kafka instana -n instana-kafka
エディタで、以下の変更を行ってください:
- 変更
apiVersion から kafka.strimzi.io/v1beta2 へ kafka.strimzi.io/v1
- 更新
spec.entityOperator.userOperator.image へ artifact-public.instana.io/self-hosted-images/3rd-party/operator/strimzi:0.49.1_v0.29.3
- 一時停止の注釈を削除する:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
- オペレーターのアップグレードを確認してください:
オペレーターのバージョンを確認してください:
kubectl get deployment strimzi-cluster-operator -n instana-kafka -o jsonpath='{.spec.template.spec.containers[0].image}'
予期される出力:0.49.1_v0.29.3
Kafka が準備できていることを確認してください:
kubectl get kafka instana -n instana-kafka
このREADYこの列は表示する必要がありますTrue.
- Kafka をバージョン 4.0.0 から 4.1.1 にアップグレードします。
| タイプ | 使用された画像 |
|---|
| オペレーター |
artifact-public.instana.io/self-hosted-images/3rd-party/operator/strimzi:0.49.1_v0.29.3 |
| データストア |
artifact-public.instana.io/self-hosted-images/3rd-party/datastore/kafka:0.49.1-kafka-4.1.1_v0.35.0 |
このバージョンは、 0.49.1 および 0.51.0 の両方のオペレーター版でサポートされています。
- 照合を一時停止する:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true" --overwrite
注釈が適用されたことを確認してください:
kubectl describe kafka instana -n instana-kafka | grep -i pause
- Kafka のイメージをバージョン 4.1.1: に更新してください
helm upgrade --install strimzi-kafka-operator instana/strimzi-kafka-operator \
--version 0.49.1 \
-n instana-kafka \
--set image.registry=artifact-public.instana.io \
--set image.repository=self-hosted-images/3rd-party/operator \
--set image.name=strimzi \
--set image.tag=0.49.1_v0.29.3 \
--set image.imagePullSecrets[0].name="instana-registry" \
--set kafka.image.registry=artifact-public.instana.io \
--set kafka.image.repository=self-hosted-images/3rd-party/datastore \
--set kafka.image.name=kafka \
--set kafka.image.tag=0.49.1-kafka-4.1.1_v0.35.0
- Kafka カスタムリソースを更新し、バージョン 4.1.1: を使用するようにします
kubectl edit kafka instana -n instana-kafka
4.1.1エディタで、フィールドを spec.kafka.version から 4.0.0 に変更してください。
- 一時停止の注釈を削除する:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
- Strimziオペレーターをバージョン 0.49.1 から 0.51.0 にアップグレードします。
| タイプ | 使用された画像 |
|---|
| オペレーター |
artifact-public.instana.io/self-hosted-images/3rd-party/operator/strimzi:0.51.0_v0.32.0 |
| データストア |
artifact-public.instana.io/self-hosted-images/3rd-party/datastore/kafka:0.51.0-kafka-4.1.1_v0.32.0 |
この手順の間、 Kafka のバージョンは 4.1.1 のままです。
- 照合を一時停止する:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true"
注釈が適用されたことを確認してください:
kubectl describe kafka instana -n instana-kafka | grep -i pause
- 0.51.0: 用の新しい CRD をダウンロードして適用してください
GitHub: から CRD をダウンロードしてください
curl -L https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.51.0/strimzi-crds-0.51.0.yaml -o strimzi-crds-0.51.0.yaml
CRDを適用する:
kubectl apply -f strimzi-crds-0.51.0.yaml --server-side --force-conflicts
CRDが更新されたことを確認してください:
kubectl get crds | grep strimzi
- Helm を使用して、オペレーターをバージョン 0.51.0 にアップグレードします:
helm upgrade --install strimzi-kafka-operator instana/strimzi-kafka-operator \
--version 0.51.0 \
-n instana-kafka \
--set image.registry=artifact-public.instana.io \
--set image.repository=self-hosted-images/3rd-party/operator \
--set image.name=strimzi \
--set image.tag=0.51.0_v0.32.0 \
--set image.imagePullSecrets[0].name="instana-registry" \
--set kafka.image.registry=artifact-public.instana.io \
--set kafka.image.repository=self-hosted-images/3rd-party/datastore \
--set kafka.image.name=kafka \
--set kafka.image.tag=0.51.0-kafka-4.1.1_v0.32.0
- Kafka カスタムリソース内のエンティティオペレーター画像を更新します:
kubectl edit kafka instana -n instana-kafka
artifact-public.instana.io/self-hosted-images/3rd-party/operator/strimzi:0.51.0_v0.32.0エディタで、 を に更新 spec.entityOperator.userOperator.image してください。 Kafka 版は、引き続き 4.1.1 で公開されています。
- 一時停止の注釈を削除する:
kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
- アップグレードが完了したことを確認してください:
Kafka のバージョンを確認してください:
kubectl get kafka instana -n instana-kafka -o jsonpath='{.spec.kafka.version}'
予期される出力:4.1.1
オペレーターのバージョンを確認してください:
kubectl get deployment strimzi-cluster-operator -n instana-kafka -o jsonpath='{.spec.template.spec.containers[0].image}'
予期される出力:0.51.0
すべてのPodが正常であることを確認します:
kubectl get pods -n instana-kafka
すべてのポッドを表示する必要がありますRunningstatus.
Kafka が準備できていることを確認してください:
kubectl get kafka instana -n instana-kafka
このREADYこの列は表示する必要がありますTrue.
Strimziオペレーターは現在、 0.51.0 を実行しており、 Kafka のバージョンは 4.1.1 です。
結果
Strimziオペレーターをバージョン 0.47.0 から 0.51.0 へ、また Kafka をバージョン 3.9.1 から 4.1.1 へ正常にアップグレードしました。 オペレーター版と Kafka 版の互換性を維持するため、アップグレードは2段階に分けて実施されました。