fission使用指南

Fission 简介

Fission 是由私有云服务提供商 Platform9 领导开源的 serverless 产品,它借助 kubernetes 灵活强大的编排能力完成容器的管理调度工作,而将重心投入到 FaaS 功能的开发上,其发展目标是成为 AWS lambda 的开源替代品。从 CNCF 视角,fission 属于 serverless 平台型产品。

核心概念

Fission 包含 FunctionEnvironmentTrigger 三个核心概念,其关系如下图所示:

  1. Function - 代表用特定语言编写的需要被执行的代码片段。
  2. Environment- 用于运行用户函数的特定语言环境。
  3. Trigger - 用于关联函数和事件源。如果把事件源比作生产者,函数比作执行者,那么触发器就是联系两者的桥梁。

关键组件

Fission 包含 Controller、Router、Executor 三个关键组件:

  1. Controller - 提供了针对 fission 资源的增删改查操作接口,包括 functions、triggers、environments、Kubernetes event watches 等。它是 fission CLI 的主要交互对象。
  2. Router - 函数访问入口,同时也实现了 HTTP 触发器。它负责将用户请求以及各种事件源产生的事件转发至目标函数。
  3. 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值