Fluid开发文档
环境需求
- Git
- Golang (version >= 1.16)
- Docker (version >= 19.03)
- Kubernetes (version >= 1.18)
- GNU Make
对于Golang的安装与配置,请参考此处。
对于Docker的安装与配置,请参考此处。
Fluid需要使用make
命令进行项目构建,使用以下命令安装make
:
- Linux
sudo apt-get install build-essential
项目构建
获取项目源码
$ export GOPATH=$(go env GOPATH)
$ mkdir $GOPATH/src/github.com/fluid-cloudnative
$ cd $GOPATH/src/github.com/fluid-cloudnative
$ git clone https://github.com/fluid-cloudnative/fluid.git
$ cd fluid
注意: 本文在非Go Module模式下完成Fluid的编译、运行和调试。
有关Go module可以参阅 Golang 官方文档 获取更多信息。
安装controller-gen
首先,运行以下命令下载Fluid项目所需的代码生成工具controller-gen
。
$ make controller-gen
检查controller-gen
是否成功安装:
$ controller-gen --version
Version: v0.8.0
注意: controller-gen默认将下载到
$GOPATH/bin
路径下,请确保$GOPATH/bin
已被添加在开发环境的$PATH
环境变量中
二进制程序编译
Fluid项目根目录下的Makefile
文件已经包含了项目开发中的编译、构建、部署等基本逻辑
# 构建Fluid各控制器组件、Fluid Webhook组件和Fluid CSI插件二进制程序
$ make build
# 如果只想编译单独的组件,比如alluxioruntime-controller
$ make alluxioruntime-controller-build
构建得到的二进制程序位于Fluid项目./bin
目录下。
Fluid组件镜像构建&推送
-
设置需要推送的私有镜像仓库(将以下
<docker-registry>
和<my-repo>
替换为实际地址)export IMG_REPO=<docker-registry>/<my-repo>
-
输入镜像仓库访问凭证:
$ sudo docker login <docker-registry>
-
构建全部Fluid组件镜像然后推送到仓库:
$ make docker-push-all
如果仅需要构建并推送特定Fluid组件的镜像(e.g. alluxio-runtime-controller镜像,fluid-webhook镜像)等,请参考
./Makefile
找到对应的Makefile target执行(e.g.make docker-push-alluxioruntime-controller
,make docker-push-webhook
等)