跳到内容

事件源

事件源是由开发者或集群管理员创建的 Kubernetes 自定义资源 (CR),它充当事件生产者和事件接收器之间的链接。接收器可以是 k8s 服务(包括 Knative 服务)、通道或从事件源接收事件的代理。

事件源是通过从 Source 对象实例化 CR 来创建的。Source 对象定义了实例化 CR 所需的参数。

所有源都属于 sources 类别。

您可以通过输入 kn 命令来列出集群上现有的事件源

kn source list

您可以通过输入命令来列出集群上现有的事件源

kubectl get sources

注意

从 Kafka 或 RabbitMQ 等其他消息技术导入事件的事件源不负责设置可选属性,例如 datacontenttype。这是原始事件生产者的责任;源只在属性存在时附加它们。

Knative 源

名称 状态 维护者 描述
Amazon DynamoDB Alpha Knative 接收来自 Amazon DynamoDB Streams 的事件通知。
Amazon S3 Alpha Knative 接收来自 Amazon S3 存储桶的事件通知。
Amazon SQS Alpha Knative 接收来自 Amazon SQS 队列的事件通知。
APIServerSource 稳定 Knative 将 Kubernetes API 服务器事件引入 Knative。每次创建、更新或删除 Kubernetes 资源时,APIServerSource 都会触发一个新事件。
Apache CouchDB Alpha Knative Apache CouchDB 消息引入 Knative。
Apache Kafka 稳定 Knative Apache Kafka 消息引入 Knative。KafkaSource 从 Apache Kafka 集群读取事件,并将这些事件传递给接收器,以便它们可以被消费。有关更多详细信息,请参阅 Kafka 源示例。
CephSource Beta Knative Ceph 源将来自 Ceph 格式的存储桶通知转换为 CloudEvents 格式,并将其注入 Knative。转换逻辑遵循 AWS S3 存储桶通知中描述的逻辑。
ContainerSource 稳定 Knative ContainerSource 实例化可以生成事件的容器镜像,直到 ContainerSource 被删除。例如,这可以用于轮询 FTP 服务器以查找新文件或以设定的时间间隔生成事件。给定至少指定了一个容器镜像的 spec.template,ContainerSource 会保持一个运行指定镜像的 Pod。K_SINK(目标地址)和 KE_CE_OVERRIDES(JSON CloudEvents 属性)环境变量被注入到正在运行的镜像中。它被多个其他源用作底层基础设施。有关更多详细信息,请参阅容器源示例。
通用定时器 Alpha Knative 生成带有自定义有效负载的周期性消息。
GitHub Beta Knative 注册指定 GitHub 组织或仓库上指定类型的事件,并将这些事件引入 Knative。GitHubSource 为选定的 GitHub 事件类型触发一个新事件。有关更多详细信息,请参阅 GitHub 源示例。
GitLab Beta Knative 注册指定 GitLab 仓库上指定类型的事件,并将这些事件引入 Knative。GitLabSource 为指定的 事件类型创建 webhook,监听传入事件,并将它们传递给消费者。有关更多详细信息,请参阅 GitLab 源示例。
KogitoSource Alpha Knative Kogito Operator 管理的 Kogito Runtime 自定义资源的实现。
PingSource 稳定 Knative 以指定的 Cron 计划生成具有固定负载的事件。有关更多详细信息,请参阅 Ping 源示例。
RabbitMQ 稳定 Knative RabbitMQ 消息引入 Knative。
RedisSource Beta Knative 将 Redis Stream 引入 Knative。
SinkBinding 稳定 Knative SinkBinding 可用于使用 Kubernetes 提供的任何熟悉的计算抽象(例如 Deployment、Job、DaemonSet、StatefulSet)或 Knative 抽象(例如 Service、Configuration)来创建新的事件源。SinkBinding 提供了一个框架,用于将 K_SINK(目标地址)和 K_CE_OVERRIDES(JSON cloudevents 属性)环境变量注入到任何具有类似 Pod 的 spec.template 的 Kubernetes 资源(又称 PodSpecable)中。有关更多详细信息,请参阅 SinkBinding 示例。

第三方源

名称 状态 维护者 描述
Apache Camel 稳定 Apache 软件基金会 启用使用 Apache Camel 组件将事件推送到 Knative。Camel 源现在通过 Kamelets 作为 Apache Camel K 项目的一部分提供。
Debezium Alpha Debezium 将数据库更改作为 CloudEvents 在 Knative 中消费。(knative 配置
Direktiv Alpha Direktiv 接收来自 Direktiv 的事件。
DockerHubSource Alpha Docker Hub Webhooks 检索事件并将其转换为 CloudEvents,以便在 Knative 中消费。
VMware Alpha VMware vSphere 事件引入 Knative。

额外资源

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。