This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.2. イベントソース
5.2.1. イベントソース リンクのコピーリンクがクリップボードにコピーされました!
Knative イベントソース には、クラウドイベントの生成またはインポート、これらのイベントの別のエンドポイントへのリレー (sink とも呼ばれる) を行う Kubernetes オブジェクトを指定できます。イベントに対応する分散システムを開発するには、イベントのソースが重要になります。
OpenShift Container Platform Web コンソールの Developer パースペクティブ、Knative (kn
) CLI を使用するか、YAML ファイルを適用することで、Knative イベントソースを作成および管理できます。
現時点で、OpenShift Serverless は以下のイベントソースタイプをサポートします。
- API サーバーソース
- Kubernetes API サーバーイベントを Knative に送ります。API サーバーソースは、Kubernetes リソースが作成、更新、または削除されるたびに新規イベントを送信します。
- Ping ソース
- 指定された cron スケジュールに、固定ペイロードを使用してイベントを生成します。
- Kafka イベントソース
- Kafka クラスターをイベントソースとしてシンクに接続します。
カスタムイベントソース を作成することもできます。
5.2.2. Administrator パースペクティブのイベントソース リンクのコピーリンクがクリップボードにコピーされました!
イベントに対応する分散システムを開発するには、イベントのソースが重要になります。
5.2.2.1. Administrator パースペクティブを使用したイベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative イベントソース には、クラウドイベントの生成またはインポート、これらのイベントの別のエンドポイントへのリレー (sink とも呼ばれる) を行う Kubernetes オブジェクトを指定できます。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- Web コンソールにログインしており、Administrator パースペクティブを使用している。
- OpenShift Container Platform のクラスター管理者パーミッションがある。
手順
-
OpenShift Container Platform Web コンソールの Administrator パースペクティブで、 Serverless
Eventing に移動します。 - Create 一覧で、Event Source を選択します。Event Sources ページに移動します。
- 作成するイベントソースタイプを選択します。
5.2.3. API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
API サーバーソースは、Knative サービスなどのイベントシンクを Kubernetes API サーバーに接続するために使用できるイベントソースです。API サーバーソースは Kubernetes イベントを監視し、それらを Knative Eventing ブローカーに転送します。
5.2.3.1. Web コンソールを使用した API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用して API サーバーソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
-
OpenShift CLI (
oc
) がインストールされている。
既存のサービスアカウントを再利用する必要がある場合には、既存の ServiceAccount
リソースを変更して、新規リソースを作成せずに、必要なパーミッションを含めることができます。
イベントソースのサービスアカウント、ロールおよびロールバインディングを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML ファイルを適用します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Developer パースペクティブで、+Add
Event Source に移動します。Event Sources ページが表示されます。 - オプション: イベントソースに複数のプロバイダーがある場合は、Providers 一覧から必要なプロバイダーを選択し、プロバイダーから利用可能なイベントソースをフィルターします。
- ApiServerSource を選択してから Create Event Source をクリックします。Create Event Source ページが表示されます。
Form view または YAML view を使用して、ApiServerSource 設定を設定します。
注記Form view と YAML view 間で切り換えることができます。ビューの切り替え時に、データは永続化されます。
-
APIVERSION に
v1
を、KIND にEvent
を入力します。 - 作成したサービスアカウントの Service Account Name を選択します。
- イベントソースの Sink を選択します。Sink は、チャネル、ブローカー、またはサービスなどの Resource、または URI のいずれかになります。
-
APIVERSION に
- Create をクリックします。
検証
API サーバーソースの作成後、これが Topology ビューでシンクされるサービスに接続されていることを確認できます。
URI シンクが使用される場合、URI sink
API サーバーソースの削除
- Topology ビューに移動します。
API サーバーソースを右クリックし、Delete ApiServerSource を選択します。
5.2.3.2. Knative CLI を使用した API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
kn source apiserver create
コマンドを使用し、kn
CLI を使用して API サーバーソースを作成できます。API サーバーソースを作成するために kn
CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
前提条件
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
-
OpenShift CLI (
oc
) がインストールされている。 -
Knative (
kn
) CLI をインストールしている。
既存のサービスアカウントを再利用する必要がある場合には、既存の ServiceAccount
リソースを変更して、新規リソースを作成せずに、必要なパーミッションを含めることができます。
イベントソースのサービスアカウント、ロールおよびロールバインディングを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML ファイルを適用します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イベントシンクを持つ API サーバーソースを作成します。次の例では、シンクはブローカーです。
kn source apiserver create <event_source_name> --sink broker:<broker_name> --resource "event:v1" --service-account <service_account_name> --mode Resource
$ kn source apiserver create <event_source_name> --sink broker:<broker_name> --resource "event:v1" --service-account <service_account_name> --mode Resource
Copy to Clipboard Copied! Toggle word wrap Toggle overflow API サーバーソースが正しく設定されていることを確認するには、受信メッセージをログにダンプする Knative サービスを作成します。
kn service create <service_name> --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create <service_name> --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカーをイベントシンクとして使用した場合は、トリガーを作成して、
default
のブローカーからサービスへのイベントをフィルターリングします。kn trigger create <trigger_name> --sink ksvc:<service_name>
$ kn trigger create <trigger_name> --sink ksvc:<service_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルト namespace で Pod を起動してイベントを作成します。
oc create deployment hello-node --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ oc create deployment hello-node --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力し、生成される出力を検査して、コントローラーが正しくマップされていることを確認します。
kn source apiserver describe <source_name>
$ kn source apiserver describe <source_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
メッセージダンパー機能ログを確認して、Kubernetes イベントが Knative に送信されていることを確認できます。
Pod を取得します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のメッセージダンパー機能ログを表示します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
API サーバーソースの削除
トリガーを削除します。
kn trigger delete <trigger_name>
$ kn trigger delete <trigger_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イベントソースを削除します。
kn source apiserver delete <source_name>
$ kn source apiserver delete <source_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスアカウント、クラスターロール、およびクラスターバインディングを削除します。
oc delete -f authentication.yaml
$ oc delete -f authentication.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.3.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn
) CLI を使用してイベントソースを作成する場合、--sink
フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
以下の例では、サービスの http://event-display.svc.cluster.local
をシンクとして使用するシンクバインディングを作成します。
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
--namespace sinkbinding-example \
--subject "Job:batch/v1:app=heartbeat-cron" \
--sink http://event-display.svc.cluster.local \
--ce-override "sink=bound"
- 1
http://event-display.svc.cluster.local
のsvc
は、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channel
およびbroker
が含まれます。
5.2.3.3. YAML ファイルを使用した API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でイベントソースを宣言的に記述することができます。YAML を使用して API サーバーソースを作成するには、ApiServerSource
オブジェクトを定義する YAML ファイルを作成し、oc apply
コマンドを使用してそれを適用する必要があります。
前提条件
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
-
API サーバーソース YAML ファイルで定義されるものと同じ namespace に
default
ブローカーを作成している。 -
OpenShift CLI (
oc
) をインストールしている。
既存のサービスアカウントを再利用する必要がある場合には、既存の ServiceAccount
リソースを変更して、新規リソースを作成せずに、必要なパーミッションを含めることができます。
イベントソースのサービスアカウント、ロールおよびロールバインディングを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML ファイルを適用します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow API サーバーソースを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ApiServerSource
YAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow API サーバーソースが正しく設定されていることを確認するには、受信メッセージをログにダンプする Knative サービスを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Service
YAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直接の手順で作成下サービスに、
default
ブローカーからイベントをフィルターするTrigger
オブジェクトを YAML ファイルとして作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Trigger
YAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルト namespace で Pod を起動してイベントを作成します。
oc create deployment hello-node --image=quay.io/openshift-knative/knative-eventing-sources-event-display
$ oc create deployment hello-node --image=quay.io/openshift-knative/knative-eventing-sources-event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
oc get apiserversource.sources.knative.dev testevents -o yaml
$ oc get apiserversource.sources.knative.dev testevents -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Kubernetes イベントが Knative に送信されていることを確認するには、メッセージダンパー機能ログを確認します。
以下のコマンドを入力して Pod を取得します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して、Pod のメッセージダンパー機能ログを表示します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
API サーバーソースの削除
トリガーを削除します。
oc delete -f trigger.yaml
$ oc delete -f trigger.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イベントソースを削除します。
oc delete -f k8s-events.yaml
$ oc delete -f k8s-events.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスアカウント、クラスターロール、およびクラスターバインディングを削除します。
oc delete -f authentication.yaml
$ oc delete -f authentication.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.4. ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
ping ソースは、一定のペイロードを使用して ping イベントをイベントコンシューマーに定期的に送信するために使用されるイベントソースです。ping ソースを使用すると、タイマーと同様にイベントの送信をスケジュールできます。
5.2.4.1. Web コンソールを使用した ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用して ping ソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
PingSource が機能していることを確認するには、受信メッセージをサービスのログにダンプする単純な Knative サービスを作成します。
-
Developer パースペクティブで、+Add
YAML に移動します。 サンプル YAML をコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
-
Developer パースペクティブで、+Add
直前の手順で作成したサービスと同じ namespace、またはイベントの送信先となる他のシンクと同じ namespace に ping ソースを作成します。
-
Developer パースペクティブで、+Add
Event Source に移動します。Event Sources ページが表示されます。 - オプション: イベントソースに複数のプロバイダーがある場合は、Providers 一覧から必要なプロバイダーを選択し、プロバイダーから利用可能なイベントソースをフィルターします。
Ping Source を選択してから Create Event Source をクリックします。Create Event Source ページが表示されます。
注記Form view または YAML view を使用して PingSource 設定を設定し、これらのビューを切り換えることができます。ビューの切り替え時に、データは永続化されます。
-
Schedule の値を入力します。この例では、値は
*/2 * * * *
であり、2 分ごとにメッセージを送信する PingSource を作成します。 - オプション: Data の値を入力できます。これはメッセージのペイロードです。
-
Sink を選択します。これは Resource または URI のいずれかになります。この例では、直前の手順で作成された
event-display
サービスが Resources シンクとして使用されます。 - Create をクリックします。
-
Developer パースペクティブで、+Add
検証
Topology ページを表示して、ping ソースが作成され、シンクに接続されていることを確認できます。
- Developer パースペクティブで、Topology に移動します。
ping ソースおよびシンクを表示します。
ping ソースの削除
- Topology ビューに移動します。
- API サーバーソースを右クリックし、Delete Ping Source を選択します。
5.2.4.2. Knative CLI を使用した ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
kn source ping create
コマンドを使用し、Knative (kn
) CLI を使用して ping ソースを作成できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
-
Knative (
kn
) CLI をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
-
オプション: この手順の検証手順を使用する場合は、OpenShift CLI (
oc
) をインストールします。
手順
ping ソースが機能していることを確認するには、受信メッセージをサービスのログにダンプする単純な Knative サービスを作成します。
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要求する必要のある ping イベントのセットごとに、PingSource をイベントコンシューマーと同じ namespace に作成します。
kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink ksvc:event-display
$ kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink ksvc:event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
kn source ping describe test-ping-source
$ kn source ping describe test-ping-source
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
シンク Pod のログを確認して、Kubernetes イベントが Knative イベントに送信されていることを確認できます。
デフォルトで、Knative サービスは、トラフィックが 60 秒以内に受信されない場合に Pod を終了します。本書の例では、新たに作成される Pod で各メッセージが確認されるように 2 分ごとにメッセージを送信する ping ソースを作成します。
作成された新規 Pod を監視します。
watch oc get pods
$ watch oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ctrl+C を使用して Pod の監視をキャンセルし、作成された Pod のログを確認します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ping ソースの削除
ping ソースを削除します。
kn delete pingsources.sources.knative.dev <ping_source_name>
$ kn delete pingsources.sources.knative.dev <ping_source_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.4.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn
) CLI を使用してイベントソースを作成する場合、--sink
フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
以下の例では、サービスの http://event-display.svc.cluster.local
をシンクとして使用するシンクバインディングを作成します。
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
--namespace sinkbinding-example \
--subject "Job:batch/v1:app=heartbeat-cron" \
--sink http://event-display.svc.cluster.local \
--ce-override "sink=bound"
- 1
http://event-display.svc.cluster.local
のsvc
は、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channel
およびbroker
が含まれます。
5.2.4.3. YAML を使用した ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でイベントソースを宣言的に記述することができます。YAML を使用してサーバーレス ping を作成するには、PingSource
オブジェクトを定義する YAML ファイルを作成し、oc apply
を使用してこれを適用する必要があります。
PingSource
オブジェクトの例
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
-
OpenShift CLI (
oc
) をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
ping ソースが機能していることを確認するには、受信メッセージをサービスのログにダンプする単純な Knative サービスを作成します。
サービス YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを作成します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要求する必要のある ping イベントのセットごとに、ping ソースをイベントコンシューマーと同じ namespace に作成します。
ping ソースの YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ping ソースを作成します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドを入力し、コントローラーが正しくマップされていることを確認します。
oc get pingsource.sources.knative.dev <ping_source_name> -oyaml
$ oc get pingsource.sources.knative.dev <ping_source_name> -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
シンク Pod のログを確認して、Kubernetes イベントが Knative イベントに送信されていることを確認できます。
デフォルトで、Knative サービスは、トラフィックが 60 秒以内に受信されない場合に Pod を終了します。本書の例では、新たに作成される Pod で各メッセージが確認されるように 2 分ごとにメッセージを送信する PingSource を作成します。
作成された新規 Pod を監視します。
watch oc get pods
$ watch oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ctrl+C を使用して Pod の監視をキャンセルし、作成された Pod のログを確認します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ping ソースの削除
ping ソースを削除します。
oc delete -f <filename>
$ oc delete -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc delete -f ping-source.yaml
$ oc delete -f ping-source.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.5. Kafka ソース リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka クラスターからイベントを読み取り、これらのイベントをシンクに渡す Kafka ソースを作成できます。Kafka ソースを作成するには、OpenShift Container Platform Web コンソールの Knative (kn
)CLI を使用するか、KafkaSource
オブジェクトを YAML ファイルとして直接作成し、OpenShift CLI (oc
) を使用して適用します。
5.2.5.1. Web コンソールを使用した Kafka イベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Kafka をクラスターにインストールした後、Web コンソールを使用して Kafka ソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、Kafka ソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
-
OpenShift Serverless Operator、Knative Serving、および
KnativeKafka
カスタムリソースがクラスターにインストールされている。 - Web コンソールにログインしている。
- インポートする Kafka メッセージを生成する Red Hat AMQ Streams (Kafka) クラスターにアクセスできる。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
- Developer パースペクティブで、+Add ページに移動し、Event Source を選択します。
- Event Sources ページで、Type セクションの Kafka Source を選択します。
Kafka Source 設定を設定します。
- ブートストラップサーバー のコンマ区切りの一覧を追加します。
- トピック のコンマ区切りの一覧を追加します。
- コンシューマーグループ を追加します。
- 作成したサービスアカウントの Service Account Name を選択します。
- イベントソースの Sink を選択します。Sink は、チャネル、ブローカー、またはサービスなどの Resource、または URI のいずれかになります。
- Kafka イベントソースの Name を入力します。
- Create をクリックします。
検証
Topology ページを表示して、Kafka イベントソースが作成され、シンクに接続されていることを確認できます。
- Developer パースペクティブで、Topology に移動します。
Kafka イベントソースおよびシンクを表示します。
5.2.5.2. Knative CLI を使用した Kafka イベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
kn source kafka create
コマンドを使用し、Knative (kn
) CLI を使用して Kafka ソースを作成できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
前提条件
-
OpenShift Serverless Operator、Knative Eventing、Knative Serving、および
KnativeKafka
カスタムリソース (CR) がクラスターにインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
- インポートする Kafka メッセージを生成する Red Hat AMQ Streams (Kafka) クラスターにアクセスできる。
-
Knative (
kn
) CLI をインストールしている。 -
オプション: この手順で検証ステップを使用する場合は、OpenShift CLI (
oc
) をインストールします。
手順
Kafka イベントソースが機能していることを確認するには、受信メッセージをサービスのログにダンプする Knative サービスを作成します。
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display
$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaSource
CR を作成します。kn source kafka create <kafka_source_name> \ --servers <cluster_kafka_bootstrap>.kafka.svc:9092 \ --topics <topic_name> --consumergroup my-consumer-group \ --sink event-display
$ kn source kafka create <kafka_source_name> \ --servers <cluster_kafka_bootstrap>.kafka.svc:9092 \ --topics <topic_name> --consumergroup my-consumer-group \ --sink event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドのプレースホルダー値は、ソース名、ブートストラップサーバー、およびトピックの値に置き換えます。
--servers
、--topics
、および--consumergroup
オプションは、Kafka クラスターへの接続パラメーターを指定します。--consumergroup
オプションは任意です。オプション: 作成した
KafkaSource
CR の詳細を表示します。kn source kafka describe <kafka_source_name>
$ kn source kafka describe <kafka_source_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証手順
Kafka インスタンスをトリガーし、メッセージをトピックに送信します。
oc -n kafka run kafka-producer \ -ti --image=quay.io/strimzi/kafka:latest-kafka-2.7.0 --rm=true \ --restart=Never -- bin/kafka-console-producer.sh \ --broker-list <cluster_kafka_bootstrap>:9092 --topic my-topic
$ oc -n kafka run kafka-producer \ -ti --image=quay.io/strimzi/kafka:latest-kafka-2.7.0 --rm=true \ --restart=Never -- bin/kafka-console-producer.sh \ --broker-list <cluster_kafka_bootstrap>:9092 --topic my-topic
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロンプトにメッセージを入力します。このコマンドは、以下を前提とします。
-
Kafka クラスターが
kafka
namespace にインストールされている。 -
KafkaSource
オブジェクトは、my-topic
トピックを使用するように設定されている。
-
Kafka クラスターが
ログを表示して、メッセージが到達していることを確認します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.5.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn
) CLI を使用してイベントソースを作成する場合、--sink
フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
以下の例では、サービスの http://event-display.svc.cluster.local
をシンクとして使用するシンクバインディングを作成します。
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
--namespace sinkbinding-example \
--subject "Job:batch/v1:app=heartbeat-cron" \
--sink http://event-display.svc.cluster.local \
--ce-override "sink=bound"
- 1
http://event-display.svc.cluster.local
のsvc
は、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channel
およびbroker
が含まれます。
5.2.5.3. YAML を使用した Kafka イベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でアプリケーションを宣言的に記述することができます。YAML を使用して Kafka ソースを作成するには、KafkaSource
オブジェクトを定義する YAML ファイルを作成し、oc apply
コマンドを使用してそれを適用する必要があります。
前提条件
-
OpenShift Serverless Operator、Knative Serving、および
KnativeKafka
カスタムリソースがクラスターにインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
- インポートする Kafka メッセージを生成する Red Hat AMQ Streams (Kafka) クラスターにアクセスできる。
-
OpenShift CLI (
oc
) をインストールしている。
手順
KafkaSource
オブジェクトを YAML ファイルとして作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要OpenShift Serverless 上の
KafkaSource
オブジェクトの API のv1beta1
バージョンのみがサポートされます。非推奨となったv1alpha1
バージョンの API は使用しないでください。KafkaSource
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaSource
YAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下のコマンドを入力して、Kafka イベントソースが作成されたことを確認します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE kafkasource-kafka-source-5ca0248f-... 1/1 Running 0 13m
NAME READY STATUS RESTARTS AGE kafkasource-kafka-source-5ca0248f-... 1/1 Running 0 13m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.5.4. Kafka ソースの SASL 認証の設定 リンクのコピーリンクがクリップボードにコピーされました!
Simple Authentication and Security Layer (SASL) は、Apache Kafka が認証に使用します。クラスターで SASL 認証を使用する場合、ユーザーは Kafka クラスターと通信するために Knative に認証情報を提供する必要があります。そうしないと、イベントを生成または消費できません。
前提条件
- OpenShift Container Platform でクラスターまたは専用の管理者パーミッションを持っている。
-
OpenShift Serverless Operator、Knative Eventing、および
KnativeKafka
CR は、OpenShift Container Platform クラスターにインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
- Kafka クラスターのユーザー名およびパスワードがある。
-
使用する SASL メカニズムを選択している (例:
PLAIN
、SCRAM-SHA-256
、またはSCRAM-SHA-512
)。 -
TLS が有効にされている場合、Kafka クラスターの
ca.crt
証明書ファイルも必要になります。 -
OpenShift (
oc
) CLI がインストールされている。
手順
選択された namespace にシークレットとして証明書ファイルを作成します。
oc create secret -n <namespace> generic <kafka_auth_secret> \ --from-file=ca.crt=caroot.pem \ --from-literal=password="SecretPassword" \ --from-literal=saslType="SCRAM-SHA-512" \ --from-literal=user="my-sasl-user"
$ oc create secret -n <namespace> generic <kafka_auth_secret> \ --from-file=ca.crt=caroot.pem \ --from-literal=password="SecretPassword" \ --from-literal=saslType="SCRAM-SHA-512" \
1 --from-literal=user="my-sasl-user"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- SASL タイプは
PLAIN
、SCRAM-SHA-256
、またはSCRAM-SHA-512
です。
Kafka ソースを作成または変更して、次の
spec
設定が含まれるようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Red Hat OpenShift Streams for Apache Kafka などのパブリッククラウド Kafka サービスを使用している場合は、
caCert
仕様は必要ありません。
5.2.6. カスタムイベントソース リンクのコピーリンクがクリップボードにコピーされました!
Knative に含まれていないイベントプロデューサーや、CloudEvent
形式ではないイベントを生成するプロデューサーからイベントを Ingress する必要がある場合は、カスタムイベントソースを使用してこれを実行できます。カスタムイベントソースは、次のいずれかの方法で作成できます。
-
シンクバインディングを作成して、
PodSpecable
オブジェクトをイベントソースとして使用します。 - コンテナーソースを作成して、コンテナーをイベントソースとして使用します。
5.2.6.1. シンクバインディング リンクのコピーリンクがクリップボードにコピーされました!
SinkBinding
オブジェクトは、イベント生成を配信アドレス指定から切り離すことをサポートします。シンクバインディングは、イベントプロデューサー をイベントコンシューマーまたは シンク に接続するために使用されます。イベントプロデューサーは、PodSpec
テンプレートを組み込む Kubernetes リソースであり、イベントを生成します。シンクは、イベントを受信できるアドレス指定可能な Kubernetes オブジェクトです。
SinkBinding
オブジェクトは、環境変数をシンクの PodTemplateSpec
に挿入します。つまり、アプリケーションコードが Kubernetes API と直接対話してイベントの宛先を見つける必要はありません。これらの環境変数は以下のとおりです。
K_SINK
- 解決されたシンクの URL。
K_CE_OVERRIDES
- アウトバウンドイベントの上書きを指定する JSON オブジェクト。
現在、SinkBinding
オブジェクトはサービスのカスタムリビジョン名をサポートしません。
5.2.6.1.1. YAML を使用したシンクバインディングの作成 リンクのコピーリンクがクリップボードにコピーされました!
YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でイベントソースを宣言的に記述することができます。YAML を使用してシンクバインディングを作成するには、SinkBinding
オブジェクトを定義する YAML ファイルを作成し、oc apply
コマンドを使用してそれを適用する必要があります。
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
-
OpenShift CLI (
oc
) をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
シンクバインディングが正しく設定されていることを確認するには、受信メッセージをダンプする Knative イベント表示サービスまたはイベントシンクを作成します。
サービス YAML ファイルを作成します。
サービス YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを作成します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
イベントをサービスに転送するシンクバインディングインスタンスを作成します。
シンクバインディング YAML ファイルを作成します。
サービス YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では、ラベル
app: heartbeat-cron
を指定したジョブがイベントシンクにバインドされます。
シンクバインディングを作成します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
CronJob
オブジェクトを作成します。cron ジョブの YAML ファイルを作成します。
cron ジョブの YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要シンクバインディングを使用するには、
bindings.knative.dev/include=true
ラベルを Knative リソースに手動で追加する必要があります。たとえば、このラベルを
CronJob
インスタンスに追加するには、以下の行をJob
リソースの YAML 定義に追加します。jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"
jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cron ジョブを作成します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
oc get sinkbindings.sources.knative.dev bind-heartbeat -oyaml
$ oc get sinkbindings.sources.knative.dev bind-heartbeat -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
メッセージダンパー機能ログを確認して、Kubernetes イベントが Knative イベントシンクに送信されていることを確認できます。
コマンドを入力します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを入力します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.6.1.2. Knative CLI を使用したシンクバインディングの作成 リンクのコピーリンクがクリップボードにコピーされました!
kn source binding create
コマンドを使用し、Knative (kn
) を使用してシンクバインディングを作成できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
-
Knative (
kn
) CLI をインストールしている。 -
OpenShift CLI (
oc
) をインストールしている。
以下の手順では、YAML ファイルを作成する必要があります。
サンプルで使用されたもので YAML ファイルの名前を変更する場合は、必ず対応する CLI コマンドを更新する必要があります。
手順
シンクバインディングが正しく設定されていることを確認するには、受信メッセージをダンプする Knative イベント表示サービスまたはイベントシンクを作成します。
kn service create event-display --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create event-display --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イベントをサービスに転送するシンクバインディングインスタンスを作成します。
kn source binding create bind-heartbeat --subject Job:batch/v1:app=heartbeat-cron --sink ksvc:event-display
$ kn source binding create bind-heartbeat --subject Job:batch/v1:app=heartbeat-cron --sink ksvc:event-display
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CronJob
オブジェクトを作成します。cron ジョブの YAML ファイルを作成します。
cron ジョブの YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要シンクバインディングを使用するには、
bindings.knative.dev/include=true
ラベルを Knative CR に手動で追加する必要があります。たとえば、このラベルを
CronJob
CR に追加するには、以下の行をJob
CR の YAML 定義に追加します。jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"
jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cron ジョブを作成します。
oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
kn source binding describe bind-heartbeat
$ kn source binding describe bind-heartbeat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
メッセージダンパー機能ログを確認して、Kubernetes イベントが Knative イベントシンクに送信されていることを確認できます。
以下のコマンドを入力して、メッセージダンパー機能ログを表示します。
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.6.1.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
Knative (kn
) CLI を使用してイベントソースを作成する場合、--sink
フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
以下の例では、サービスの http://event-display.svc.cluster.local
をシンクとして使用するシンクバインディングを作成します。
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
--namespace sinkbinding-example \
--subject "Job:batch/v1:app=heartbeat-cron" \
--sink http://event-display.svc.cluster.local \
--ce-override "sink=bound"
- 1
http://event-display.svc.cluster.local
のsvc
は、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channel
およびbroker
が含まれます。
5.2.6.1.3. Web コンソールを使用したシンクバインディングの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用して シンクバインディングを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
シンクとして使用する Knative サービスを作成します。
-
Developer パースペクティブで、+Add
YAML に移動します。 サンプル YAML をコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
-
Developer パースペクティブで、+Add
イベントソースとして使用される
CronJob
リソースを作成し、1 分ごとにイベントを送信します。-
Developer パースペクティブで、+Add
YAML に移動します。 サンプル YAML をコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
bindings.knative.dev/include: true
ラベルを含めるようにしてください。OpenShift Serverless のデフォルトの namespace 選択動作は包含モードを使用します。
- Create をクリックします。
-
Developer パースペクティブで、+Add
直前の手順で作成したサービスと同じ namespace、またはイベントの送信先となる他のシンクと同じ namespace にシンクバインディングを作成します。
-
Developer パースペクティブで、+Add
Event Source に移動します。Event Sources ページが表示されます。 - オプション: イベントソースに複数のプロバイダーがある場合は、Providers 一覧から必要なプロバイダーを選択し、プロバイダーから利用可能なイベントソースをフィルターします。
Sink Binding を選択し、Create Event Source をクリックします。Create Event Source ページが表示されます。
注記Form view または YAML view を使用して Sink Binding 設定を設定し、ビューを切り替えることができます。ビューの切り替え時に、データは永続化されます。
-
apiVersion フィールドに
batch/v1
を入力します。 Kind フィールドに
Job
と入力します。注記CronJob
の種類は OpenShift Serverless シンクバインディングで直接サポートされていないため、Kind フィールドは cron ジョブオブジェクト自体ではなく、cron ジョブで作成されるJob
オブジェクトをターゲットにする必要があります。-
Sink を選択します。これは Resource または URI のいずれかになります。この例では、直前の手順で作成された
event-display
サービスが Resources シンクとして使用されます。 Match labels セクションで以下を実行します。
-
Name フィールドに
app
と入力します。 Value フィールドに
heartbeat-cron
と入力します。注記ラベルセレクターは、リソース名ではなくシンクバインディングで cron ジョブを使用する場合に必要になります。これは、cron ジョブで作成されたジョブには予測可能な名前がなく、名前に無作為に生成される文字列が含まれているためです。たとえば、
hearthbeat-cron-1cc23f
になります。
-
Name フィールドに
- Create をクリックします。
-
Developer パースペクティブで、+Add
検証
Topology ページおよび Pod ログを表示して、シンクバインディング、シンク、および cron ジョブが正常に作成され、機能していることを確認できます。
- Developer パースペクティブで、Topology に移動します。
シンクバインディング、シンク、およびハートビートの cron ジョブを表示します。
- シンクバインディングが追加されると、正常なジョブが cron ジョブによって登録されていることを確認します。つまり、シンクバインディングは cron ジョブで作成されたジョブが正常に再設定されることを意味します。
-
event-display
サービス Pod のログを参照し、ハートビート cron ジョブで生成されるイベントを表示します。
5.2.6.1.4. シンクバインディング参照 リンクのコピーリンクがクリップボードにコピーされました!
シンクバインディングを作成して、PodSpecable
オブジェクトをイベントソースとして使用できます。SinkBinding
オブジェクトを作成するときに、複数のパラメーターを設定できます。
SinkBinding
オブジェクトは以下のパラメーターをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
|
API バージョンを指定します (例: | 必須 |
|
このリソースオブジェクトを | 必須 |
|
| 必須 |
|
この | 必須 |
| シンクとして使用する URI に解決するオブジェクトへの参照。 | 必須 |
| ランタイムコントラクトがバインディング実装によって拡張されるリソースを参照します。 | 必須 |
| 上書きを定義して、シンクに送信されたイベントへの出力形式および変更を制御します。 | 任意 |
5.2.6.1.4.1. Subject パラメーター リンクのコピーリンクがクリップボードにコピーされました!
Subject
パラメーターは、ランタイムコントラクトがバインディング実装によって拡張されるリソースを参照します。Subject
定義に複数のフィールドを設定できます。
Subject
定義は、以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
| 参照先の API バージョン。 | 必須 |
| 参照先の種類。 | 必須 |
| 参照先の namespace。省略されている場合、デフォルトはオブジェクトの namespace に設定されます。 | 任意 |
| 参照先の名前。 |
|
| 参照先のセレクター。 |
|
| ラベルセレクターの要件の一覧です。 |
|
| セレクターが適用されるラベルキー。 |
|
|
キーと値のセットの関係を表します。有効な演算子は |
|
|
文字列値の配列。 |
|
|
キーと値のペアのマップ。 |
|
サブジェクトパラメーターの例
以下の YAML の場合は、default
namespace の mysubject
という名前の Deployment
オブジェクトが選択されます。
以下の YAML の場合、default
namespace にラベル working=example
が設定された Job
オブジェクトが選択されます。
以下の YAML の場合、default
namespace にラベル working=example
または working=sample
が含まれる Pod
オブジェクトが選択されます。
5.2.6.1.4.2. CloudEvent オーバーライド リンクのコピーリンクがクリップボードにコピーされました!
ceOverrides
定義は、シンクに送信される CloudEvent の出力形式および変更を制御するオーバーライドを提供します。ceOverrides
定義に複数のフィールドを設定できます。
ceOverrides
の定義は、以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
|
アウトバウンドイベントで追加または上書きされる属性を指定します。各 | 任意 |
拡張子として許可されるのは、有効な CloudEvent
属性名のみです。拡張機能オーバーライド設定から仕様定義属性を設定することはできません。たとえば、type
属性を変更することはできません。
CloudEvent オーバーライドの例
これにより、subject
に K_CE_OVERRIDES
環境変数が設定されます。
出力例
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
5.2.6.1.4.3. include ラベル リンクのコピーリンクがクリップボードにコピーされました!
シンクバインディングを使用するには、bindings.knative.dev/include: "true"
ラベルをリソースまたはリソースが含まれる namespace のいずれかに割り当てる必要があります。リソース定義にラベルが含まれていない場合には、クラスター管理者は以下を実行してこれを namespace に割り当てることができます。
oc label namespace <namespace> bindings.knative.dev/include=true
$ oc label namespace <namespace> bindings.knative.dev/include=true
5.2.6.2. コンテナーソース リンクのコピーリンクがクリップボードにコピーされました!
コンテナーソースは、イベントを生成し、イベントをシンクに送信するコンテナーイメージを作成します。コンテナーソースを使用して、イメージ URI を使用するコンテナーイメージおよび ContainerSource
オブジェクトを作成して、カスタムイベントソースを作成できます。
5.2.6.2.1. コンテナーイメージを作成するためのガイドライン リンクのコピーリンクがクリップボードにコピーされました!
コンテナーソースコントローラーには、K_SINK
および K_CE_OVERRIDES
の 2 つの環境変数が注入されます。これらの変数は、それぞれ sink
および ceOverrides
仕様から解決されます。イベントは、K_SINK
環境変数で指定されたシンク URI に送信されます。メッセージは、CloudEvent
HTTP 形式を使用して POST
として送信する必要があります。
コンテナーイメージの例
以下は、ハートビートコンテナーイメージの例になります。
以下は、以前のハートビートコンテナーイメージを参照するコンテナーソースの例です。
5.2.6.2.2. Knative CLI を使用したコンテナーソースの作成および管理 リンクのコピーリンクがクリップボードにコピーされました!
kn source container
コマンドを使用し、Knative (kn
) CLI を使用してコンテナーソースを作成および管理できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
コンテナーソースを作成します。
kn source container create <container_source_name> --image <image_uri> --sink <sink>
$ kn source container create <container_source_name> --image <image_uri> --sink <sink>
コンテナーソースの削除
kn source container delete <container_source_name>
$ kn source container delete <container_source_name>
コンテナーソースを記述します。
kn source container describe <container_source_name>
$ kn source container describe <container_source_name>
既存のコンテナーソースを一覧表示
kn source container list
$ kn source container list
既存のコンテナーソースを YAML 形式で一覧表示
kn source container list -o yaml
$ kn source container list -o yaml
コンテナーソースを更新します。
このコマンドにより、既存のコンテナーソースのイメージ URI が更新されます。
kn source container update <container_source_name> --image <image_uri>
$ kn source container update <container_source_name> --image <image_uri>
5.2.6.2.3. Web コンソールを使用したコンテナーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用してコンテナーソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
手順
-
Developer パースペクティブで、+Add
Event Source に移動します。Event Sources ページが表示されます。 - Container Source を選択してから Create Event Source をクリックします。Create Event Source ページが表示されます。
Form view または YAML view を使用して、Container Source 設定を設定します。
注記Form view と YAML view 間で切り換えることができます。ビューの切り替え時に、データは永続化されます。
- Image フィールドに、コンテナーソースが作成したコンテナーで実行するイメージの URI を入力します。
- Name フィールドにイメージの名前を入力します。
- オプション: Arguments フィールドで、コンテナーに渡す引数を入力します。
- オプション: Environment variables フィールドで、コンテナーに設定する環境変数を追加します。
Sink セクションで、コンテナーソースからのイベントがルーティングされるシンクを追加します。Form ビューを使用している場合は、以下のオプションから選択できます。
- Resource を選択して、チャネル、ブローカー、またはサービスをイベントソースのシンクとして使用します。
- URI を選択して、コンテナーソースからのイベントのルーティング先を指定します。
- コンテナーソースの設定が完了したら、Create をクリックします。
5.2.6.2.4. コンテナーソースのリファレンス リンクのコピーリンクがクリップボードにコピーされました!
ContainerSource
オブジェクトを作成することにより、コンテナーをイベントソースとして使用できます。ContainerSource
オブジェクトを作成するときに、複数のパラメーターを設定できます。
ContainerSource
オブジェクトは以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
|
API バージョンを指定します (例: | 必須 |
|
このリソースオブジェクトを | 必須 |
|
| 必須 |
|
この | 必須 |
| シンクとして使用する URI に解決するオブジェクトへの参照。 | 必須 |
|
| 必須 |
| 上書きを定義して、シンクに送信されたイベントへの出力形式および変更を制御します。 | 任意 |
テンプレートパラメーターの例
5.2.6.2.4.1. CloudEvent オーバーライド リンクのコピーリンクがクリップボードにコピーされました!
ceOverrides
定義は、シンクに送信される CloudEvent の出力形式および変更を制御するオーバーライドを提供します。ceOverrides
定義に複数のフィールドを設定できます。
ceOverrides
の定義は、以下のフィールドをサポートします。
フィールド | 説明 | 必須またはオプション |
---|---|---|
|
アウトバウンドイベントで追加または上書きされる属性を指定します。各 | 任意 |
拡張子として許可されるのは、有効な CloudEvent
属性名のみです。拡張機能オーバーライド設定から仕様定義属性を設定することはできません。たとえば、type
属性を変更することはできません。
CloudEvent オーバーライドの例
これにより、subject
に K_CE_OVERRIDES
環境変数が設定されます。
出力例
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
5.2.7. 開発者パースペクティブを使用してイベントソースをシンクに接続する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用してイベントソースを作成する場合、イベントがソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
5.2.7.1. Developer パースペクティブを使用してイベントソースをシンクに接続します。 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
- Web コンソールにログインしており、Developer パースペクティブを使用している。
- OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
- Knative サービス、チャネル、ブローカーなどのシンクを作成している。
手順
-
+Add
Event Source に移動して任意のタイプのイベントソースを作成し、作成するイベントソースを選択します。 - イベントソースの作成 フォームビューの シンク セクションで、リソース リストからシンクを選択します。
- Create をクリックします。
検証
Topology ページを表示して、イベントソースが作成され、シンクに接続されていることを確認できます。
- Developer パースペクティブで、Topology に移動します。
- イベントソースを表示し、接続されたシンクをクリックして、右側のパネルにシンクの詳細を表示します。