Fission-All Helm Chart 完全指南:在Kubernetes上部署Serverless框架
什么是Fission?
Fission是一个基于Kubernetes的Serverless函数框架,它允许开发者在Kubernetes集群上快速部署和运行无服务器函数。通过Fission,开发者可以专注于编写业务逻辑代码,而无需关心底层基础设施的管理。
前置准备
在开始部署Fission-All之前,请确保您的环境满足以下要求:
- Kubernetes集群版本1.23或更高
- Helm 3或更高版本已安装并配置
安装Fission-All Helm Chart
1. 添加Helm仓库
首先需要将Fission的Helm仓库添加到本地:
helm repo add fission-charts https://fission.github.io/fission-charts
helm repo update
2. 创建命名空间
Fission需要运行在独立的命名空间中:
export FISSION_NAMESPACE="fission"
kubectl create namespace $FISSION_NAMESPACE
3. 安装CRDs
Fission使用自定义资源定义(CRDs)来管理其资源:
kubectl create -k "github.com/fission/fission/crds/v1?ref={{version}}"
请将{{version}}
替换为最新的Fission版本号。
4. 安装Fission-All
使用Helm安装Fission-All图表:
helm install [RELEASE_NAME] fission-charts/fission-all --namespace fission
图表依赖项
Fission-All Helm Chart默认会安装以下依赖项:
- Prometheus监控组件
如果您不希望安装这些依赖项,可以在安装时通过参数禁用。
卸载Fission-All
要卸载Fission-All,执行以下命令:
helm uninstall [RELEASE_NAME]
注意:卸载操作不会删除CRDs,需要手动清理:
kubectl delete -k "github.com/fission/fission/crds/v1?ref={{version}}"
或者列出所有Fission CRDs并逐个删除:
kubectl get crds| grep ".fission.io"
升级Fission-All
1. 升级CRDs
升级前需要先手动更新CRDs:
kubectl replace -k "github.com/fission/fission/crds/v1?ref={{version}}"
2. 升级Helm Release
helm upgrade [RELEASE_NAME] fission-charts/fission-all
重要版本升级说明
从1.18.x升级到1.20.x
1.20.x版本移除了controller服务。
从1.17.x升级到1.18.x
1.18.x版本对Fission的部署方式进行了重大变更:
- 新增了
defaultNamespace
、additionalFissionNamespaces
、functionNamespace
和builderNamespace
参数 - Fission现在只管理通过
defaultNamespace
和additionalFissionNamespaces
配置的特定命名空间中的资源
从1.16.x升级到1.17.x
1.17.x版本增加了安全上下文设置,默认情况下Fission会以root用户运行。您可以在安装时启用推荐的安全上下文设置。
从1.15.x升级到1.16.x
1.16.x版本移除了Prometheus依赖,如果需要Prometheus监控,建议使用社区支持的Prometheus图表。
从fission-core迁移
从Fission v1.15.x开始,fission-core图表已被移除。fission-all图表现在与fission-core完全相同,可用于迁移:
helm upgrade [RELEASE_NAME] fission-charts/fission-all --namespace fission
配置选项
要查看所有可配置选项:
helm show values fission-charts/fission-all
您还可以查看此图表依赖项的配置选项。
多实例部署
同一个图表可以在同一集群中运行多个Fission实例,只需为每个实例使用不同的发布名称即可。
最佳实践
- 命名空间隔离:建议为Fission创建专用命名空间,避免与其他应用冲突
- 资源限制:为Fission组件设置适当的资源请求和限制
- 监控集成:建议启用Prometheus监控以获取Fission运行指标
- 安全配置:在生产环境中启用安全上下文设置
通过本指南,您应该能够在Kubernetes集群上成功部署和管理Fission Serverless框架。Fission提供了强大的无服务器功能,同时保持了Kubernetes原生集成的优势,是构建现代云原生应用的理想选择。