Runtime Fabric コマンドラインツールの使用

Runtime Fabric をローカルで管理するには、​rtfctl​ コマンドラインツールをインストールして使用します。​rtfctl​ ツールでは次のアクションがサポートされています。

  • Runtime Fabric の状況を取得する。

  • 実行中のアプリケーションのヒープダンプまたはスレッドダンプを実行する。

  • 実行中のアプリケーションのメモリ使用量を表示する。

  • プロキシ設定を管理する。

  • セキュアプロパティを管理する。

  • Mule ライセンスを管理する。

  • アラート送信者メールアドレスを管理します。

デフォルトの名前空間 (rtf) を使用している場合は、追加のフラグ ​--namespace <rtf_namespace>​ を指定する必要はありません。このフラグは rtfctl バージョン 0.4.1 以降のみで導入されています。

rtfctl のインストール

このセクション内のタスクは、IT 管理者が実行する必要があります。

AKS 用に Runtime Fabric を使用していて、AKS で管理される Azure AD インテグレーションが有効になっている場合、次のコマンドで rtfctl コマンドを実行するために必要なログイン情報が返されます。

az aks get-credentials --name <NAME> --resource-group <RESOURCE_GROUP> --admin

  1. rtfctl​ コマンドラインツールをダウンロードします。

    rtfctl​ は、Windows、MacOS (Darwin)、および Linux でサポートされています。適切な方法を選択してください。

    • Windows

      curl -L https://anypoint.mulesoft.com/runtimefabric/api/download/rtfctl-windows/latest -o rtfctl.exe
    • MacOS (Darwin)

      curl -L https://anypoint.mulesoft.com/runtimefabric/api/download/rtfctl-darwin/latest -o rtfctl
    • Linux

      curl -L https://anypoint.mulesoft.com/runtimefabric/api/download/rtfctl/latest -o rtfctl
  2. rtfctl​ コマンドラインツールのファイル権限を変更します。

    chmod +x rtfctl

コマンドの実行

「Organizing Cluster Access Using kubeconfig Files (kubeconfig を使用したクラスターアクセスの整理)」​で説明されているように ​rtfctl​ コマンドラインツールで kubeconfig ファイルがコンシュームされます。この方法を使用して、管理するクラスターを設定します。​rtfctl​ バイナリが現在の作業ディレクトリとユーザーの ​$PATH​ に存在することを確認します。

  • 特権ユーザーとして ​rtfctl​ コマンドを実行します。

  • サポートされているすべてのコマンドのリストを表示するには、​rtfctl -h​ を実行します。

  • 特定のコマンドの詳細については、​rtfctl <command> -h​ を実行します。

プロキシ設定の確認

コマンドを実行すると、​rtfctl​ は環境にプロキシ設定があるかどうかを確認します。このツールは ​NO_PROXY​ キー (大文字) を探して、​NO_PROXY​ が使用されていない場合は ​no_proxy​ キー (小文字) を受け入れます。両方のキーがある場合、​rtfctl​ は ​NO_PROXY​ を使用します。​rtfctl​ ツールは、プロキシ設定に従うようにローカルの Kubernetes コンテキスト内でキーを設定します。

Runtime Fabric を設定するコマンド

Runtime Fabric を設定するには次のコマンドを使用します。

コマンド 説明

Runtime Fabric 設定に変更を適用する

rtfctl を更新する

Runtime Fabric コンポーネントが準備完了になるのを待機する

apply

Runtime Fabric 設定に変更を適用します。

rtfcl apply​ と一緒に値を使用しても、OpenShift では機能しません。OpenShift コンソールで値を更新する必要があります。
  • HTTP プロキシ設定を適用する

    rtfctl apply http-proxy http://<host>:<port> --namespace <rtf_namespace>
  • プロキシをバイパスするホスト名を指定して HTTP プロキシ設定を適用する

    rtfctl apply http-proxy http://<host>:<port> --no-proxy "DOMAIN1.com,DOMAIN2.com" --namespace <rtf_namespace>
  • 認証を使用して HTTP プロキシ設定を適用する

    rtfctl apply http-proxy http://<username>:<password>@<host>:<port> --namespace <rtf_namespace>
  • HTTP プロキシ設定をクリアする

    rtfctl apply http-proxy "" --no-proxy "" --namespace <rtf_namespace>
  • セキュアプロパティを適用する

    rtfctl apply secure-property --key <key> --value <value> --app-namespace <app_namespace> --namespace <rtf_namespace>
  • ホストノードにシステム設定を適用する

    rtfctl apply system-configuration
  • 最新のスクリプトをダウンロードせずにホストノードにシステム設定を適用する

    rtfctl apply system-configuration --skip-download
  • Mule ライセンスを適用する

    rtfctl apply mule-license <base64_encoded_license> --namespace <rtf_namespace>
  • 監視プロキシを適用する

    rtfctl apply monitoring-proxy http://<host>:<port> --namespace <rtf_namespace>
  • 監視プロキシ設定をクリアする

    rtfctl apply monitoring-proxy "" --namespace <rtf_namespace>

update

rtfctl​ を更新します。

  • US コントロールプレーンから更新する

    rtfctl update
  • EU コントロールプレーンから ​rtfctl​ を更新する

    rtfctl update --host eu1.anypoint.mulesoft.com

wait

Runtime Fabric コンポーネントが準備完了になるのを待機する

  • 待機する秒数を指定する

rtfctl wait <value_in_seconds> --namespace <rtf_namespace>
  • 待機をタイムアウトするまでの秒数を指定する (デフォルトは 600 秒)

rtfctl wait --timeout <value_in_seconds> --namespace <rtf_namespace>

Runtime Fabric のインストールとアップグレードを行うコマンド

Runtime Fabric のインストールやアップグレード、またはバックアップや復元を実行するときには次のコマンドを使用します。

コマンド 説明

Runtime Fabric をインストールする

ローカルの Runtime Fabric の状態をバックアップする

ローカルの Runtime Fabric の状態をバックアップから復元する

Runtime Fabric インストールのクラスターを検証する

Runtime Fabric のバージョン情報を表示する

install

  • Runtime Fabric をインストールする

rtfctl install <activation_data>
  • Docker イメージレジストリ URL およびシークレットを上書きする

    rtfctl install <activation_data> --image-pull-registry <string>  --image-pull-secret <string>

backup

ローカルの Runtime Fabric の状態をバックアップする

rtfctl backup <backup_file_name>.tar.gz --namespace <rtf_namespace>

restore

ローカルの Runtime Fabric の状態をバックアップから復元する

rtfctl restore <backup_file_name>.tar.gz --namespace <rtf_namespace>

validate

Runtime Fabric インストールのクラスターを検証する

  • 検証チェックを実行する

    rtfctl validate <activation_data>
  • 検証チェックを実行し、プロキシ設定を含む ​fabric.tf​ 設定ファイルを渡す

    rtfctl validate -f <path_to_settings_file>

    プロキシを使用してインストールを検証するには、​settings​ ファイル内でプロキシ設定を指定する必要があります。

MULE_LICENSE=<your-mule-license>
ACTIVATION_DATA=<activation_data>
HTTP_PROXY=http://<proxy_domain>.com:<port>

version

Runtime Fabric のバージョン情報を表示する

rtfctl version --namespace <rtf_namespace>

Runtime Fabric 上のアプリケーションを管理するコマンド

Runtime Fabric にデプロイされたアプリケーションを管理するには次のコマンドを使用します。

コマンド 説明

セキュアプロパティを削除する

アプリケーションの詳細を表示する

アプリケーションのディスク使用量を表示する

ポッド内の JVM メモリ使用量を表示する

アプリケーションのデバッグ情報パッケージを作成する

アプリケーションを再起動する

JVM ヒープダンプを取得する

JVM スレッドダンプを取得する

delete

セキュアプロパティを削除する

rtfctl delete secure-property <sample_key> -n <app_namespace>

describe

特定の名前空間でのアプリケーションの詳細を表示する

rtfctl describe apps <app_name> --namespace <rtf_namespace>

rtfctl describe apps <app_name> --app-namespace <app_namespace> --namespace <rtf_namespace>

disk

アプリケーションのディスク使用量を表示する

  • デフォルトである最初のレプリカを使用してアプリケーションのディスク使用量を表示する

    rtfctl disk <app_name> --app-namespace <app_namespace> --namespace <rtf_namespace>
  • 特定のレプリカを使用してアプリケーションのディスク使用量を表示する

    rtfctl disk <app_name> --details --pod <replica_name> --app-namespace <app_namespace> --namespace <rtf_namespace>

memory

ポッド内の JVM メモリ使用量を表示する

  • 各レプリカの JVM メモリを取得する

    rtfctl memory <app_name> --app-namespace <app_namespace> --namespace <rtf_namespace>
  • 特定のレプリカの JVM メモリを取得する

    rtfctl memory <app_name> --pod <replica_name> --app-namespace <app_namespace> --namespace <rtf_namespace>

package

アプリケーションのデバッグ情報パッケージを作成する

  • デフォルトである最初のポッドを使用してアプリケーションのパッケージを作成する

    rtfctl package <app_name> <application_package_filename> --app-namespace <app_namespace> --namespace <rtf_namespace>
  • アプリケーション、ポリシー、​.mule​ ディレクトリを含むアプリケーションのパッケージを作成する

    rtfctl package <app_name> <application_package_filename> --apps --policies --dotmule --app-namespace <app_namespace> --namespace <rtf_namespace>
  • ヒープダンプを含むアプリケーションのパッケージを作成する

    rtfctl package <app_name> <application_package_filename> --heap-dump --app-namespace <app_namespace> --namespace <rtf_namespace>

restart

アプリケーションを再起動する

rtfctl restart <app_name> --app-namespace <app_namespace> --namespace <rtf_namespace>

heapdump

JVM ヒープダンプをトリガーする

  • デフォルトである最初のレプリカを使用してアプリケーションの JVM ヒープダンプを実行し、​`/tmp/dump.hprof​ として保存する

    rtfctl heapdump <app_name> <destination_path> --app-namespace <app_namespace> --namespace <rtf_namespace>
  • 特定のレプリカを使用してアプリケーションの JVM ヒープダンプを実行し、​/tmp/dump.hprof​ として保存する

    rtfctl heapdump <app_name> <destination_path> --pod <replica_name> --app-namespace <app_namespace> --namespace <rtf_namespace>

threaddump

JVM スレッドダンプをトリガーする

  • デフォルトである最初のレプリカを使用してアプリケーションの JVM スレッドダンプを実行する

    rtfctl threaddump <app_name> --app-namespace <app_namespace> --namespace <rtf_namespace>
  • 特定のレプリカを使用してアプリケーションの JVM スレッドダンプを実行する

    rtfctl threaddump <app_name> --pod <replica_name> --app-namespace <app_namespace> --namespace <rtf_namespace>

Runtime Fabric のトラブルシューティングを行うコマンド

Runtime Fabric のトラブルシューティングを行うには次のコマンドを使用します。

コマンド 説明

get

1 つ以上のリソースを表示する

ネットワーク接続をテストする

診断レポートを生成する

Runtime Fabric の状況を表示する

Runtime Fabric コントロールプレーンへのアウトバウンドネットワーク接続を検証する

get

1 つ以上のリソースを表示する

  • すべての環境のすべてのアプリケーションのリストを出力する

    rtfctl get apps --namespace <rtf_namespace>
  • 特定の環境のすべてのアプリケーションのリストを出力する

    rtfctl get apps --app-namespace <app_namespace> --namespace <rtf_namespace>
  • HTTP プロキシ設定を表示する

    rtfctl get http-proxy --namespace <rtf_namespace>
  • 監視プロキシ設定を表示する

    rtfctl get monitoring-proxy --namespace <rtf_namespace>
  • セキュアプロパティを表示する

    rtfctl get secure-properties --app-namespace <app_namespace> --namespace <rtf_namespace>
  • Mule ライセンスを表示する

    rtfctl get mule-license --namespace <rtf_namespace>
  • Runtime Fabric レジストリのログイン情報を表示する

    rtfctl get registry-credentials <activation_data>

ping

ネットワーク接続をテストする

  • デフォルトである最初のレプリカを使用してアプリケーション内部から example.com に ping する

    rtfctl ping <app_name> <host_or_ip_address> --app-namespace <app_namespace> --namespace <rtf_namespace>
  • デフォルトである最初のレプリカを使用してアプリケーション内部からポート ​12345​ 上で example.com への接続を試みる

    rtfctl ping <app_name> <host_or_ip_address> --port <port> --app-namespace <app_namespace> --namespace <rtf_namespace>

report

rtf-report.tar.gz​ に診断レポートを生成する

rtfctl report --namespace <rtf_namespace>

並列で実行されるタスクの数を制御する ​workers​ フラグを使用して、rtfctl report タスクを並列で実行します。デフォルト値は 10 です。

rtfctl report --workers <num_of_workers>

rtfctl report​ と ​--use-fast-compression​ フラグによって生成される tarball の圧縮を高速化します。デフォルト値は false です。

rtfctl report --use-fast-compression=true

--namespaces​ フラグを使用して、インストールの名前空間の他にレポートに含めるアプリケーションの名前空間を選択します。このフラグにより、レポートに含める内容が制御され、選択した名前空間のみがレポートされる場合は収集が高速化される可能性があります。

  # Reports rtf installation default namespace (rtf)
  rtfctl report
  # Reports only <rtf_namespace>
  rtfctl report -n <rtf_namespace>
  # Reports for <app_namespace_1> and <app_namespace_2> application namespaces that belong to <rtf_namespace>
  rtfctl report -n <rtf_namespace> --app-namespaces <app_namespace_1>,<app_namespace_2>
  rtfctl report -n <rtf_namespace> --app-namespaces <app_namespace_1> --app-namespaces <app_namespace_2>
  # Report for all application namespaces that belong to <rtf_namespace>
  rtfctl report -n <rtf_namespace> --app-namespaces all

status

Runtime Fabric の状況を表示する

  • JSON で状況出力を表示する

    rtfctl status --output json --namespace <rtf_namespace>
  • Kubernetes DNS の健全性を確認する

    rtfctl status dns-check --node-label "<k>:<v>"

test

Runtime Fabric コントロールプレーンへのアウトバウンドネットワーク接続を検証する

  • 任意のノードでのチェックをスケジュールする

    rtfctl test outbound-network --namespace <rtf_namespace>
  • node-label​ パラメーターを満たすノードでのチェックをスケジュールする

    rtfctl test outbound-network --node-label "<k>:<v>" --namespace <rtf_namespace>
  • すべてのノードでのチェックをスケジュールする

    rtfctl test outbound-network --all --namespace <rtf_namespace>

使用方法

Mule ライセンスのインストール

  1. 必ずライセンスを Base64 でエンコードしてください。

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

    $ sudo ./rtfctl apply mule-license '<license-key-information>'  --namespace rtf1
    Updating rtf namespace... OK

ヒープダンプの取得

$ sudo /usr/local/bin/rtfctl heapdump hello-world /tmp/dump.hprof --app-namespace bed42b62-XXXX --namespace rtf1
Dumping heap for hello-world-f76484d8-l44qv...
Heap dump written to /tmp/dump.hprof

追加の情報については、​rtfctl heapdump -h​ コマンドを実行します。

複数のレプリカとの連携

--pod​ フラグを受け入れるアプリケーション管理コマンドの場合、​describe​ コマンドを使用してレプリカのリストを取得できます。

$ sudo ./rtfctl describe apps hello-world --app-namespace bed42b62-XXXX --namespace rtf1
Name:              hello-world
Namespace:         bed42b62-XXXX
Status:            PROGRESSING
Runtime:           2
ID:
Version:
Organization ID:   d30f74c0-XXXX
Replicas:          1 desired | 1 updated | 1 total | 0 available | 1 unavailable

  Name                             Status
  ----                             ------
  hello-world-77f5897949-z54gb   Pending

rtfctl 操作の監査

rtfct​l コマンドラインツール (v1.0.29 以降) は、クラスター上の ​rtfctl​ 操作を監査し、Runtime Fabric コアソフトウェアに影響を与える操作の追跡を支援します。

以下の点に留意してください。

  • 監査ログは ​rtfctl-audit​ 名前空間の Kubernetes シークレットに保存されます。

  • 監査ログはクラスターにスコープ設定され、Runtime Fabric コアソフトウェアのライフサイクルには添付されません。

  • 監査プロセスが操作の監査に失敗しても、コマンド実行は操作可能な状態を維持します。

操作を監査するには、次のコマンドを実行します。

$ sudo ./rtfctl audit-logs

出力例:

[{"timestamp":"2023-10-26 00:52:24.446 +0000 UTC","kubeContext":"test-k8scontext","command":["./rtfctl","restart","test-application","--app-namespace","8456f9c7-2149-4983-b02b-6b18ddd28efe","--namespace","rtf"]}]
現在、監査ログのロールオーバーや循環はサポートされていません。

rtfctl 出力の理解

rtfctl​ コマンドラインツールでは通常、他のアプリケーションやシステムツールを呼び出し、これらの呼び出しの出力は標準出力および標準エラー出力に送信されます。この出力は実行される各操作のコンテキストで記述されます。

操作が成功したか失敗したかを明確にするために、​rtfctl​ コマンドラインツールには最も詳細なコマンドの最後の出力行が含まれます。通常の操作には、停止しているシステムユニットをもう一度停止しようとした場合など、中間の​失敗​メッセージが含まれる場合があります。

メッセージが問題を示しているかどうか疑わしい場合は、システム管理者と話し合うか、MuleSoft サポートにお問い合わせください。

以前の rtfctl CLI バージョンのダウンロード

次の REST API コールを使用して、さまざまな rtfctl ツールの CLI バージョンをダウンロードできます。

curl -L https://anypoint.mulesoft.com/runtimefabric/api/download/rtfctl/{version} -o rtfctl