6.2. チャネルの作成
チャネルは、単一のイベント転送および永続レイヤーを定義するカスタムリソースです。イベントがイベントソースまたは生成側からチャネルに送信された後に、これらのイベントはサブスクリプションを使用して複数の Knative サービスまたは他のシンクに送信できます。
サポートされている Channel
オブジェクトをインスタンス化することでチャネルを作成し、Subscription
オブジェクトの delivery
仕様を変更して再配信の試行を設定できます。
6.2.1. Administrator パースペクティブを使用したチャネルの作成
Knative Eventing がクラスターにインストールされると、Administrator パースペクティブを使用してチャネルを作成できます。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- Web コンソールにログインしており、Administrator パースペクティブを使用している。
- OpenShift Container Platform に対するクラスター管理者権限があるか、Red Hat OpenShift Service on AWS または OpenShift Dedicated に対するクラスターまたは専用管理者権限がある。
手順
-
OpenShift Container Platform Web コンソールの Administrator パースペクティブで、 Serverless
Eventing に移動します。 - Create リストで、Channel を選択します。Channel ページに移動します。
タイプ リストで、作成する
Channel
オブジェクトのタイプを選択します。注記現時点で、
InMemoryChannel
チャネルオブジェクトのみがデフォルトでサポートされます。Apache Kafka の Knative チャネルは、OpenShift Serverless に Apache Kafka の Knative ブローカー実装をインストールしている場合に使用できます。- Create をクリックします。
6.2.2. 開発者パースペクティブを使用したチャネルの作成
OpenShift Container Platform Web コンソールを使用すると、チャネルを作成するための合理的で直感的なユーザーインターフェイスが提供されます。Knative Eventing がクラスターにインストールされると、Web コンソールを使用してチャネルを作成できます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
-
Developer パースペクティブで、+Add
Channel に移動します。 -
タイプ リストで、作成する
Channel
オブジェクトのタイプを選択します。 - Create をクリックします。
検証
Topology ページに移動して、チャネルが存在することを確認します。
6.2.3. Knative CLI を使用したチャネルの作成
チャネルを作成するために Knative (kn
) CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。kn channel create
コマンドを使用してチャネルを作成できます。
前提条件
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
-
Knative (
kn
) CLI がインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
チャネルを作成します。
$ kn channel create <channel_name> --type <channel_type>
チャネルタイプはオプションですが、指定する場合は、
Group:Version:Kind
の形式で指定する必要があります。たとえば、InMemoryChannel
オブジェクトを作成できます。$ kn channel create mychannel --type messaging.knative.dev:v1:InMemoryChannel
出力例
Channel 'mychannel' created in namespace 'default'.
検証
チャネルが存在することを確認するには、既存のチャネルをリスト表示し、出力を検査します。
$ kn channel list
出力例
kn channel list NAME TYPE URL AGE READY REASON mychannel InMemoryChannel http://mychannel-kn-channel.default.svc.cluster.local 93s True
チャネルの削除
チャネルを削除します。
$ kn channel delete <channel_name>
6.2.4. YAML を使用したデフォルト実装チャネルの作成
YAML ファイルを使用して Knative リソースを作成する場合は、宣言的 API を使用するため、再現性の高い方法でチャネルを宣言的に記述できます。YAML を使用してサーバーレスチャネルを作成するには、Channel
オブジェクトを定義する YAML ファイルを作成し、oc apply
コマンドを使用してそれを適用する必要があります。
前提条件
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
-
OpenShift CLI (
oc
) がインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
Channel
オブジェクトを YAML ファイルとして作成します。apiVersion: messaging.knative.dev/v1 kind: Channel metadata: name: example-channel namespace: default
YAML ファイルを適用します。
$ oc apply -f <filename>
6.2.5. YAML を使用した Apache Kafka のチャネルの作成
YAML ファイルを使用して Knative リソースを作成する場合は、宣言的 API を使用するため、再現性の高い方法でチャネルを宣言的に記述できます。Kafka チャネルを作成することで、Kafka トピックに裏打ちされた Knative Eventing チャネルを作成できます。YAML を使用して Kafka チャネルを作成するには、KafkaChannel
オブジェクトを定義する YAML ファイルを作成し、oc apply
コマンドを使用してそれを適用する必要があります。
前提条件
-
OpenShift Serverless Operator、Knative Eventing、および
KnativeKafka
カスタムリソースが OpenShift Container Platform クラスターにインストールされている。 -
OpenShift CLI (
oc
) がインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
KafkaChannel
オブジェクトを YAML ファイルとして作成します。apiVersion: messaging.knative.dev/v1beta1 kind: KafkaChannel metadata: name: example-channel namespace: default spec: numPartitions: 3 replicationFactor: 1
重要OpenShift Serverless 上の
KafkaChannel
オブジェクトの API のv1beta1
バージョンのみがサポートされます。非推奨となったv1alpha1
バージョンの API は使用しないでください。KafkaChannel
YAML ファイルを適用します。$ oc apply -f <filename>
6.2.6. 次のステップ
- チャネルの作成後に、チャネルをシンクにに接続 してシンクがイベントを受信できるようにします。
- イベントがイベントシンクに配信されなかった場合に適用される イベント配信パラメーター を設定します。