検索

10.2. チャネルの使用

download PDF

イベントソースから Knative Eventing チャネルにイベントをシンクすることができます。チャネルは、単一のイベント転送および永続レイヤーを定義するカスタムリソース (CR) です。イベントがチャネルに送信された後に、これらのイベントはサブスクリプションを使用して複数の Knative サービスに送信できます。

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

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

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

10.2.2. デフォルトの InMemoryChannel 設定の使用

InMemoryChannel は開発での使用のみを目的としているため、実稼働環境では使用できません。

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

  • イベントの永続性は利用できません。Pod がダウンすると、その Pod のイベントが失われます。
  • InMemoryChannel タイプのチャネルはイベントの順序を実装しないため、チャネルで同時に受信される 2 つのイベントはいずれの順序でもサブスクライバーに配信できます。
  • サブスクライバーがイベントを拒否する場合、再配信は試行されません。代わりに、拒否されたイベントは、シンクが存在する場合は deadLetterSink に送信されます。これが存在しない場合にはドロップされます。イベント配信およびチャネルの deadLetterSink 設定についての詳細は、「 サブスクリプションの使用によるチャネルからシンクへのイベント送信」を参照してください。

Knative Eventing のインストール時に、以下のカスタムリソース定義 (CRD) が自動的に作成されます。

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: knative-eventing
  name: config-br-default-channel
data:
  channelTemplateSpec: |
    apiVersion: messaging.knative.dev/v1
    kind: InMemoryChannel

クラスターのデフォルト設定を使用したチャネルの作成

  • 汎用 Channel カスタムオブジェクトを作成します。

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

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

    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.