機能フラグ構成に互換性がないためにRabbitMQクラスタが正しく初期化されない場合は、クラスタをリセットします。この問題は、SystemLink Enterpriseのアップデート中に発生する可能性があります。

RabbitMQ 3.11.0で必要な機能フラグ機能が導入されたため、RabbitMQを更新する際にマイナーバージョンをスキップすることはできません。RabbitMQのマイナーバージョンをスキップするSystemLink Enterpriseのバージョンに更新した場合、非互換性が発生します。非互換性を解決するには、以下の手順に従ってハードリセットを実行してください。
  1. SystemLink Enterpriseを目的のバージョンにアップグレードまたはダウングレードします。
  2. RabbitMQクラスタステートフルセットを削除するために、コマンドプロンプトを開いて次のコマンドを実行します。

    kubectl -n namespace delete statefulset release-rabbitmq

    ここで
    • namespace は、アプリケーション用に作成されたネームスペースです。
    • releaseは、インストールしたソフトウェアのコレクションにHelmが割り当てる名前です。
  3. RabbitMQクラスターに関連付けられてる永続ボリューム要求のセットを確認するには、次のコマンドを実行します。

    kubectl -n namespace get pvc --selector=app.kubernetes.io/name=rabbitmq

    このコマンドは、data-release-rabbitmq-0data-release-rabbitmq-1data-release-rabbitmq-2 などの永続ボリューム要求のリストを返します。アプリケーションの構成によっては、追加のボリュームが存在する場合があります。
  4. 前のステップで返されたボリュームを削除するには、ボリュームごとに次のコマンドを実行します。

    kubectl -n namespace delete pvc data-release-rabbitmq-n

    ここで
    • n は削除するボリュームです。
  5. すべてのボリューム要求が削除されたことを確認するには、次のコマンドを実行します。

    kubectl -n namespace get pvc --selector=app.kubernetes.io/name=rabbitmq

  6. SystemLink Enterprise Helmリリースの現在のバージョンを確認するには、次のコマンドを実行します。

    helm -n namespace status release

  7. Helmリリースを現在のバージョンのデプロイ済み状態にロールバックするには、次のコマンドを実行します。

    helm -n namespace rollback releaserevision --recreate-pods

    ここで
    • revision は、前のコマンドで返された REVISION 値です。
    RabbitMQクラスタは、アップグレードではなく新しいインストールとして再デプロイされ、アップグレードバージョンの制限をバイパスします。アプリケーション内のすべてのポッドが再作成され、新しい RabbitMQ クラスタが使用されます。再デプロイに要する時間は、クラスタのサイズによって異なります。