简介

OpenShift 4 中通过名为“Red Hat OpenShift Serverless”的 Operator 提供了基于 Knative 的 Serverless(无服务器架构)的运行环境。OpenShift 的无服务器组件主要涉及 Knative Serving 和 Knative Eventing。

Knative Serving 是一个开源软件框架,用于构建和管理可扩展、容错和高度可用的应用程序。它基于 Kubernetes 原生 API 构建,并以自定义资源定义 (CRD) 的形式提供一组对象,用于定义和控制集群上无服务器工作负载的行为。

Knative Eventing 是基于事件驱动的架构,可以连接外部事件源,并使用 Kubernetes 原生的事件系统。它提供了一个事件网格,用于在应用程序和事件源之间传递和处理事件。

Knative CLI 是 Knative Serving 和 Knative Eventing 的命令行工具。它提供了用于部署和管理现代无服务器工作负载的命令行界面。通过使用Knative CLI,开发人员可以轻松地部署和管理无服务器应用程序,而无需编写任何代码。

安装Knative 环境

安装 Red Hat OpenShift Serverless

  1. 用集群管理员登录 OpenShift Console 控制台,进入管理员视图。
  2. 进入 Operators 中的 OperatorHub 菜单,然后找到“Red Hat OpenShift Serverless”,点击进入。
  3. 然后在右滑页面中点击Install。
  4. 在“Install Operator”页面中接受默认选项,再点击 Install。
  5. 安装完成的无服务器组件可以在 “安装的Operator” 中观察到。

安装 Knative Serving

  • 在 Web Console中安装

1. 在集群控制台的 管理员 视角中,进入 Operators → 安装的 Operators。

2. 顶部的 Project 下拉菜单设置为 : knative-serving。

3. 点击 Red Hat OpenShift Serverless 进入详情页面并选择 创建 Knative Serving 实例。

4. 在 创建 Knative Serving 页中,您可以使用默认设置安装 Knative Serving。点 创建。

OpenShift 中部署无服务器_无服务器



  • 使用 Yaml 文件 安装

1. 创建包含一下内容的 serving.yaml 的文件并将以下示例 YAML 复制到其中:

apiVersion: operator.knative.dev/v1alpha1
kind: KnativeServing
metadata:
    name: knative-serving
    namespace: knative-serving

2. 应用 service.yaml 文件:

$ oc apply -f serving.yaml

观察安装结果

OpenShift 中部署无服务器_Openshift_02


OpenShift 中部署无服务器_无服务器_03


安装 Knative Eventing

  • 在 Web Console中安装

1. 在集群控制台的 管理员 视角中,进入 Operators → 安装的 Operators。

2. 顶部的 Project 下拉菜单设置为 : knative-eventing。

3. 点击 Red Hat OpenShift Serverless 进入详情页面并选择 创建 Knative Eventing 实例。

4. 在 创建 Knative Eventing 页面中,您可以选择使用提供的默认表单或编辑 YAML 来配置 KnativeEventing 对象。

  • 使用 Yaml 文件 安装

1. 创建包含下述内容的 eventing.yaml 的文件。

apiVersion: operator.knative.dev/v1alpha1
kind: KnativeEventing
metadata:
    name: knative-eventing
    namespace: knative-eventing

2. 输入以下内容来应用 eventing.yaml 文件:

$ oc apply -f eventing.yaml

OpenShift 中部署无服务器_无服务器_04


安装 Knative CLI

$ curl -L https://mirror.openshift.com/pub/openshift-v4/clients/serverless/latest/kn-linux-amd64.tar.gz | tar -xzf -
$ mv kn /usr/local/bin/

若使用统信容器云管理平台(有雀)可通过 RPM 包的方式安装

$ yum install -y utccp-serverless-clients