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. 使用 API 服务器源
API 服务器源是一个事件源,可用于将事件接收器(sink),如 Knative 服务,连接到 Kubernetes API 服务器。API 服务器源监视 Kubernetes 事件并将其转发到 Knative Eventing 代理。
以下两个流程都要求您创建 YAML 文件。
如果更改了示例中使用的 YAML 文件的名称,则需要更新对应的 CLI 命令。
11.3.1. 通过 Knative CLI 使用 API 服务器源 复制链接链接已复制到粘贴板!
本节介绍了使用 kn
命令创建 ApiServerSource
对象所需的步骤。
先决条件
- 在集群中安装了 Knative Serving 和 Eventing。
-
您已在安装 API 服务器源的同一命名空间中创建了
default
代理。 -
已安装
kn
CLI。
流程
为
ApiServerSource
对象创建服务帐户、角色和角色绑定。您可以创建名为
authentication.yaml
的文件并将以下示例代码复制到其中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果要重新使用具有适当权限的现有服务帐户,您必须修改该服务帐户的
authentication.yaml
文件。创建服务帐户、角色绑定和集群绑定:
oc apply -f authentication.yaml
$ oc apply -f authentication.yaml
Copy 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 Resource
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 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 svc:<service_name>
$ kn trigger create <trigger_name> --sink svc:<service_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过在 default 命名空间中启动 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 通过检查以下命令生成的输出来检查是否正确映射了控制器:
kn source apiserver describe testevents
$ kn source apiserver describe testevents
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
11.3.2. 使用 Knative CLI 删除 API 服务器源 复制链接链接已复制到粘贴板!
本节介绍了使用 kn
和 oc
命令删除 ApiServerSource
对象、触发器、服务、服务帐户、集群角色和集群绑定的步骤。
先决条件
-
已安装了
kn
CLI。
流程
删除触发器:
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 删除 API 服务器源:
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 文件创建 API 服务器源 复制链接链接已复制到粘贴板!
本指南描述了使用 YAML 文件创建 ApiServerSource
对象所需的步骤。
先决条件
- 在集群中安装了 Knative Serving 和 Eventing。
-
您已在与
ApiServerSource
对象中定义的相同的命名空间中创建default
代理。
流程
要为 API 服务器源创建服务帐户、角色和角色绑定,请创建一个名为
authentication.yaml
的文件,并将以下示例代码复制到其中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果要重新使用具有适当权限的现有服务帐户,您必须修改该服务帐户的
authentication.yaml
。创建
authentication.yaml
文件后,应用该文件:oc apply -f authentication.yaml
$ oc apply -f authentication.yaml
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要检查 API 服务器源是否已正确设置,请创建一个 Knative 服务,在日志中转储传入的信息。
将以下示例 YAML 复制到一个名为
service.yaml
的文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
service.yaml
文件后应用它:oc apply -f service.yaml
$ oc apply -f service.yaml
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 trigger.yaml
$ oc apply -f trigger.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要创建事件,请在
default
命名空间中启动 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
11.3.4. 删除 API 服务器源 复制链接链接已复制到粘贴板!
本节论述了如何通过删除 YAML 文件删除 ApiServerSource
对象、触发器、服务、服务帐户、集群角色和集群绑定。
流程
删除触发器:
oc delete -f trigger.yaml
$ oc delete -f trigger.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除服务:
oc delete -f service.yaml
$ oc delete -f service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 API 服务器源:
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