Strimziオペレーターを 0.47.0 から 0.51.0 にアップグレードする

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

手順

  1. コマンドラインから、 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 の両方のオペレーターバージョンでサポートされています。
    1. アップグレード中にオペレーターが変更を加えないように、照合を一時停止します:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true"
       
      注釈が適用されたことを確認してください:
      
      kubectl describe kafka instana -n instana-kafka | grep -i pause
       
    2. 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
       
    3. Kafka カスタムリソースを更新し、バージョン 4.0.0: を使用するようにします
      
      kubectl edit kafka instana -n instana-kafka
       
      4.0.0エディタで、フィールドを spec.kafka.version から 3.9.1 に変更してください。
    4. 照合を再開するには、一時停止の注釈を削除してください:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
       
      通信事業者は、「 Kafka 」のバージョンアップの提供を開始しました。
    5. Kafka のアップグレードが正常に完了したことを確認してください:
      
      kubectl get kafka instana -n instana-kafka
       
      このREADYこの列は表示する必要がありますTrue.
  2. 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 のままです。
    1. 照合を一時停止する:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true"
       
      注釈が適用されたことを確認してください:
      
      kubectl describe kafka instana -n instana-kafka | grep -i pause
       
    2. 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
       
    3. 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
       
    4. 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/v1beta2kafka.strimzi.io/v1
      • 更新 spec.entityOperator.userOperator.imageartifact-public.instana.io/self-hosted-images/3rd-party/operator/strimzi:0.49.1_v0.29.3
    5. 一時停止の注釈を削除する:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
       
    6. オペレーターのアップグレードを確認してください:

      オペレーターのバージョンを確認してください:

      
      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.

  3. 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 の両方のオペレーター版でサポートされています。
    1. 照合を一時停止する:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true" --overwrite
       
      注釈が適用されたことを確認してください:
      
      kubectl describe kafka instana -n instana-kafka | grep -i pause
       
    2. 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
       
    3. Kafka カスタムリソースを更新し、バージョン 4.1.1: を使用するようにします
      
      kubectl edit kafka instana -n instana-kafka
       
      4.1.1エディタで、フィールドを spec.kafka.version から 4.0.0 に変更してください。
    4. 一時停止の注釈を削除する:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
       
  4. 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 のままです。
    1. 照合を一時停止する:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation="true"
       
      注釈が適用されたことを確認してください:
      
      kubectl describe kafka instana -n instana-kafka | grep -i pause
       
    2. 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
       
    3. 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
       
    4. 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 で公開されています。
    5. 一時停止の注釈を削除する:
      
      kubectl annotate kafka instana -n instana-kafka strimzi.io/pause-reconciliation-
       
  5. アップグレードが完了したことを確認してください:

    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段階に分けて実施されました。