10.2. チャネルを使用したイベント配信ワークフロー


イベント配信のチャネルおよびサブスクリプションを使用して、イベントをソースからシンクに送信できます。

チャネルワークフローの概要

チャネルは、単一のイベント転送および永続レイヤーを定義するカスタムリソースです。

イベントがチャネルに送信された後に、これらのイベントはサブスクリプションを使用して複数の Knative サービスまたは他のシンクに送信できます。

チャネルインスタンスのデフォルト設定は default-ch-webhook 設定マップで定義されます。開発者はサポートされている Channel オブジェクトをインスタンス化することで、独自のチャネルを直接作成できます。

10.2.1. サポートされているチャネルタイプ

現時点で、OpenShift Serverless は Knative Eventing テクノロジープレビューの一部として InMemoryChannel タイプのチャネルの開発目的での使用のみをサポートします。

以下は、InMemoryChannel チャネルの制限です。

  • イベントの永続性は利用できません。Pod がダウンすると、その Pod のイベントが失われます。
  • InMemoryChannel チャネルはイベントの順序を実装しないため、チャネルで同時に受信される 2 つのイベントはいずれの順序でもサブスクライバーに配信できます。
  • サブスクライバーがイベントを拒否する場合、再配信は試行されません。代わりに、拒否されたイベントは、シンクが存在する場合は deadLetterSink オブジェクトに送信されます。これが存在しない場合にはドロップされます。

10.2.1.1. デフォルトの開発チャネル設定の使用

Knative Eventing のインストール時に、以下の default-ch-webhook 設定マップが knative-eventing namespace に自動的に作成されます。

apiVersion: v1
kind: ConfigMap
metadata:
  name: default-ch-webhook
  namespace: knative-eventing
data:
  default-ch-config: |
    clusterDefault:
      apiVersion: messaging.knative.dev/v1
      kind: InMemoryChannel
    namespaceDefaults:
      some-namespace:
        apiVersion: messaging.knative.dev/v1
        kind: InMemoryChannel

この設定マップは、クラスター全体のデフォルトのチャネル実装または namespace 固有のデフォルトのチャネル実装のいずれかを指定できます。namespace 固有のデフォルトを設定すると、クラスター全体の設定が上書きされます。

Channel オブジェクトが作成されると、変更用の受付 Webhook はデフォルトのチャネル実装に基づいて Channel オブジェクトの spec.channelTemplate プロパティーのセットを追加します。

spec.channelTemplate プロパティーを持つ Channel オブジェクトの例

apiVersion: messaging.knative.dev/v1
kind: Channel
metadata:
  name: example-channel
  namespace: default
spec:
  channelTemplate:
    apiVersion: messaging.knative.dev/v1
    kind: InMemoryChannel

チャネルコントローラーは、その後に spec.channelTemplate 設定に基づいてサポートするチャネルインスタンスを作成します。

注記

spec.channelTemplate プロパティーは作成後に変更できません。それらは、ユーザーではなくデフォルトのチャネルメカニズムで設定されるためです。

このメカニズムが使用される場合、汎用チャネル、および InMemoryChannel チャネルなど 2 つのオブジェクトが作成されます。

汎用チャネルは、サブスクリプションを InMemoryChannel チャネルにコピーするプロキシーとして機能し、サポートする InMemoryChannel チャネルのステータスを反映するようにそのステータスを設定します。

この例のチャネルはデフォルトの namespace で作成されるため、チャネルはクラスターのデフォルト (InMemoryChannel) を使用します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.