3.2. 设置 Knative
设置 Knative 涉及安装所需的 OpenShift operator 并创建 Knative 频道。
3.2.1. 准备 OpenShift 集群 复制链接链接已复制到粘贴板!
要使用 Kamelets 和 OpenShift Serverless,请安装以下 Operator、组件和 CLI 工具:
Red Hat Integration - Camel K operator 和 CLI 工具 - 操作器安装和管理 Camel K - 一个轻量级集成框架,可在 OpenShift 上的云中原生运行。
kamelCLI 工具允许您访问所有 Camel K 功能。请参阅 安装 Camel K 中的安装说明。
-
OpenShift Serverless operator - 提供一系列 API,它允许容器、微服务和功能运行 "serverless"。无服务器应用程序可按需扩展和缩减(从零),并由多个事件源触发。安装 OpenShift Serverless Operator 时,它会自动创建
knative-serving命名空间(用于安装 Knative Serving 组件)和knative-eventing命名空间(安装 Knative Eventing 组件是必需的)。 - Knative Eventing 组件
- Knative Serving 组件
-
Knative CLI 工具(
kn)- 允许您从命令行或 Shell 脚本中创建 Knative 资源。
3.2.2. 创建 Knative 频道 复制链接链接已复制到粘贴板!
Knative 频道是转发事件的自定义资源。事件源或生成程序将事件发送到频道后,可使用订阅将这些事件发送到多个 Knative 服务或其他 sink。
本例使用 InMemoryChannel 频道,用于 OpenShift Serverless 进行开发目的。请注意,InMemoryChannel 类型频道有以下限制:
- 事件没有持久性。如果 Pod 停机,则 Pod 上的事件将会丢失。
-
InMemoryChannel频道没有实现事件排序,因此同时接收到的两个事件可能会以任何顺序传送给订阅者。 - 如果订阅者拒绝某个事件,则不会默认重新发送尝试。您可以通过修改 Subscription 对象中的 delivery 规格来配置重新发送尝试。
先决条件
- OpenShift Serverless operator、Knative Eventing 和 Knative Serving 组件已安装在 OpenShift Container Platform 集群中。
-
已安装 OpenShift Serverless CLI (
kn)。 - 您已创建了一个项目,或者具有适当的角色和权限访问项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
流程
- 登录您的 OpenShift 集群。
打开您要在其中创建集成应用程序的项目。例如:
oc project camel-k-knative使用 Knative (
kn) CLI 命令创建频道kn channel create <channel_name> --type <channel_type>例如,要创建一个名为
mychannel的频道:kn channel create mychannel --type messaging.knative.dev:v1:InMemoryChannel要确认频道现在存在,请输入以下命令列出所有现有频道:
kn 频道列表您应该在列表中看到您的频道。
3.2.3. 创建 Knative 代理 复制链接链接已复制到粘贴板!
Knative 代理是一个自定义资源,它定义了一个事件网格来收集 CloudEvents 池。OpenShift Serverless 提供了一个 default Knative 代理,您可以使用 kn CLI 创建该代理。
您可以在 Kamelet Binding 中使用代理,例如,当应用程序处理多个事件类型时,您不想为每个事件类型创建频道。
先决条件
- OpenShift Serverless operator、Knative Eventing 和 Knative Serving 组件已安装在 OpenShift Container Platform 集群中。
-
已安装 OpenShift Serverless CLI (
kn)。 - 您已创建了一个项目,或者具有适当的角色和权限访问项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
流程
- 登录您的 OpenShift 集群。
打开您要在其中创建集成应用程序的项目。例如:
oc project camel-k-knative使用此 Knative (
kn) CLI 命令创建代理:kn 代理创建 default要确认代理现在存在,请输入以下命令列出所有现有代理:
kn 代理列表
您应该在列表中看到 default 代理。