第 2 章 OpenShift Serverless 概述
OpenShift Serverless 提供 Kubernetes 原生构建块,供开发人员在 OpenShift Container Platform 中创建和部署无服务器、事件驱动的应用程序。无服务器应用程序可按需扩展和缩减(从零),并由多个事件源触发。OpenShift Serverless 基于开源 Knative 项目,通过启用企业级无服务器平台为混合和多云环境提供可移植性和一致性。
因为 OpenShift Serverless 的发行节奏与 OpenShift Container Platform 不同,所以现在 OpenShift Serverless 文档为产品的每个次版本单独提供。
OpenShift Serverless 文档位于 https://docs.openshift.com/serverless/。
特定版本的文档可以通过版本选择器下拉菜单获得,或者直接向 URL 添加版本,例如 https://docs.openshift.com/serverless/1.28。
另外,OpenShift Serverless 文档也包括在红帽门户网站中,地址为 https://access.redhat.com/documentation/zh-cn/red_hat_openshift_serverless/。
如需有关 OpenShift Serverless 生命周期和支持的平台的更多信息,请参阅 平台生命周期政策。
2.1. OpenShift Serverless 的组件
2.1.1. Knative Serving
Knative Serving 基于 Kubernetes 构建,支持将应用程序和功能作为无服务器容器进行部署。服务简化了应用程序部署,基于传入的流量动态扩展,并支持通过流量分割来支持自定义推出策略。
Knative Serving 包括以下功能:
- 简化无服务器容器的部署
- 基于流量的自动扩展,包括缩减到零
- 路由和网络编程
- 时点应用程序快照及其配置
2.1.2. Knative Eventing
Knative Eventing 提供了一个可组合原语的平台,以启用后绑定事件源和事件用户。
Knative Eventing 支持以下架构云原生概念:
- 服务在独立于生产的开发和部署过程中松散耦合。
- 生产者可以在消费者侦听前生成事件,消费者可以表达对尚未生成的事件或事件类的兴趣。
- 服务可以连接在不修改制作者或消费者的情况下创建新应用,并且能够从特定制作者选择特定事件子集。
2.1.3. OpenShift Serverless Functions
OpenShift Serverless 功能允许您编写部署为 Knative Services 的功能,并利用 Knative Serving 和 Eventing。
OpenShift Serverless Functions 包括以下功能:
支持以下构建策略:
- Source-to-Image(S2I)
- Buildpacks
- 多个运行时
-
通过 Knative (
kn
) CLI 的本地开发人员体验 - 项目模板
- 支持接收 CloudEvents 和普通 HTTP 请求
2.1.4. OpenShift Serverless Logic
OpenShift Serverless Logic 允许您使用 YAML 或 JSON 文件定义声明性工作流模型。声明性工作流模型编配事件驱动的无服务器应用程序。OpenShift Serverless Logic 可让您视觉化工作流的执行,这简化了调试和优化。它还包括内置的错误处理和容错功能,从而更轻松地处理工作流执行期间发生的错误和异常。OpenShift Serverless Logic 实现 CNCF Serverless 工作流规格。
2.1.5. Knative CLI
Knative (kn
) CLI 允许您从命令行或 Shell 脚本中创建 Knative 资源。通过其广泛的帮助页和自动完成支持,它可让您记住 Knative 资源模式的详细结构。
Knative (kn
) CLI 包括以下功能:
支持管理以下 Knative Serving 功能:
- 服务
- 修订
- Routes
支持管理以下 Knative Eventing 实体:
- 源
- 代理(Broker)
- 触发器
- Channels
- 订阅
-
基于 Kubernetes (
kubectl
) CLI 工具的设计插件架构 - Knative 集成到 Tekton 管道中