事件源¶
事件源是一个Kubernetes自定义资源(CR),由开发人员或集群管理员创建,充当事件生成器和事件 sink 之间的链接。 接收器可以是k8s服务,包括Knative服务、通道或从事件源接收事件的代理。
通过从源对象实例化CR来创建事件源。 源对象定义实例化CR所需的参数和参数。
所有来源都是来源类别的一部分。
通过输入kn命令,可以列出集群中现有的事件源:
kn source list
您可以通过输入以下命令列出集群上已有的事件源:
kubectl get sources
Note
从其他消息技术(如Kafka或RabbitMQ)导入事件的事件源不负责设置可选属性 比如datacontenttype.
这是最初的事件制作人的责任;如果属性存在,源只追加属性。
Knative 源¶
| 名称 | 状态 | Maintainer | 描述 |
|---|---|---|---|
| APIServerSource | Stable | Knative | 将Kubernetes API服务器事件引入Knative。每次创建、更新或删除Kubernetes资源时,APIServerSource都会触发一个新事件。 |
| Apache CouchDB | Alpha | Knative | 将Apache CouchDB消息引入Knative。 |
| Apache Kafka | Stable | Knative | 将Apache Kafka消息引入Knative。KafkaSource从Apache Kafka Cluster中读取事件,并将这些事件传递给一个接收器,以便它们可以被使用。参见Kafka源示例了解更多细节。 |
| ContainerSource | Stable | Knative | ContainerSource实例化可以生成事件的容器映像,直到删除ContainerSource为止。例如,这可以用于轮询FTP服务器以获取新文件或以设置的时间间隔生成事件。给定一个至少指定了一个容器映像的spec.template, ContainerSource将保持一个Pod运行在指定的映像中。K_SINK(目标地址)和KE_CE_OVERRIDES (JSON CloudEvents属性)环境变量被注入到运行映像中。它被多个其他源用作底层基础结构。有关更多细节,请参阅容器源示例。 |
| GitHub | Beta | Knative | 在指定的GitHub组织或存储库中注册指定类型的事件,并将这些事件带入Knative。GitHubSource为选定的GitHub事件类型触发一个新事件。参见GitHub源示例了解更多细节。 |
| GitLab | Beta | Knative | 在指定的GitLab存储库中注册指定类型的事件,并将这些事件带入Knative。GitLabSource为指定的事件类型创建一个webhook,监听传入的事件,并将它们传递给使用者。参见GitLab源示例了解更多细节。 |
| KogitoSource | Alpha | Knative | 由Kogito Operator管理的Kogito Runtime自定义资源的实现。 |
| PingSource | Stable | Knative | 在指定的Cron调度上生成具有固定有效负载的事件。参见Ping源示例了解更多详细信息。 |
| RabbitMQ | Stable | Knative | 将RabbitMQ消息带入Knative。 |
| RedisSource | Alpha | Knative | 将Redis流引入Knative。 |
| SinkBinding | Stable | Knative | 可以使用Kubernetes提供的任何熟悉的计算抽象(例如Deployment、Job、DaemonSet、StatefulSet)或Knative抽象(例如Service、Configuration)来编写新的事件源。SinkBinding提供了一个框架,用于将K_SINK(目标地址)和K_CE_OVERRIDES(JSON cloudevents属性)环境变量注入到任何Kubernetes资源中,这些资源有一个看起来像Pod(又名PodSpecable)的spec.template。更多细节请参见SinkBinding示例。 |
第三方源¶
| Name | Status | Maintainer | Description |
|---|---|---|---|
| Amazon CloudWatch | Stable | TriggerMesh | 从Amazon CloudWatch收集指标. (安装) (示例) |
| Amazon CloudWatch Logs | Stable | TriggerMesh | 订阅来自Amazon CloudWatch Logs流的日志事件。 (安装) (示例) |
| AWS CodeCommit | Stable | TriggerMesh | 注册由AWS CodeCommit源代码存储库发出的事件。 (安装) (示例) |
| Amazon Cognito Identity | Stable | TriggerMesh | Registers for events from Amazon Cognito identity pools. (安装) (示例) |
| Amazon Cognito User | Stable | TriggerMesh | Registers for events from Amazon Cognito user pools. (安装) (示例) |
| Amazon DynamoDB | Stable | TriggerMesh | Reads records from an Amazon DynamoDB stream. (安装) (示例) |
| Amazon Kinesis | Stable | TriggerMesh | Reads records from an Amazon Kinesis stream. (安装) (示例) |
| Amazon RDS Performance Insights | Stable | TriggerMesh | Subscribes to metrics from Amazon RDS Performance Insights. (安装) (示例) |
| Amazon S3 | Stable | TriggerMesh | Subscribes to event notifications from an Amazon S3 bucket. (安装) (示例) |
| Amazon SNS | Stable | TriggerMesh | Subscribes to messages from an Amazon SNS topic. (安装) (示例) |
| Amazon SQS | Stable | TriggerMesh | Consumes messages from an Amazon SQS queue. (安装) (示例) |
| Apache Camel | Stable | Apache Software Foundation | Enables use of Apache Camel components for pushing events into Knative. Camel sources are now provided via Kamelets as part of the Apache Camel K project. |
| Azure Activity Logs | Stable | TriggerMesh | Capture activity logs from Azure Activity Logs. (安装) (示例) |
| Azure Blob Storage | Stable | TriggerMesh | Subscribes to events from an Azure Blob Storage account. (安装) (示例) |
| Azure Event Grid | Stable | TriggerMesh | Retrieves events from Azure Event Grid. (安装) (示例) |
| Azure Event Hubs | Stable | TriggerMesh | Consumes events from Azure Event Hubs. (安装) (示例) |
| Azure IoT Hub | Stable | TriggerMesh | Consumes event from Azure IoT Hub. (安装) (示例) |
| Azure Queue Storage | Stable | TriggerMesh | Retrieves messages from Azure Queue Storage. (安装) (示例) |
| Azure Service Bus Queues | Stable | TriggerMesh | Consumes messages from an Azure Service Bus queue. (安装) (示例) |
| Azure Service Bus Topics | Stable | TriggerMesh | Subscribes to messages from an Azure Service Bus topic. (安装) (示例) |
| Direktiv | Alpha | Direktiv | Receive events from Direktiv. |
| DockerHubSource | Alpha | None | Retrieves events from Docker Hub Webhooks and transforms them into CloudEvents for consumption in Knative. |
| Google Cloud Audit Logs | Stable | TriggerMesh | Captures audit logs from Google Cloud Audit Logs. (安装) (示例) |
| Google Cloud Billing | Stable | TriggerMesh | Captures budget notifications from Google Cloud Billing. (安装) (示例) |
| Google Cloud IoT | Stable | TriggerMesh | Subscribes to messages from a Google Cloud IoT registry. (安装) (示例) |
| Google Cloud Pub/Sub | Stable | TriggerMesh | Subscribes to messages from a Google Cloud Pub/Sub topic. (安装) (示例) |
| Google Cloud Source Repositories | Stable | TriggerMesh | Consumes events from Google Cloud Source Repositories. (安装) (示例) |
| Google Cloud Storage | Stable | TriggerMesh | 捕获来自谷歌Cloud Storage桶的更改通知。 (安装) (示例) |
| HTTP Poller | Stable | TriggerMesh | 定期从HTTP/S URL提取事件。 (安装) (示例) |
| Oracle Cloud Infrastructure | Stable | TriggerMesh | 从Oracle云基础设施检索指标. (安装) (示例) |
| Salesforce | Stable | TriggerMesh | 使用来自Salesforce通道的事件。(安装) (示例) |
| Slack | Stable | TriggerMesh | 订阅Slack的活动。 (安装) (示例) |
| Twilio | Supported | TriggerMesh | 从Twilio接收事件. (安装) (示例) |
| VMware | Alpha | VMware | 将vSphere事件带入Knative。 |
| Webhook | Stable | TriggerMesh | 使用HTTP从webhook中摄取事件。 (安装) (示例) |
| Zendesk | Stable | TriggerMesh | 订阅Zendesk的事件。 (安装) (示例) |
额外的源¶
- 如果您的代码需要将事件作为其业务逻辑的一部分发送,并且不适合源的模型,请考虑将事件直接提供给代理。
- 有关使用
kn源相关命令的更多信息,请参见kn source参考文档。