Anypoint Runtime Fabric の概要

Anypoint Runtime Fabric を使用すると、作成、設定、管理する Kubernetes クラスターに Mule アプリケーションおよび API プロキシをデプロイできます。

公開クラウドで作業をしていて、Kubernetes クラスターの管理についてある程度の専門知識がある場合、Runtime Fabric は以下をサポートします。

公開 K8s ディストリビューションを使用して自社のベアメタルソリューションを標準化する場合は、パブリッククラウドとのアフィニティと組織内の Kubernetes の専門知識に応じて、以下の自己管理 Red Hat OpenShift 製品を利用して、オンプレミスと公開クラウドのベアメタルソリューションを実装できます。

Anypoint Runtime Fabric のいくつかの機能を次に示します。

  • アプリケーションサーバーごとに個別の Mule Runtime サーバーを実行することによるアプリケーション間の分離。

  • 同じ一連のリソースで複数のバージョンの Mule Runtime サーバーを実行する機能。

  • 複数のレプリカにわたるアプリケーションのスケーリング。

  • 自動化されたアプリケーションフェールオーバー。

  • Anypoint Runtime Manager を使用したアプリケーション管理。

共有責任としての Anypoint Runtime Fabric

Anypoint Runtime Fabric が正常に動作するかどうかは共有責任となります。お客様が提供して管理する領域と MuleSoft によって提供される領域を理解することが重要です。

Anypoint Runtime Fabric インスタンスにおける MuleSoft とお客様の異なる共有責任を下図に示します。

Anypoint Runtime Fabric の共有責任の図

MuleSoft によって提供される内容

MuleSoft は、Runtime Fabric エージェント、Mule Runtime Engine (Mule)、および Mule アプリケーションのデプロイに使用されるその他の連動関係を提供します。Runtime Fabric エージェントは、デプロイメント、ポッド、レプリカセット、イングレスリソースなどの Kubernetes リソースを生成して更新することで Mule アプリケーションをデプロイして管理します。

Runtime Fabric コアサービス

Anypoint Runtime Fabric とその基盤となるコンポーネントは、EKS、AKS、GKE、または RedHat OpenShift 環境で Kubernetes デプロイメントオブジェクトとして実行されます。これらのオブジェクトは Anypoint Platform を通じて管理します。

Linux ベースのオペレーティングシステムは、Kubernetes クラスターで Runtime Fabric コンポーネントを実行するすべてのノードに必要です。

  • Runtime Fabric エージェント

    Runtime Fabric エージェントはポッドとしてクラスターにデプロイされ、起動時に確立される mTLS アウトバウンド接続を介してコントロールプレーンと通信します。

    エージェントはイベント駆動型です。アプリケーションの状態変更により Kubernetes イベントが生成されると、エージェントはアプリケーションの現在の状態を説明するメタデータをコントロールプレーンに送信します。Kubernetes イベントにはアプリケーションポッドの起動、更新、または再起動が含まれます。

    エージェントはコントロールプレーンからの受信要求もリスンします。エージェントがコントロールプレーンからメッセージを受信すると、エージェントはメッセージで指定された Kubernetes リソースに変更を加えます。このような変更には、新しいアプリケーションの作成、既存のアプリケーションの更新、アプリケーションの削除などがあります。

  • Mule クラスター IP サービス

    Mule アプリケーションがクラスター内でピアを発見するために使用する API を提供します。

  • リソースキャッシュ

    アプリケーション連動関係のクラスター-ローカルキャッシュを提供します。

これらのサービスは、コア Runtime Fabric インストールの名前空間とレプリカ内で分離されています。これらのサービスはアプリケーションまたはノードの増加に伴って増加しません。

アプリケーションサービス

Runtime Fabric によって次のアプリケーションサービスがインストールされるのは、ユーザーが設定した場合のみです。

  • 永続性ゲートウェイ: Mule アプリケーション (ユーザーが設定した複製) への永続性 ObjectStore v2 インターフェースを提供します。

  • Anypoint Monitoring サイドカー: 監視およびログ記録用 (アプリケーションレプリカごとに 1 つのサイドカーがデプロイされる)

お客様による管理

お客様は、Runtime Fabric に使用される Kubernetes クラスターのプロビジョニング、設定、管理の責任を負います。下記のような、Kubernetes クラスターで機能をセットアップまたは有効化するために使用される追加の設定も、お客様が管理する責任を負います。

  • イングレスコントローラーと​『イングレスリソースのカスタマイズ』

  • 内部負荷分散

  • ログ転送

  • 監視

  • ネットワークポート、NAT ゲートウェイ、プロキシ

  • ホストランタイムとネットワーク

  • Kubernetes 環境のプロビジョニングと管理。これには、組織内の次のチームの支援が必要です

    • IT チームによるインフラストラクチャのプロビジョニングと管理

    • ネットワークチームによる許可ポートの指定とプロキシの設定

    • セキュリティチームによるコンプライアンスの検証とセキュリティ証明書の取得

Anypoint Runtime Fabric でのアプリケーションデプロイメントの動作

Anypoint Runtime Fabric にアプリケーションをデプロイするときは、次の動作が起こります。

  1. Runtime Manager を使用してアプリケーションデプロイメントをトリガーします。

  2. 対象クラスターの Runtime Fabric エージェントがアプリケーションをデプロイする要求を受信します。

  3. Runtime Fabric によってアプリケーションが既存の名前空間に割り当てられるか、必要な場合は新しい名前空間が作成されます。

  4. Runtime Fabric によってデプロイメント、ConfigMap、シークレット、サービス、イングレスなど、適切な Kubernetes リソースが生成されます。

  5. Kubernetes デプロイメントリソースに init コンテナが含まれている場合は、Runtime Fabric リソースキャッシュから連動関係が取得されます。

  6. リソースキャッシュに必須の連動関係が含まれていない場合、Runtime Fabric によってコントロールプレーンから取得され、リソースキャッシュに追加されます。

Runtime Fabric のアプリケーションデプロイメントワークフロー

Anypoint Runtime Fabric で名前空間を割り当てる

各アプリケーションはアプリケーションの環境に基づいて Kubernetes 名前空間にデプロイされます。

  1. Runtime Fabric によって表示ラベルが ​rtf.mulesoft.com/envId=<ANYPOINT_ENVIRONMENT_ID>​ の名前空間が検索されます。

  2. Runtime Fabric によってその表示ラベルを見つけられなかった場合は、名前が ​<ANYPOINT_ENVIRONMENT_ID>​ の名前空間が検索されます。

  3. Runtime Fabric によってその名前空間が見つけられなかった場合、​<ANYPOINT_ENVIRONMENT_ID>​ という名前の新しい名前空間が作成され、​rtf.mulesoft.com/envId=<ANYPOINT_ENVIRONMENT_ID>​ という表示ラベルが追加されます。

アプリケーション名前空間の割り当てフローチャート

アプリケーションデプロイメントの監視

Runtime Fabric エージェントでは、​rtf.mulesoft.com/id​ という表示ラベルの付いた Kubernetes デプロイメントを監視します。Kubernetes によってデプロイメントの状態が更新されると、エージェントによってその更新がコントロールプレーンに送信されます。詳細は、​「ログ」​と​「監視」​を参照してください。

Runtime Fabric の要件

以降の説明で、Anypoint Runtime Fabric を実行するための全般的な要件を示します。

Kubernetes のサポート

Runtime Fabric には、プロビジョニングされ運用可能な Kubernetes クラスターが必要です。​rtfctl​ コマンドラインユーティリティを使用して、環境が正しく設定されているかどうかを確認します。​「Runtime Fabric のインストール」​を参照してください。

サポートされている Kubernetes バージョンについては、メジャーおよびマイナーバージョンの Runtime Fabric の​『リリースノート』​を参照してください。

サポート対象のアーキテクチャ

Anypoint Runtime Fabric には、x86/x64 アーキテクチャを使用するワーカーノードが必要です。ARM ベースのアーキテクチャはサポートされていません。

オペレーティングシステム

Anypoint Runtime Fabric では、Amazon EKS、AKS、GKE、または RedHat OpenShift でサポートされる Linux ベースのオペレーティングシステムがサポートされています。

ノードおよびリソース

一般に、Kubernetes ベンダーによって提供されるベストプラクティスに従って、可用性を確保し、インフラストラクチャの管理を簡略化します。

それぞれが次のリソースを使用する少なくとも 2 つのノードがある環境で、Runtime Fabric をインストールして、ベストプラクティスに従ってください。

  • 少なくとも 2 つの CPU コア

  • 少なくとも 15 GiB の RAM

  • 少なくとも 250 GiB の空きディスク容量

各 Anypoint Runtime Fabric インスタンスで実行するワークロードの量と種別に応じて、割り当てられるノード数とリソース量を調整します。

Runtime Fabric ClusterRole アクセス

次の Runtime Fabric ClusterRoles により、Kubernetes シークレットに保存されるデータの作成と読み取りが行われます。

  • am-log-forwarder

  • rtf:agent

  • rtf:certificate-renewal

  • rtf-restricted

  • rtf:cluster-status

  • rtf:install

  • rtf:persistence-gateway-clro-read-only

  • rtf:upgrade

  • rtf:mule-clusterip-service

Anypoint Platform のロールと権限

Anypoint Runtime Fabric を適切に使用するには、Anypoint Platform アカウントで次の権限が有効になっている必要があります。

  • Anypoint Platform ユーザーの権限を管理するには、​『Anypoint Access Management』​ を使用するための権限が必要です。

  • アプリケーションをデプロイおよび管理するには、次の権限を持っていることを確認してください。

    • Anypoint Runtime Manager を使用する権限

    • Anypoint Platform アカウントで有効になっている Exchange コントリビューター権限

    • Runtime Manager の [Applications (アプリケーション)] ページですべてのアプリケーションを表示するために必要な「Read Applications (アプリケーションの参照)」権限と「Read Runtime Fabric (Runtime Fabric の読み取り)」権限

  • Runtime Fabric を使用するには、対応する環境の「Organization Administrators (組織のシステム管理者)」権限または「Manage Runtime Fabrics (Runtime Fabric の管理)」権限が必要です。

  • Runtime Fabric インスタンスを削除するには、システム管理者に組織レベルの「Manage Runtime Fabrics (Runtime Fabric の管理)」権限が必要です。

ネットワーク設定

Anypoint Runtime Fabric では、ネットワークポート、ホスト名、証明書を正しく機能するように IT 管理者が設定する必要があります。​「Runtime Fabric をサポートするためのネットワークの設定」​を参照してください。

イングレスコントローラー

Runtime Fabric では、Kubernetes 環境と互換性があるすべてのイングレスコントローラーがサポートされ、アプリケーションデプロイメントごとに個別のイングレスリソースが作成されるデプロイメントモデルがサポートされています。一般に、既製のイングレスコントローラーのほとんどではこのモデルがサポートされています。

デフォルトでは、GKE と一緒に含まれているイングレスコントローラーによってアプリケーションごとに個別の HTTP ロードバランサーがプロビジョニングされます。GKE によって提供されるイングレスコントローラーを使用する前に、その動作についての詳細を確認して回避策を調べ、この動作が望ましくない場合は別のイングレスコントローラーを使用してください。詳細は、次の KB 記事Leaving the Site​を参照してください。

ログ

Anypoint Monitoring では、Runtime Fabric にデプロイされたアプリケーションの​『ログデータ』​へのアクセスが提供されます。Anypoint Monitoring でログにアクセスするには、Anypoint Integration Advanced パッケージまたは Anypoint Platform の Titanium サブスクリプションが必要です。

Runtime Fabric にデプロイされたアプリケーションでは、ログが ​stdout​ に転送されます。コンテナランタイムはログを収集してファイルに書き込みます。このファイルの保存場所はコンテナランタイムと設定によって異なります。詳細は Kubernetes 環境のドキュメントを参照してください。

外部ログ転送

Anypoint Runtime Fabric では、外部ログ転送はサポートされていません。お客様は、外部ログフォワーダーをインストール、設定、管理する責任を負います。Amazon EKS、AKS、または GKE で実行される Kubernetes 環境と互換性のある任意の外部ログ転送エージェントを使用できます。次のような一般的ログ転送エージェントがあります。

  • Splunk Connect for Kubernetes

  • Fluentbit

Runtime Fabric は Log4j アペンダーもサポートしています。

監視

『Anypoint Monitoring』​ では、Runtime Fabric にデプロイされたアプリケーションや API ゲートウェイのメトリクスが提供されます。

メトリクスを収集するために、Runtime Fabric にデプロイされたすべてのアプリケーションで Anypoint Monitoring サイドカーが実行されます。監視を有効または無効にする方法など、詳細は​「Runtime Fabric にデプロイされたアプリケーションの監視」​を参照してください。

Runtime Fabric ではサードパーティ監視ソリューションの統合はサポートされていません。

Runtime Fabric の機能サポートリスト

次の表に、サポートされる機能とサポートされない機能を示します。

機能 状況

Mules および API ゲートウェイのデプロイのサポート

サポート

Kubernetes と Docker

含まれない。

Kubernetes および Docker のインスタンスを Amazon EKS、AKS、または GKE クラスター経由で提供します。

Linux ディストリビューションでのインストール

サポート

ノードの自動スケーリング

AWS、Azure、Google Cloud、または RedHat OpenShift の機能を使用してサポート

外部ログ転送

外部ログ転送サービスを提供する必要があります。

内部ロードバランサー

内部ロードバランサー (イングレスコントローラー) を提供する必要があります。

Anypoint Security Edge

サポート対象外

Anypoint Security トークナイゼーション

サポート対象外

オペレーションセンター

含まれない
AWS、Azure、Google Cloud、または RedHat OpenShift で監視とアラートを有効にできます。

Anypoint Runtime Fabric とスタンドアロン Mule Runtime (ハイブリッドデプロイメント)

Mule アプリケーションのハイブリッドデプロイメントでは、Mule Runtime の 1 つのバージョンをサーバーにインストールし、1 つ以上のアプリケーションをサーバーにデプロイする必要があります。各アプリケーションは、Mule Runtime サーバーとそれに割り当てられたリソースを共有します。証明書やデータベース接続などの他のリソースも、ドメインを使用して共有される場合があります。

Anypoint Runtime Fabric は、異なる方法でリソースをプロビジョニングします。各 Mule アプリケーションや API ゲートウェイは、独自の Mule Runtime およびコンテナ内で実行されます。コンテナで使用できるリソースは、Mule アプリケーションや API プロキシのデプロイ時に指定します。これにより、Mule アプリケーションは他の連動関係を使用せずに複数のノードにわたって水平方向にスケールできます。また、同じノードのリソースに対して異なるアプリケーションが相互に競合しないようになります。