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.11.3. ApiServerSource の使用
ApiServerSource は、Knative サービスなどのイベントシンクを Kubernetes API サーバーに接続するために使用できるイベントソースです。ApiServerSource は Kubernetes イベントを監視し、それらを Knative Eventing ブローカーに転送します。
以下の手順では、どちらの場合も YAML ファイルを作成する必要があります。
サンプルで使用されたもので YAML ファイルの名前を変更する場合は、必ず対応する CLI コマンドを更新する必要があります。
11.3.1. Knative CLI (kn) での ApiServerSource の使用 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、kn コマンドを使用して ApiServerSource を作成するために必要な手順を説明します。
前提条件
-
OpenShift Serverless、Knative Serving および Eventing コンポーネント、および
knCLI がインストールされている。
手順
ApiServerSource のサービスアカウント、ロール、およびロールバインディングを作成します。
authentication.yamlという名前のファイルを作成し、以下のサンプルコードをこれにコピーして、これを実行できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記適切なパーミッションを持つ既存のサービスアカウントを再利用する必要がある場合、そのサービスアカウントの
authentication.yamlを変更する必要があります。サービスアカウント、ロールバインディング、およびクラスターバインディングを作成します。
oc apply -f authentication.yaml
$ oc apply -f authentication.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカーをイベントシンクとして使用する ApiServerSource を作成します。
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 ResourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow ApiServerSource が正しく設定されていることを確認するには、受信メッセージをログにダンプする 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:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow defaultブローカーからサービスにイベントをフィルターするトリガーを作成します。kn trigger create <trigger_name> --sink svc:<service_name>
$ kn trigger create <trigger_name> --sink svc:<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:latestCopy 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 podsCopy 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-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.3.2. Knative CLI (kn) を使用した ApiServerSource の削除 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、kn コマンドおよび oc コマンドを使用して ApiServerSource、トリガー、サービス、サービスアカウント、クラスターロール、およびクラスターバインディングを削除するために使用される手順について説明します。
前提条件
-
knCLI がインストールされていること。
手順
トリガーを削除します。
kn trigger delete <trigger_name>
$ kn trigger delete <trigger_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを削除します。
kn service delete <service_name>
$ kn service delete <service_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
11.3.3. YAML メソッドでの ApiServerSource の使用 リンクのコピーリンクがクリップボードにコピーされました!
以下では、YAML ファイルを使用して ApiServerSource を作成するために必要な手順を説明します。
前提条件
- Knative Serving および Eventing のインストールが必要です。
-
defaultブローカーは、ApiServerSource YAML ファイルで定義されるものと同じ namespace に作成している必要があります。
手順
ApiServerSource のサービスアカウント、ロールおよびロールバインディングを作成するには、
authentication.yamlという名前のファイルを作成し、以下のサンプルコードをこれにコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記適切なパーミッションを持つ既存のサービスアカウントを再利用する必要がある場合、そのサービスアカウントの
authentication.yamlを変更する必要があります。authentication.yamlファイルを作成した後に、これを適用します。oc apply -f authentication.yaml
$ oc apply -f authentication.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ApiServerSource イベントソースを作成するには、
k8s-events.yamlという名前のファイルを作成し、以下のサンプルコードをこれにコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow k8s-events.yamlファイルを作成した後に、これを適用します。oc apply -f k8s-events.yaml
$ oc apply -f k8s-events.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ApiServerSource が正しく設定されていることを確認するには、受信メッセージをログにダンプする Knative サービスを作成します。
以下のサンプル YAML を
service.yamlという名前のファイルにコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow service.yamlファイルを作成した後に、これを適用します。oc apply -f service.yaml
$ oc apply -f service.yamlCopy 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 trigger.yaml
$ oc apply -f trigger.yamlCopy 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-displayCopy 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 yamlCopy 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 podsCopy 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-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.3.4. ApiServerSource の削除 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、YAML ファイルを削除して、ApiServerSource、トリガー、サービス、サービスアカウント、クラスターロール、およびクラスターバインディングを削除する方法について説明します。
手順
トリガーを削除します。
oc delete -f trigger.yaml
$ oc delete -f trigger.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを削除します。
oc delete -f service.yaml
$ oc delete -f service.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow イベントソースを削除します。
oc delete -f k8s-events.yaml
$ oc delete -f k8s-events.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスアカウント、クラスターロール、およびクラスターバインディングを削除します。
oc delete -f authentication.yaml
$ oc delete -f authentication.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow