fission使用指南

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

大家好,我是讯享网,很高兴认识大家。

Fission 简介

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

核心概念

Fission 包含 Function、Environment 、Trigger 三个核心概念,其关系如下图所示:


讯享网

  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

小讯
上一篇 2025-02-13 16:41
下一篇 2025-03-14 12:27

相关推荐

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