README

Fluid
English | 简体中文
最新进展: |
| 最新版发布:2025年9月21日, Fluid v1.0.7 发布! 版本更新介绍详情情参见 CHANGELOG。 |
| v1.0.6版发布:2025年7月12日, Fluid v1.0.6 发布! 版本更新介绍详情情参见 CHANGELOG。 |
| v1.0.5版发布:2025年2月26日, Fluid v1.0.5 发布! 版本更新介绍详情情参见 CHANGELOG。 |
| 进入CNCF:2021年4月27日, Fluid通过CNCF Technical Oversight Committee (TOC)投票决定被接受进入CNCF,成为CNCF Sandbox Project。 |
什么是Fluid
Fluid是一个开源的Kubernetes原生的分布式数据集编排和加速引擎,主要服务于云原生场景下的数据密集型应用,例如大数据应用、AI应用等。
Fluid现在是Cloud Native Computing Foundation (CNCF) 开源基金会旗下的一个沙箱项目。关于Fluid更多的原理性介绍, 可以参见我们的论文:
-
Rong Gu, Kai Zhang, Zhihao Xu, et al. Fluid: Dataset Abstraction and Elastic Acceleration for Cloud-native Deep Learning Training Jobs. IEEE ICDE, pp. 2183-2196, May, 2022. (Conference Version)
-
Rong Gu, Zhihao Xu, Yang Che, et al. High-level Data Abstraction and Elastic Data Caching for Data-intensive AI Applications on Cloud-native Platforms. IEEE TPDS, pp. 2946-2964, Vol 34(11), 2023. (Journal Version)
通过定义数据集资源的抽象,实现如下功能:

核心功能
将数据密集型应用所需基础支撑能力功能化,实现数据高效访问并降低多维管理成本
提供多种操作模式,与自动化运维体系相结合
重要概念
Dataset: 数据集是逻辑上相关的一组数据的集合,会被运算引擎使用,比如大数据的Spark,AI场景的TensorFlow。而这些数据智能的应用会创造工业界的核心价值。Dataset的管理实际上也有多个维度,比如安全性,版本管理和数据加速。我们希望从数据加速出发,对于数据集的管理提供支持。
Runtime: 实现数据集安全性,版本管理和数据加速等能力的执行引擎,定义了一系列生命周期的接口。可以通过实现这些接口,支持数据集的管理和加速。
先决条件
- Kubernetes version > 1.16, 支持CSI
- Golang 1.18+
- Helm 3
快速开始
你可以通过 快速开始 在Kubernetes集群中测试Fluid.
文档
如果需要详细了解Fluid的使用,请参考文档 docs:
你也可以访问Fluid主页来获取有关文档.
快速演示
演示 1: 加速文件访问
演示 2: 加速机器学习
演示 3: 加速PVC
演示 4: 数据预热
演示 5: 在线不停机数据集缓存扩缩容
如何贡献
欢迎您的贡献,如何贡献请参考CONTRIBUTING.md.
欢迎加入与反馈
Fluid让Kubernetes真正具有分布式数据缓存的基础能力,开源只是一个起点,需要大家的共同参与。大家在使用过程发现Bug或需要的Feature,都可以直接在 GitHub上面提 issue 或 PR,一起参与讨论。另外我们有钉钉与微信交流群,欢迎您的参与和讨论。
钉钉讨论群

微信讨论群:

微信官方公众号:

Slack 讨论群
- 加入 CNCF Slack 通过搜索频道 #fluid 和我们进行讨论.
开源协议
Fluid采用Apache 2.0 license开源协议,详情参见LICENSE文件。
漏洞报告
安全性是Fluid项目高度关注的事务。如果您发现或遇到安全相关的问题,欢迎您给fluid.opensource.project@gmail.com邮箱发送邮件报告。具体细节请查看SECURITY.md。
行为准则
Fluid 遵守 CNCF 行为准则。
Extension points exported contracts — how you extend this code
Controller (Interface)
This controller will be moved to RuntimeReconcilerInterface later [8 implementers]
pkg/ctrl/watch/manager.go
DataOperatorYamlGenerator (Interface)
DataOperatorYamlGenerator is the implementation of DataOperator interface for runtime engine using TemplateEngine. [10 …
pkg/ddc/base/engine.go
MutatingHandler (Interface)
MutatingHandler defines the interface for mutating a pod, implementations should be thread(goroutine) safe. [7 implementers]
pkg/webhook/plugins/api/plugins_api.go
OperationInterface (Interface)
OperationInterface the interface of data operation crd [5 implementers]
pkg/dataoperation/interface.go
AdmissionHandler (Interface)
AdmissionHandler wrappers admission.Handler, but adding client-go capablities [5 implementers]
pkg/common/webhook.go
CertGenerator (Interface)
CertGenerator is an interface to provision the serving certificate. [1 implementers]
pkg/utils/webhook/generator/certgenerator.go
StatusError (Interface)
StatusError is an interface for Fluid internal error [1 implementers]
pkg/errors/errors.go
Mutator (Interface)
Mutator is the fuse sidecar mutator for platform-specific mutation logic. [1 implementers]
pkg/application/inject/fuse/mutator/mutator.go
Core symbols most depended-on inside this repo
Error
called by 1271
pkg/errors/deprecated.go
NullLogger
called by 666
pkg/utils/fake/log.go
NewFakeClientWithScheme
called by 528
pkg/utils/fake/client.go
BuildRuntimeInfo
called by 259
pkg/ddc/base/runtime.go
String
called by 174
pkg/utils/kubeclient/exec.go
GetName
called by 165
pkg/ddc/base/runtime.go
GetNamespace
called by 155
pkg/ddc/base/runtime.go
GetDataset
called by 142
pkg/utils/dataset.go
Shape
Function
2,382
Method
2,078
Struct
610
TypeAlias
39
Interface
27
Class
12
FuncType
6
Modules by API surface
api/v1alpha1/zz_generated.deepcopy.go228 symbols
pkg/ddc/base/mock/mock_engine.go106 symbols
api/v1alpha1/openapi_generated.go102 symbols
pkg/ddc/base/runtime.go74 symbols
pkg/ddc/base/engine.go42 symbols
pkg/ddc/jindocache/transform.go36 symbols
pkg/ddc/jindofsx/transform.go34 symbols
test/prow/fluid/fluidapi.py31 symbols
pkg/ddc/juicefs/utils.go31 symbols
pkg/common/types.go31 symbols
pkg/ddc/alluxio/utils_test.go30 symbols
pkg/ddc/goosefs/utils_test.go28 symbols
Dependencies from manifests, versioned
github.com/Masterminds/semver/v3v3.4.0 · 1×
github.com/agiledragon/gomonkey/v2v2.13.0 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/blang/semver/v4v4.0.0 · 1×
github.com/brahma-adshonor/gohookv1.1.9 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/container-storage-interface/specv1.8.0 · 1×
github.com/davecgh/go-spewv1.1.1 · 1×
github.com/docker/go-unitsv0.5.0 · 1×
github.com/emicklei/go-restful/v3v3.11.0 · 1×
github.com/evanphx/json-patchv4.12.0+incompatible · 1×
github.com/evanphx/json-patch/v5v5.8.0 · 1×