Azure Arc を使用した Kubernetes 上の Event Grid (プレビュー) - 概要
この記事では、Kubernetes 上の Event Grid の概要、使用方法のユース ケース、提供されている機能、および Azure Event Grid との違いについて説明します。
重要
Azure Arc を使用した Kubernetes 上の Event Grid は、現在パブリック プレビュー中です。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
Event Grid とは
Event Grid は、イベント駆動型のアーキテクチャを使用するワークロードを統合するために使用するイベント ブローカーです。 イベント駆動型のアーキテクチャでは、システム状態の変化をイベントを使用して通知します。これは、マイクロサービスなどが使用されている分離されたアーキテクチャにおける、一般的な統合アプローチです。 Event Grid は、イベントがサブスクライバーに送信 (プッシュ) されても、そのサブスクライバーがイベントを送信しているパブリッシャーを認識している必要はない、Pub-Sub (Push-Push とも呼ばれる) という通信モデルを提供します。 このモデルは、クライアントによってメッセージ ブローカーからメッセージがプルされるためにメッセージ ブローカーと消費クライアント間の結合がより強固な Azure Service Bus または Azure Event Hubs で使用されている従来の Push-Pull 型のモデルとは対照的です。
Event Grid には、次の 2 つのエディションが提供されています。Azure 上のフル マネージド PaaS サービスである Azure Event Grid と、オンプレミスでもクラウドでも、Kubernetes クラスターがデプロイできる任意の場所で Event Grid を使用できるようにする Azure Arc を使用した Kubernetes 上の Event Grid です。
この記事ではわかりやすくするために、使用するエディションにかかわらず、一般的なサービス機能を指す場合には「Event Grid」という用語を使用します。 また Azure でホストされているマネージド サービスを指す場合は、「Azure Event Grid」と表記します。 簡潔にするため、「Azure Arc を使用した Kubernetes 上の Event Grid」についても、「Kubernetes 上の Event Grid」と表記します。
使用する Event Grid のエディションにかかわらず、Event Grid にイベントを送信するイベント パブリッシャーと、Event Grid によって配信されたイベントを受信するエンドポイントを公開する 1 つ以上のイベント サブスクライバーがあります。 Event Grid に発行するすべてのイベントを、すべてのイベント サブスクライバーに配信する必要はありません。 Event Grid では、イベント サブスクリプションで定義されている一連の構成設定を使用して、特定の宛先にルーティングする必要があるイベントを選択できます。 イベント サブスクリプションのフィルター機能を使用して、特定のイベントを 1 つのエンドポイントにルーティングしたり、複数のエンドポイントにマルチキャストしたりすることができます。 Event Grid は、再試行ロジックを備えた信頼性の高い配信メカニズムも提供します。 Event Grid はオープン標準にも準拠しており、Cloud Events 1.0 スキーマ仕様をサポートしています。
Azure Arc を使用した Kubernetes 上の Event Grid
Azure Arc を使用した Kubernetes 上の Event Grid は、独自の Kubernetes クラスターで Event Grid を実行できるオファリングです。 この機能は、Azure Arc 対応 Kubernetes を使用すると有効になります。 Azure Arc 対応 Kubernetes を使用すると、サポートされている Kubernetes クラスターが Azure に接続されます。 接続したら、そこに Event Grid をインストールできます。
使用事例
Kubernetes 上の Event Grid では、さまざまなイベント駆動型の統合シナリオがサポートされています。 ただし、ユーザー ストーリーとしてサポートされる、これを包含する主なシナリオは次の通りです。
「Kubernetes クラスターにデプロイしたシステムの所有者として、イベントを発行し、そのイベントのルーティングを構成することで、システムの状態変化を伝達したいと考えています。これは、私の管理下にあるか否かに関わらず、イベント ハンドラーでシステムのイベントを適切な方法で処理できるようにするためです。」
上記の要件を満たすために役立つ機能: Event Grid トピック。
Kubernetes 上の Event Grid の概要
ユーザーの視点から見ると、Kubernetes 上の Event Grid は、青字で記載されている以下のリソースで構成されています。
- トピックは、パブリッシャーから Event Grid にイベントを送信するためのエンドポイントを公開する入力チャネルの一種です。
- イベント サブスクリプションは、イベントの送信先となる宛先へのイベントをフィルター処理してルーティングするための構成設定が含まれるリソースです。
- イベントは、状態変更を示すアナウンスです。
- イベント ハンドラーは、イベントを受信し、何らかの方法でイベントへの対応や処理を実行するアプリケーションまたはサービスです。 イベント ハンドラーは、イベント サブスクライバーと呼ばれることもあります。 図では、イベント ハンドラーは、Kubernetes クラスター (K8) と Azure Service Bus サービスにデプロイされた API です。
これらの概念の詳細については、「Azure Event Grid の概念」を参照してください。
ワークロードの統合シナリオのサンプルと送信先
クラスターで実行されているワークロードを統合できます。 パブリッシャーには、Kubernetes クラスターで実行されている任意のサービスや、パブリッシャーのイベントの送信先となるトピック エンドポイント (Event Grid ブローカーによってホストされる) にアクセスできる任意のワークロードが指定できます。
また、Kubernetes クラスターのいずれかにデプロイされた Event Grid にイベントを送信する、ネットワーク内の他の場所にパブリッシャーをデプロイすることもできます。
Kubernetes で Event Grid を使用すると、処理、保管、または視覚化を行うため、イベントを Azure に転送することができます。
変換先
イベント ハンドラーの送信先には、パブリックまたはプライベートのネットワークを介して Event Grid からアクセスでき、アクセス権があれば (認証メカニズムによって保護されていない)、任意の HTTPS または HTTP のエンドポイントを指定できます。 イベントの送信先は、イベント サブスクリプションを作成するときに定義します。 詳細は、イベント ハンドラーに関する記事を参照してください。
機能
Kubernetes 上の Event Grid は、Azure Event Grid で提供されている機能である Event Grid トピックもサポートします。 Event Grid トピックは、ユーザーのシステムと、ユーザーが所有する、またはそのシステムからアクセス可能な別のワークロードとの統合が必要になる、主要な統合ユース ケースの実現をサポートします。
Kubernetes 上の Azure Event Grid で利用できる機能の一部は次のとおりです。
- イベント フィルター - イベントの種類、イベントの件名、イベント データに基づいてフィルター処理することで、イベント ハンドラーが関連するイベントのみを受け取るようにできます。
- ファンアウト: 複数のエンドポイントを同じイベントにサブスクライブし、複数の場所にイベントのコピーを送信できます。
- オープン標準準拠: CNCF の Cloud Events 1.0 スキーマ仕様を使用して、イベントを定義します。
- 信頼性: Event Grid には、イベントが確実に送信先に届くようにするイベント送信の再試行ロジックが備わっています。
詳細については、Kubernetes 上の Event Grid でサポートされる機能に関するページを参照してください。
価格
Azure Arc を使用した Kubernetes 上の Event Grid は、プレビュー バージョン中は無料でご利用いただけます。
次の手順
Kubernetes 上の Event Grid を使用してイベントのルーティングを開始するには、以下の手順に従います。
- Azure Arc にクラスターを接続する。
- Event Grid 拡張機能をインストールします。これは、Kubernetes クラスターに Event Grid をデプロイする実際のリソースです。 拡張機能の詳細については、「Event Grid 拡張機能」セクションを参照してください。
- カスタムの場所を作成する。 カスタムの場所はクラスター内の名前空間を表し、トピックとイベント サブスクリプションをデプロイする場所となります。
- トピックと 1 つ以上のサブスクリプションを作成します。
- イベントを発行します。
使用できるその他のリソースは次のとおりです。