自己管理型 Kubernetes の Anypoint Runtime Fabric を使用すると、作成、設定、管理する Kubernetes クラスターに Mule アプリケーションおよび API プロキシをデプロイできます。自己管理型 Kubernetes の Anypoint Runtime Fabric は既存の Amazon Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS)、または Google Kubernetes Engine (GKE) 環境のサービスとして実行されます。
自己管理型 Kubernetes の Anypoint Runtime Fabric のコアコンポーネント
自己管理型 Kubernetes の Anypoint Runtime Fabric とその基盤となるコンポーネントは、EKS、AKS、または GKE 環境で Kubernetes デプロイメントオブジェクトとして実行されます。これらのオブジェクトは Anypoint Platform を通じて管理します。
Linux ベースのオペレーティングシステムは、自己管理型 Kubernetes クラスターで Runtime Fabric コンポーネントを実行するすべてのノードに必要です。
Runtime Fabric エージェント
Runtime Fabric エージェントはポッドとしてクラスターにデプロイされ、起動時に確立される mTLS アウトバウンド接続を介してコントロールプレーンと通信します。
エージェントはイベント駆動型です。アプリケーションの状態変更により Kubernetes イベントが生成されると、エージェントはアプリケーションの現在の状態を説明するメタデータをコントロールプレーンに送信します。Kubernetes イベントにはアプリケーションポッドの起動、更新、または再起動が含まれます。
エージェントはコントロールプレーンからの受信要求もリスンします。エージェントがコントロールプレーンからメッセージを受信すると、エージェントはメッセージで指定された Kubernetes リソースに変更を加えます。このような変更には、新しいアプリケーションの作成、既存のアプリケーションの更新、アプリケーションの削除などがあります。
追加のクラスターコンポーネント
次の Runtime Fabric コンポーネントも Kubernetes クラスター内で実行されます。
-
Mule クラスター IP サービス: Mule アプリケーションがクラスター内でピアを発見するために使用する API を提供します。
-
リソースキャッシュ: アプリケーション連動関係のクラスター-ローカルキャッシュを提供します。
-
永続性ゲートウェイ: Mule アプリケーションへの永続性 ObjectStore インターフェースを提供します。
コンポーネントのインストールとアップグレードについて
自己管理型 Kubernetes の Anypoint Runtime Fabric を Kubernetes クラスターにインストールすると、コマンドラインユーティリティ (rtfctl) によってアクティベーションデータトークンが一連のアクティベーションプロパティにスワップされます。プロパティには Runtime Fabric Docker レジストリにアクセスするためのログイン情報と Anypoint Platform への mTLS 接続を確立するためのログイン情報が含まれます。続いて、ユーティリティでインストールを実行するための Helm が呼び出されます。
クラスターでの自己管理型 Kubernetes の Anypoint Runtime Fabric コンポーネントへのアップグレードは、Anypoint Platform コントロールプレーンから、具体的には Runtime Manager からトリガーします。アップグレードをトリガーすると、アップグレードメッセージが対象クラスター内で処理され、rtfctl でコンポーネントのソフトウェアバージョンをアップグレードするための Helm が呼び出されます。アップグレード中に問題が発生した場合、rtfctl を使用して Helm ロールバックを呼び出し、クラスターを安定状態に復元できます。ロールバックにより、コントロールプレーンにレポートが作成されます。
自己管理型 Kubernetes の Anypoint Runtime Fabric でのアプリケーションデプロイメントの動作
自己管理型 Kubernetes の Anypoint Runtime Fabric にアプリケーションをデプロイするときは、次の動作が起こります。
-
Runtime Manager を使用してアプリケーションデプロイメントをトリガーします。
-
対象クラスターの Runtime Fabric エージェントがアプリケーションをデプロイする要求を受信します。
-
Runtime Fabric によってアプリケーションが既存の名前空間に割り当てられるか、必要な場合は新しい名前空間が作成されます。
-
Runtime Fabric によってデプロイメント、ConfigMap、シークレット、サービス、イングレスなど、適切な Kubernetes リソースが生成されます。
-
Kubernetes デプロイメントリソースに init コンテナが含まれている場合は、Runtime Fabric リソースキャッシュから連動関係が取得されます。
-
リソースキャッシュに必須の連動関係が含まれていない場合、Runtime Fabric によってコントロールプレーンから取得され、リソースキャッシュに追加されます。
自己管理型 Kubernetes の Anypoint Runtime Fabric で名前空間を割り当てる
各アプリケーションはアプリケーションの環境に基づいて Kubernetes 名前空間にデプロイされます。
-
Runtime Fabric によって表示ラベルが
rtf.mulesoft.com/envId=<ANYPOINT_ENVIRONMENT_ID> の名前空間が検索されます。 -
Runtime Fabric によってその表示ラベルを見つけられなかった場合は、名前が
<ANYPOINT_ENVIRONMENT_ID> の名前空間が検索されます。 -
Runtime Fabric によってその名前空間が見つけられなかった場合、
<ANYPOINT_ENVIRONMENT_ID> という名前の新しい名前空間が作成されます。
共有責任としての自己管理型 Kubernetes の Anypoint Runtime Fabric
自己管理型 Kubernetes で Anypoint Runtime Fabric が正常に動作するかどうかは共有責任となります。お客様が提供して管理する領域と MuleSoft によって提供される領域を理解することが重要です。
自己管理型 Kubernetes の Anypoint Runtime Fabric インスタンスにおける MuleSoft とお客様の異なる共有責任を下図に示します。
MuleSoft によって提供される内容
MuleSoft は、Runtime Fabric エージェント、Mule Runtime Engine (Mule)、および Mule アプリケーションのデプロイに使用されるその他の連動関係を提供します。Runtime Fabric エージェントは、デプロイメント、ポッド、レプリカセット、イングレスリソースなどの Kubernetes リソースを生成して更新することで Mule アプリケーションをデプロイして管理します。
お客様による管理
お客様は、自己管理型 Kubernetes の Anypoint Runtime Fabric に使用される Kubernetes のプロビジョニング、設定、管理の責任を負います。下記のような、Kubernetes クラスターで機能をセットアップまたは有効化するために使用される追加の設定も、お客様が管理する責任を負います。
-
イングレスコントローラーとイングレスリソースのカスタマイズ
-
内部負荷分散
-
ログ転送
-
監視
-
ネットワークポート、NAT ゲートウェイ、プロキシ
-
ホストランタイムとネットワーク
-
Kubernetes 環境のプロビジョニングと管理。これには、組織内の次のチームの支援が必要です
-
IT チームによるインフラストラクチャのプロビジョニングと管理
-
ネットワークチームによる許可ポートの指定とプロキシの設定
-
セキュリティチームによるコンプライアンスの検証とセキュリティ証明書の取得
-
自己管理型 Kubernetes の Runtime Fabric の要件
以降の説明で、自己管理型 Kubernetes の Anypoint Runtime Fabric を実行するための全般的な要件を示します。
Kubernetes のサポート
自己管理型 Kubernetes の Runtime Fabric には、プロビジョニングされ運用可能な専用クラスターが必要です。rtfctl コマンドラインユーティリティを使用して、環境が正しく設定されているかどうかを確認します。「自己管理型 Kubernetes の Runtime Fabric のインストール」を参照してください。
サポートされている Kubernetes バージョンについては、メジャーおよびマイナーバージョンの Runtime Fabric のリリースノートを参照してください。
サポート対象のアーキテクチャ
自己管理型 Kubernetes の Anypoint Runtime Fabric には、x86/x64 アーキテクチャを使用するワーカーノードが必要です。ARM ベースのアーキテクチャはサポートされていません。
オペレーティングシステム
自己管理型 Kubernetes の Anypoint Runtime Fabric では、Amazon EKS、AKS、または GKE でサポートされる Linux ベースのオペレーティングシステムがサポートされています。
ノードおよびリソース
一般に、Kubernetes ベンダーによって提供されるベストプラクティスに従って、可用性を確保し、インフラストラクチャの管理を簡略化します。
それぞれが次のリソースを使用する少なくとも 2 つのノードがある環境で、自己管理型 Kubernetes の Runtime Fabric をインストールして、ベストプラクティスに従ってください。
-
少なくとも 2 つの CPU コア
-
少なくとも 15 GiB の RAM
-
少なくとも 250 GiB の空きディスク容量
自己管理型 Kubernetes の Anypoint Runtime Fabric の各インスタンスで実行するワークロードの量と種別に応じて、割り当てられるノード数とリソース量を調整します。
Anypoint Platform のロールと権限
自己管理型 Kubernetes の Anypoint Runtime Fabric を適切に使用するには、Anypoint Platform アカウントで次の権限が有効になっている必要があります。
-
Anypoint Platform ユーザーの権限を管理するには、Anypoint Access Management を使用するための権限が必要です。
-
アプリケーションをデプロイして管理するには、Anypoint Runtime Manager を使用するための権限が必要です。アプリケーションをデプロイするには、Anypoint Platform アカウントの「Exchange Contributors (Exchange コントリビューター)」権限を有効にする必要があります。
-
Runtime Fabric を使用するには、対応する環境の「Organization Administrators (組織のシステム管理者)」権限または「Manage Runtime Fabrics (Runtime Fabric の管理)」権限が必要です。
-
Runtime Fabric インスタンスを削除するには、システム管理者に組織レベルの「Manage Runtime Fabrics (Runtime Fabric の管理)」権限が必要です。
ネットワーク設定
自己管理型 Kubernetes の Anypoint Runtime Fabric では、ネットワークポート、ホスト名、証明書を正しく機能するように IT 管理者が設定する必要があります。「自己管理型 Kubernetes の Runtime Fabric をサポートするためのネットワークの設定」を参照してください。
イングレスコントローラー
自己管理型 Kubernetes の Runtime Fabric では、Kubernetes 環境と互換性があるすべてのイングレスコントローラーがサポートされ、アプリケーションデプロイメントごとに個別のイングレスリソースが作成されるデプロイメントモデルがサポートされています。一般に、既製のイングレスコントローラーのほとんどではこのモデルがサポートされています。
|
GKE のお客様の場合、デフォルトで GKE と一緒に含まれているイングレスコントローラーによってアプリケーションごとに個別の HTTP ロードバランサーがプロビジョニングされます。GKE によって提供されるイングレスコントローラーを使用する前に、その動作についての詳細を確認して回避策を調べ、この動作が望ましくない場合は別のイングレスコントローラーを使用してください。詳細は、KB 記事を参照してください。 |
ログ
Anypoint Monitoring では、Runtime Fabric にデプロイされたアプリケーションのログデータへのアクセスが提供されます。Anypoint Monitoring でログにアクセスするには、Anypoint Integration Advanced パッケージまたは Anypoint Platform の Titanium サブスクリプションが必要です。
自己管理型 Kubernetes の Runtime Fabric にデプロイされたアプリケーションでは、ログが stdout に転送されます。コンテナランタイムはログを収集してファイルに書き込みます。このファイルの保存場所はコンテナランタイムと設定によって異なります。詳細は Kubernetes 環境のドキュメントを参照してください。
外部ログ転送
自己管理型 Kubernetes の Anypoint Runtime Fabric では、外部ログ転送はサポートされていません。お客様は、外部ログフォワーダーをインストール、設定、管理する責任を負います。Amazon EKS、AKS、または GKE で実行される Kubernetes 環境と互換性のある任意の外部ログ転送エージェントを使用できます。次のような一般的ログ転送エージェントがあります。
-
Splunk Connect for Kubernetes
-
Fluentbit
Titanium のお客様の場合、自己管理型 Kubernetes の Anypoint Runtime Fabric では Anypoint Monitoring を使用したログがサポートされています。詳細は、「Anypoint Monitoring のログ」を参照してください。
監視
Anypoint Monitoring では、Runtime Fabric にデプロイされたアプリケーションや API ゲートウェイのメトリクスが提供されます。
メトリクスを収集するために、Runtime Fabric にデプロイされたすべてのアプリケーションで Anypoint Monitoring サイドカーが実行されます。監視を有効または無効にする方法など、詳細は「Runtime Fabric にデプロイされたアプリケーションの監視」を参照してください。
Runtime Fabric ではサードパーティ監視ソリューションの統合はサポートされていません。