Fission 简介
Fission 是由私有云服务提供商 Platform9 领导开源的 serverless 产品,它借助 kubernetes 灵活强大的编排能力完成容器的管理调度工作,而将重心投入到 FaaS 功能的开发上,其发展目标是成为 AWS lambda 的开源替代品。从 CNCF 视角,fission 属于 serverless 平台型产品。
核心概念
Fission 包含 Function、Environment 、Trigger 三个核心概念,其关系如下图所示:
- Function - 代表用特定语言编写的需要被执行的代码片段。
- Environment- 用于运行用户函数的特定语言环境。
- Trigger - 用于关联函数和事件源。如果把事件源比作生产者,函数比作执行者,那么触发器就是联系两者的桥梁。
关键组件
Fission 包含 Controller、Router、Executor 三个关键组件:
- Controller - 提供了针对 fission 资源的增删改查操作接口,包括 functions、triggers、environments、Kubernetes event watches 等。它是 fission CLI 的主要交互对象。
- Router - 函数访问入口,同时也实现了 HTTP 触发器。它负责将用户请求以及各种事件源产生的事件转发至目标函数。
- Executor - fission 包含 PoolManager 和 NewDeploy 两类执行器,它们控制着 fission 函数的生命周期。
fission部署
helm安装
export FISSION_NAMESPACE="fission" kubectl create namespace $FISSION_NAMESPACE kubectl create -k "github.com/fission/fission/crds/v1?ref=v1.17.0" helm repo add fission-charts https://fission.github.io/fission-charts/ helm repo update helm install --version v1.17.0 --namespace $FISSION_NAMESPACE fission \ --set serviceType=NodePort,routerServiceType=NodePort \ fission-charts/fission-all
讯享网
讯享网
kubectl安装
kubectl create -k "github.com/fission/fission/crds/v1?ref=v1.17.0" export FISSION_NAMESPACE="fission" kubectl create namespace $FISSION_NAMESPACE kubectl config set-context --current --namespace=$FISSION_NAMESPACE kubectl apply -f https://github.com/fission/fission/releases/download/v1.17.0/fission-all-v1.17.0-minikube.yaml
fission客户端安装
fission客户端需要考虑不同的环境,本文是MacOs环境,
Fission CLI Reference | Fission
讯享网curl -Lo fission https://github.com/fission/fission/releases/download/v1.17.0/fission-v1.17.0-darwin-amd64 \ && chmod +x fission && sudo mv fission /usr/local/bin/
部署检测
$ fission check fission-services -------------------- √ controller is running fine √ executor is running fine √ router is running fine √ storagesvc is running fine fission-version -------------------- √ fission is up-to-date
举例
环境
python
讯享网fission environment create --name python --image fission/python-env fission function create --name hello --env python --code hello.py --executortype poolmgr fission fn test --name hello
go
How to Develop a Serverless Application with Fission (Part 1) | FaaS on Kubernetes

fission env create --name go --image fission/go-env --builder fission/go-builder fission fn create --name helloworld --env go --src hw.go --entrypoint Handler fission fn test --name helloworld
注意:go环境需要指定builder:--builder fission/go-builder
需要编译代码

kubectl logs -f查看日志

参考
Installing Fission | Fission

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48138.html