相关博客文章
关于这个csi驱动
这是基于gcp的filestore文件系统服务实现的csi驱动。gcp的filestore文件系统服务支持nfs3协议,驱动实现通过nfs挂载使用。 一个filestore实例就是一个nfs文件系统服务,我们将一个nfs文件系统服务通过划分不同目录当成不同的卷,但由于filestore最多只支持创建80个一级目录,所以我们不用一级目录作为卷,而是二级目录。 这个csi驱动只实现共享pv,即一个pv可以给多个pod同时挂载使用。 该驱动在创建卷(PV)的时候,如果filestore实例不存在,则调用google api创建一个filestore实例,否则不调用。 创建卷就是在controller组件上挂载filestore实例(挂载一级目录),然后为卷创建二级目录。
如何让这个项目跑起来?
1.首先通过项目的Dockerfile构建镜像,然后推送到自己的镜像仓库
2.在gcp上创建一个vpc,用这个vpc创建一个gke集群
3.修改deploy/chart下的values.yaml - 3.1 修改image为你的镜像地址(不需要加版本号) - 3.2 修改vpc名称为你k8s集群使用的vpc的名称 - 3.3 修改fileStore配置,修改project(gcp上的项目id)和location(区域)
4.构建打包helm char,通过helm char安装驱动,构建时需要指定版本号
helm package ./ -d ./ --version CHART_VERSION --app-version APP_VERSION
- CHART_VERSION替换为你的helm char的版本
- APP_VERSION替换为你打包的docker镜像的版本
5.创建一个名为gcp-filestore-csi-driver-sa的secret资源,放在你驱动将要部署的namespace下。 在gcp上创建一个IAM,赋予filestore的api权限,然后下载证书,把证书的内容拷贝到 gcp-filestore-csi-driver-sa资源的data。
apiVersion: v1
kind: Secret
metadata:
name: gcp-filestore-csi-driver-sa
namespace: {你部署csi驱动helm char时指定的namespace}
data:
gcp_filestore_csi_driver_sa.json: >-
经过base64编码的证书内容
type: Opaque