VM/ベアメタルの Runtime Fabric のアップグレード

可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。

VM/ベアメタルの Anypoint Runtime Fabric をアップグレードするには、Runtime Fabric アプライアンス、コンポーネント、​rtfctl​ コマンドラインユーティリティ、ノード設定をアップグレードします。

アプライアンスのアップグレードについて

アプライアンスのアップグレードは、Docker、Kubernetes、オペレーションセンターを含むプラットフォームレイヤーコンポーネントに影響します。このプラットフォームレイヤーコンポーネントは、クラスターのノードとして機能する仮想マシン (VM) またはベアメタルサーバーにインストールされます。

アプライアンスのアップグレードは、​rtfctl​ コマンドラインユーティリティを使用して適用されます。

アプライアンスのアップグレードは 1 ノードずつ各ノードに適用されます。この​ローリングアップグレード​プロセスにより、3 個以上のコントローラーノードをアクティブなままにしてクラスターの可用性を確実に維持することで、実行中のアプリケーションへの影響を最小限に抑えます。また、このプロセスにより、各ワーカーノードをオフラインにしてアップグレードするときにアプリケーションを再デプロイできるように、少なくとも 1 つのワーカーノードに相当する未使用のリソースを使用できるようにもします。

コンポーネントのアップグレードについて

Runtime Fabric コンポーネントをアップグレードする場合、次の機能を提供するサービスをアップグレードします。

  • コントロールプレーンとの通信を容易にする

  • 負荷分散を行う

  • メトリクスを記録して転送する

コンポーネントのアップグレードが可能な場合、アップグレードが利用可能になったときに表示されるボタンを使用して Runtime Manager 内でアップグレードを適用します。最新のコンポーネントバージョンに関する情報については、​「Anypoint Runtime Fabric リリースノート」​の情報を確認します。

Runtime Fabric コンポーネントのアップグレードでは、ノードの追加は不要です。

アップグレード後に、アプリケーション監視メトリクスは復元されません。

使用しているコンポーネントバージョンの確認

Runtime Fabric コントローラーノードで、次のコマンドを実行します。

/opt/anypoint/runtimefabric/rtfctl version

出力は次のようになります。

次に例を示します。

[root@ip-10-0-245-74 /]# /opt/anypoint/runtimefabric/rtfctl version
COMPONENT    VERSION
rtfctl       0.3.122
agent        1.9.3
appliance    1.1.1719717580-73a133d
kubernetes   1.17
  • rtfctl​ 項目に ​rtfctl​ コマンドラインユーティリティのバージョン

  • appliance​ 項目にアプライアンスコンポーネントのバージョン

  • agent​ 項目に Runtime Fabric コンポーネントのバージョン

使用中の Runtime Fabric コンポーネントとアプライアンスのバージョンは Runtime Manager の ​[Runtime Fabric]​ タブにも表示されます。アップグレードが利用可能な場合は、[Upgrade to vx.x (vx.x にアップグレード)] メッセージが表示されます。

rtfctl​ コマンドラインユーティリティのアップグレードについて

rtfctl​ コマンドラインユーティリティを使用して、Runtime Fabric を管理し、アプライアンスとノード設定のアップグレードを実行します。

コマンドラインから ​rtfctl​ ユーティリティをアップグレードします。

rtfctl​ コマンドラインユーティリティの最新バージョンを使用することが重要です。

ノード設定のアップグレードについて

ノード設定のアップグレードには、AWS および Azure インフラストラクチャのプロビジョニング、各ノードの準備、新しい Runtime Fabric のブートストラップ、オペレーティングシステムの制限の調整、およびシステムリソースをクリーンアップするためのジョブの実行を行うスクリプトが含まれます。

ノード設定のアップグレードは、Runtime Manager の ​[Runtime Fabric downloads (Runtime Fabric ダウンロード)]​ ページを使用して、更新されたインストールスクリプトバージョンとして配信されます。

更新されたインストールスクリプトを使用してノードの設定をアップグレードする場合、アプライアンスの最新バージョンが自動的にダウンロードされ、使用されます。

アップグレードプロセスのしくみ

VM/ベアメタルの Anypoint Runtime Fabric をアップグレードするには、次のタスクを実行します。

  1. rtfctl​ コマンドラインユーティリティをアップグレードします。

  2. Runtime Fabric が健全であることを確認します。

  3. Runtime Fabric コンポーネントをアップグレードします。

  4. Runtime Fabric アプライアンスをアップグレードします。

  5. クラスターでアップグレードを実行します。

  6. ノード設定をアップグレードします。

  7. Runtime Fabric で実行されている Mule デプロイメントを最新のパッチバージョンに更新します。

アップグレードプロセスを実行する前に

  • 本番環境をアップグレードする前に、本番以外の Runtime Fabric インスタンスで次の手順を実行し、環境との互換性を確認します。チームが新しいアプリケーションをデプロイしていないときや Runtime Fabric で既存のアプリケーションを管理していないときにアップグレードを計画します。本番以外のアップグレードが成功したら、本番環境で次の手順を実行します。 「Anypoint Runtime Fabric リリースノート」​の情報を確認します。

  • 必要に応じて追加のワーカーノードをプロビジョニングし、アプライアンスのアップグレードを適用するときのアプリケーションの可用性を維持します。

    アプリケーションデプロイメントで使用できるリソースの量が 1 つのワーカーノードのリソースに満たない場合、同じ量の CPU、メモリ、およびディスクリソースを備えた別のワーカーノードを Runtime Fabric に追加します。

    Runtime Fabric へのノードの追加方法​を参照してください。

  • MuleSoft ナレッジベースで 「What Items to Check Before an RTF Appliance Upgrade (RTF アプライアンスのアップグレード前に確認する項目)」​を参照してください。

rtfctl​ コマンドラインユーティリティをアップグレードする

アップグレードプロセスのいくつかのステップでは、​rtfctl​ コマンドラインユーティリティを使用します。

  1. rtfctl​ コマンドユーティリティの最新バージョンを使用していない場合は、次のコマンドを使用して最新バージョンをダウンロードします。

    cd /opt/anypoint/runtimefabric
    sudo curl -L https://anypoint.mulesoft.com/runtimefabric/api/download/rtfctl/latest -o rtfctl
  2. rtfctl​ バイナリのファイル権限を変更します。

    sudo chmod +x rtfctl
  3. rtfctl​ バイナリを所有するユーザーの場合は、新しいバージョンをダウンロードすることなく ​rtfctl​ を更新できます。これを行うには、次のコマンドを実行します。

    `rtfctl update`

Runtime Fabric が健全であることを確認する

アップグレードを実行する前に、クラスターがアクティブで健全であることを確認します。

  1. Web ブラウザーを使用して、Runtime Manager の ​[Runtime Fabric]​ タブに移動し、Runtime Fabric の状況が ​[Active (アクティブ)]​ として報告されていることを確認します。

  2. Runtime Fabric コントローラーノードのターミナルを開きます。

  3. /opt/anypoint/runtimefabric/rtfctl status​ を実行し、クラスターの状況が健全であることを確認します。

  4. ブラウザーセッションを開いたままにして、アップグレードのサブタスクの残りを実行します。

Runtime Fabric コンポーネントのアップグレード

Runtime Fabric プロセスの最初のステップは Runtime Fabric コンポーネントをアップグレードすることです。

Runtime Fabric コンポーネントをアップグレードする前に

Runtime Fabric にアップグレードした後に、アプリケーションを再起動して、runtime-registry エンドポイントのデプロイメントマニフェストが更新されるようにします。

  1. Runtime Manager の ​[Runtime Fabric]​ タブで Runtime Fabric を選択し、Runtime Fabric に移動します。

  2. [Upgrade to vx.x (vx.x にアップグレード)]​ をクリックします。

  3. [Run Network Test (ネットワークテストを実行)]​ をクリックしてネットワークチェックを実行することで、Anypoint コントロールプレーンを使用してランタイムレジストリと mTLS の適切なエンドポイントを許可リストに登録したことを確認します。

    エンドポイントを許可リストに登録していない場合は、続行する前に登録する必要があります。

    ネットワークテストは、完了するまで数分かかる場合があります。エラーが発生した場合は、​「ネットワークテストのエラー」​を参照してください。

  4. ネットワークテストが完了したら、​[Apply Upgrade (アップグレードを適用)]​ をクリックします。

    Runtime Fabric の状況が更新され、アップグレード手順が進行中であることが示されます。

  5. 状況が ​[Active (アクティブ)]​ に移行するまで待ちます。

    ほとんどの場合、アップグレードにかかる時間は 10 分未満です。状況が ​[Active (アクティブ)]​ に移行し、Runtime Fabric のバージョンが新しいバージョンを反映したら、コンポーネントのアップグレードは完了です。

    Runtime Fabric と Runtime Manager の接続がアップグレード中に切断された場合、アップグレード完了後に接続が復元されます。

  6. ブラウザーセッションを開いたままにして、アップグレードのサブタスクの残りを実行します。

Runtime Fabric アプライアンスをアップグレードする

Runtime Fabric コンポーネントをアップグレードした後に、Runtime Fabric アプライアンスをアップグレードできます。

Runtime Fabric アプライアンスをアップグレードする前に

  • /opt/anypoint/runtimefabric/installer​ ディレクトリに、使用可能なディスク領域が 4 GiB 以上あることを確認します。

  • ルート権限があることを確認します。

  • 環境に以下が含まれていることを確認します。

    • 可用性を維持するため、3 個以上のレプリカで内部ロードバランサーが実行されている。より新しいバージョンの Runtime Fabric では、内部ロードバランサーはデフォルトですべてのコントローラーノードで実行されます。

    • コントローラーノードに受信要求の負荷を分散するように外部ロードバランサーが設定されていて、TCP ポート 443 の状態チェックが設定されている。

    • 1 個以上の追加のワーカーノード用の CPU およびメモリリソースをクラスターで使用できる。

      これにより、ワーカーノードをクラスターから安全に削除して、アプリケーションの可用性に影響を及ぼすことなくアップグレードを適用できます。

    • インバウンド要求を処理するアプリケーションが 2 個以上のレプリカに拡大されている。

  • Runtime Fabric アラートをカスタマイズした場合、アプライアンスのアップグレードによってカスタマイズが上書きされます。変更の再作成の手順については、​「メールアラートのコンテンツを変更する」​を参照してください。

Runtime Fabric アプライアンスをアップグレードする手順は、次のとおりです。

  1. Web ブラウザーを使用して、Runtime Manager に移動して ​[Runtime Fabric]​ タブを選択し、Runtime Fabric インスタンスのリストを表示します。

  2. アップグレードする Runtime Fabric インスタンスを選択します。

  3. アプライアンスバージョンの横にある ​[Upgrade Available (使用可能なインスタンスをアップグレード)]​ をクリックします。

  4. [Installer package (インストーラーパッケージ)]​ の横にある ​[Copy Link (リンクをコピー)]​ アイコンを選択して、次の例のようにコードスニペットをコピーします。

    rtfctl appliance upgrade --url https://<upgrade-package-information>
  5. コードスニペットをテキストエディターに貼り付けて参照します。

クラスターでのアップグレードの実行

アップグレードが完了するまで 1 時間以上かかる可能性があります。

アップグレード手順中に Runtime Fabric と Runtime Manager 間の接続が複数回切断される可能性があります。アップグレードが完了すると、接続は復元されます。

このアップグレード手順は、一度に 1 つのノードに変更を適用してデプロイ済みアプリケーションの実行を維持し、デプロイ済みアプリケーションが要求を継続的に処理できるように設計されています。

  1. アップグレードを適用するノードが手順により選択されます。

  2. 選択されたノードで実行されているアプリケーションが別のノードに再デプロイされます。

  3. 選択されたノードがクラスターから削除されます。

  4. 選択されたノードでアップグレードが適用されます。

  5. アップグレード後、選択されたノードがクラスターに追加されます。

アップグレードを実行する手順は、次のとおりです。

  1. コントローラーノード上で開いているターミナルを使用して、ルートユーザーに切り替えます。

  2. ステップ 5 の「Runtime Fabric アプライアンスをアップグレードする」でコピーしたコマンドを貼り付けます。

    sudo /opt/anypoint/runtimefabric/rtfctl appliance upgrade --url <cluster-installer-url>

    アップグレードがバックグラウンドで実行されていることを示す確認が表示されます。

  3. ノードで ​sudo gravity status​ を実行し、クラスターの状況が [updating (更新中)] であることを確認します。

  4. アップグレード手順の進捗状況を監視するには、コントローラーノードでターミナルを使用して、次のコマンドを実行します。

    sudo /opt/anypoint/runtimefabric/installer/gravity plan
  5. アップグレードが正常に完了したことを確認するには、次のコマンドを実行します。

    sudo gravity status
  6. クラスターの状況が ​[Updating (更新中)]​ から ​[Active (アクティブ)]​ に移行したことを確認します。

  7. アップグレード前の Runtime Fabric クラスターバージョンが 1.0.x であり、HTTP プロキシを使用している場合、次のコマンドを使用して HTTP プロキシ設定を適用します。

    sudo ./rtfctl apply http-proxy --confirm existing

ノード設定をアップグレードする

すべてのノードで次の手順を実行し、システム設定が最新であることを確認します。

  1. Runtime Fabric コントローラーまたはワーカーノードのターミナルを開きます。

  2. rtfctl​ で ​apply system-configurations​ コマンドを実行します。

    sudo ./rtfctl apply system-configuration --force

    または、EU コントロールプレーンを使用している場合は、次のコマンドを実行します。

    sudo ./rtfctl apply system-configuration --force --control-plane eu

ワーカーノードで ​apply system-configuration​ コマンドを実行すると、次のようなエラーが表示される場合があります。

Warning: Agent pod is not running.Warning: Failed to get agent version from chartWarning: Failed to get agent version from podDownloading latest scripts (警告: エージェントポッドが実行されていません。警告: チャットからのエージェントバージョンの取得に失敗しました。警告: ポッド空のエージェントバージョンの取得に失敗しました。最新のスクリプトをダウンロードしています)

この警告は無視しても問題ありません。

Runtime Fabric で実行されている Mule デプロイメントを最新のパッチバージョンに更新する

Runtime Fabric アプライアンスおよびコンポーネントをアップグレードしたら、Runtime Fabric でデプロイされた Mule アプリケーションを最新の日付のパッチバージョンに更新します。

  1. Web ブラウザーを使用して、Runtime Manager の ​[Applications (アプリケーション)]​ タブに移動します。

  2. アプリケーションを選択し、​[Manage Application (アプリケーションを管理)]​ を選択します。

  3. [Runtime version (Runtime バージョン)]​ 項目の値で更新が使用可能であることを示されていることを確認し、選択します。

  4. [Deploy (デプロイ)]​ を選択し、更新された Mule Runtime Engine バージョンでアプリケーションを再デプロイします。

  5. この Runtime Fabric インスタンスで実行されている各アプリケーションでこれを繰り返します。

アプライアンスのアップグレードの再開

アプライアンス (インストーラーパッケージ) のアップグレードが失敗した場合、アップグレードを再開します。

再開したアップグレードはターミナルセッションに接続されるため、アップグレードを再開する前に、安定した接続があることを確認します。

  1. アップグレードを開始するために使用したコントローラーノード上で開いているターミナルで、次の例のように、インストーラーバンドルファイルを含むディレクトリに移動します。

    cd /opt/anypoint/runtimefabric/installer
  2. アップグレードを再開するには、次のコマンドを実行します。

    sudo /opt/anypoint/runtimefabric/installer/gravity upgrade --resume
  3. アップグレード手順の出力がターミナルセッションにストリーミングされます。以前のエラーが再度発生した場合、次のセクションで説明されているトラブルシューティング手順を実行します。

Runtime Fabric アップグレードエラーのトラブルシューティング

Runtime Fabric をアップグレードしようとしたときにアップグレードエラーが発生した場合、次のようにトラブルシューティングしてください。

ネットワークテストのエラー

Runtime Fabric コンポーネントを v1.11 以降にアップグレードする場合は、ネットワークテスト中に次のエラーが発生することがあります。

  • mTLS handshake error: check certs

    このエラーは、証明書が最新でない場合に発生する可能性があります。証明書を更新して、アップグレードをもう一度実行してください。

  • ConnectionRefused:check port’s open

    このエラーは、必要なアウトバウンドポートがクラスターで使用できない場合に発生します。Runtime Fabric コンポーネントのアップグレード手順を確認し、必要なポートを使用可能にしたことを確認してください。

  • Connection timed out

    このエラーは、必要なエンドポイントがクラスターで許可リストに登録されていない場合に発生します。Runtime Fabric コンポーネントのアップグレード手順を確認し、必要なエンドポイントを許可リストに登録したことを確認してください。

  • ネットワークテストに 5 分以上かかる

    ネットワークの問題やローカルホストネットワークの問題のために必要な Docker イメージの取得に時間がかかりすぎると、タイムアウトが発生する場合があります。

アプライアンスのアップグレードエラー

アプライアンス (インストーラーパッケージ) のアップグレード中は特定の順序の一連の手順が実行されます。エラーが発生した場合、アップグレードは一時停止し、エラーが表示されます。ほとんどの場合、本番の Runtime Fabric 設定で各アプリケーションの複数のレプリカを実行しているときは、実行中のアプリケーションの可用性に影響はありません。

ほとんどのエラーは、コントローラーノードで実行されている ​etcd​ ブロックデバイスのディスクパフォーマンスが不十分であることが原因で発生します。

コマンドエラーを解決するには、次の手順を実行します。

  1. gravity plan​ コマンドを使用して、アップグレードが一時停止したフェーズを特定します。

    sudo /opt/anypoint/runtimefabric/installer/gravity plan

    次の部分的なリストは、アップグレードフェーズの例を示しています。

    * init
    * checks
    * bootstrap
      * node-1
    * masters
      * node-1
        * drain
        * system-upgrade
        * taint
        ...
    * runtime
      * rbac-app
      * site
      * kubernetes
    * app
      * telekube
  2. エラーが発生したフェーズと ​--debug​ フラグを使用してアップグレードを再開します。

    次の例では、​masters/node-1/drain​ フェーズを再起動することでアップグレードを再開します。

    sudo /opt/anypoint/runtimefabric/installer/gravity upgrade --phase=/masters/node-1/drain --force --debug
  3. コマンドが実行されるまで待機します。コマンドがエラーで終了しない場合、次のコマンドを使用してアップグレードを再開します。

    sudo /opt/anypoint/runtimefabric/installer/gravity plan resume
  4. アップグレードがエラーで再度終了した場合、次の手順を実行します。

    1. ログを参照して、修正が必要なノードを特定します。

    2. 詳細なサポートが必要な場合は、MuleSoft サポートにチケットを申請してください。

  5. エラーログで特定した Runtime Fabric ノードの別のターミナルを開きます。

  6. アップグレードを実行しているコントローラーノードで、失敗したフェーズを手動で実行します。

    sudo /opt/anypoint/runtimefabric/installer/gravity plan execute --phase=< insert phase > --force --debug

このコマンドでエラーが返される場合は、数分待って上のステップを繰り返します。

アプライアンスのアップグレードのロールバック

アップグレードの問題を解決できない場合、次のいずれかのオプションを使用してアップグレードをロールバックできます。

  • 単一コマンドによる自動ロールバック

  • 手動ロールバック

単一コマンドによる自動ロールバック

次のコマンドを実行します。

rtfctl appliance rollback
このオプションは、新しいアプライアンスバージョンでのみサポートされます。コマンド出力で ​rtfctl appliance rollback​ コマンドがサポートされないと表示された場合は、手動ロールバックを実行してください。

手動ロールバック

実行したアップグレードステップを手動でロールバックするには、次の手順を実行します。

  1. gravity plan​ コマンドを使用して、アップグレードがどのフェーズで一時停止したかを特定します。

    sudo /opt/anypoint/runtimefabric/installer/gravity plan

    次の部分的なリストは、アップグレードフェーズの例を示しています。

    * init
    * checks
    * bootstrap
      * node-1
    * masters
      * node-1
        * drain
        * system-upgrade
        * taint
        ...
    * runtime
      * rbac-app
      * site
      * kubernetes
    * app
      * telekube
  2. 次の例のように、完了したステップを逆の順序でロールバックします。

    $ sudo gravity plan rollback --phase=/masters/node-1/taint
    $ sudo gravity plan rollback --phase=/masters/node-1/system-upgrade
    $ sudo gravity plan rollback --phase=/masters/node-1/drain
    ...

    一連のステップをロールバックする方法:

    $ sudo /opt/anypoint/runtimefabric/installer/gravity plan rollback --phase=/masters
  3. すべてのステップがロールバックされたら、計画の状況を更新し、完全にロールバック済みとしてアップグレードをマークします。

    $ sudo gravity plan complete