入门

这里将指引您快速入门 OpenFunction,包括安装及一些案例的演示

概述

OpenFunction 是一个云原生、开源的 FaaS(函数即服务)框架,旨在让开发人员专注于他们的开发意图,而不必关心底层运行环境和基础设施。用户只需提交一段代码,就可以生成事件驱动的、动态伸缩的 Serverless 工作负载。

OpenFunction的特点:

  • 云原生,开源
  • 自动构建代码为 OCI 标准镜像
  • 自动部署具有动态伸缩能力的应用程序
  • 提供事件框架,使函数具备事件驱动能力
  • 提供函数版本控制和入口流量管理功能

OpenFunction有两个主要框架:

兼容性

Kubernetes 兼容性矩阵

我们对下列版本进行了测试验证,以确保他们可以按照所示的对应关系正常运行。但请注意,使用其他版本也可能正常运行!

OpenFunctionKubernetes 1.19Kubernetes 1.20Kubernetes 1.21Kubernetes 1.22
release-0.3
release-0.4×
HEAD×

前提准备

当前版本的 OpenFunction 要求你有一个版本为 等于或高于 1.18.6 的 Kubernetes 集群。

此外,你需要为 OpenFunction 的 BuilderServing 部署一些依赖项。

你可以使用以下命令来安装 OpenFunction 的 BuilderServing

sh hack/deploy.sh --all

这个命令将安装 BuilderServing 的所有依赖项到你的集群中。

你也可以用以下参数来定制安装的依赖软件。

参数用途说明
--all安装所有 BuilderServing 的依赖软件
--with-shipwright安装 ShipWright(Builder 的依赖软件)
--with-knative安装 Knative(Serving 的依赖软件)
--with-openFuncAsync安装 OpenFuncAsync(Serving 的依赖软件,包含 KEDA 与 Dapr)
--poor-network用于当你正使用无法有效访问 GitHub/Googleapis 的网络时

安装

你可以使用以下命令安装 OpenFunction:

  • 安装最新稳定版本
kubectl create -f https://github.com/OpenFunction/OpenFunction/releases/download/v0.4.0/bundle.yaml
  • 安装最新开发版本
kubectl create -f https://raw.githubusercontent.com/OpenFunction/OpenFunction/main/config/bundle.yaml

注意:当使用非默认的命名空间时,确保命名空间中的 ClusterRoleBinding 是匹配的。

案例:运行一个简单函数

如果你已经安装了 OpenFunction,推荐参考 OpenFunction samples 运行一个函数案例。

卸载

  • 卸载最新的稳定版本
kubectl delete -f https://raw.githubusercontent.com/OpenFunction/OpenFunction/release-0.4/config/bundle.yaml
  • 卸载最新的开发版本
kubectl delete -f https://raw.githubusercontent.com/OpenFunction/OpenFunction/main/config/bundle.yaml