3.2. 设置 Knative


设置 Knative 涉及安装所需的 OpenShift operator 并创建一个 Knative 频道。

3.2.1. 准备 OpenShift 集群

要使用 Kamelets 和 OpenShift Serverless,请安装以下 operator、组件和 CLI 工具:

  • Red Hat Integration - Camel K operator 和 CLI 工具 - Operator 安装和管理 Camel K - 一个轻量级集成框架,它在 OpenShift 上的云中原生运行。kamel CLI 工具允许您访问所有 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.1.1. 安装 OpenShift Serverless

您可以从 OperatorHub 在 OpenShift 集群上安装 OpenShift Serverless Operator。OperatorHub 可从 OpenShift Container Platform Web 控制台获得,集群管理员提供了一个界面来发现和安装 Operator。

OpenShift Serverless Operator 支持 Knative Serving 和 Knative Eventing 功能。如需了解更多详细信息,请参阅安装 OpenShift Serverless Operator

先决条件

  • 具有安装 Camel K Operator 的 OpenShift 项目的集群管理员访问权限。
  • 已安装 OpenShift CLI 工具(oc),以便您可以在命令行中与 OpenShift 集群交互。有关如何安装 OpenShift CLI 的详细信息,请参阅安装 OpenShift CLI

流程

  1. 在 OpenShift Container Platform Web 控制台中,使用具有集群管理员权限的账户登录。
  2. 在左侧导航菜单中,点 Operators > OperatorHub
  3. Filter by keyword 文本框中,输入 Serverless 来查找 OpenShift Serverless Operator
  4. 阅读 Operator 的信息,然后点 Install 以显示 Operator 订阅页面。
  5. 选择默认订阅设置:

    • 更新频道 > 选择与您的 OpenShift 版本匹配的频道,如 4.12
    • Installation Mode > All namespaces on the cluster
    • Approval Strategy > Automatic

      注意

      如果您的环境需要,也可以使用 Approval Strategy > Manual 设置。

  6. Install,然后等待几分钟,直到 Operator 准备就绪。
  7. 按照 OpenShift 文档中的步骤安装所需的 Knative 组件:

  8. (可选)下载并安装 OpenShift Serverless CLI 工具:

    1. 在 OpenShift Web 控制台顶部的 Help 菜单(?)中选择 Command line tools
    2. 向下滚动到 kn - OpenShift Serverless - 命令行界面 部分。
    3. 单击链接,以下载本地操作系统的二进制文件(Linux、Mac、Windows)
    4. 在您的系统路径中解压并安装 CLI。
    5. 要验证您可以访问 kn CLI,请打开命令窗口,然后键入以下内容:

      kn --help

      此命令显示有关 OpenShift Serverless CLI 命令的信息。

      如需了解更多详细信息,请参阅 OpenShift Serverless CLI 文档

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 中创建应用程序和其他工作负载。

流程

  1. 登录您的 OpenShift 集群。
  2. 打开您要在其中创建集成应用程序的项目。例如:

    oc project camel-k-knative

  3. 使用 Knative (kn) CLI 命令创建频道

    kn channel create <channel_name> --type <channel_type>

    例如,要创建一个名为 mychannel 的频道:

    kn channel create mychannel --type messaging.knative.dev:v1:InMemoryChannel

  4. 要确认频道现在存在,请输入以下命令列出所有现有频道:

    kn channel list

    您应该在列表中看到您的频道。

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 中创建应用程序和其他工作负载。

流程

  1. 登录您的 OpenShift 集群。
  2. 打开您要在其中创建集成应用程序的项目。例如:

    oc project camel-k-knative

  3. 使用此 Knative (kn) CLI 命令创建代理:

    kn broker create default

  4. 要确认代理现在存在,请输入以下命令列出所有现有代理:

    kn broker list

您应该在列表中看到 default 代理。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.