• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

fastcfs-csi: FastCFS k8s驱动,FastCFS是一款可以跑数据库的高性能分布式文件系统。 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

fastcfs-csi

开源软件地址:

https://gitee.com/fastdfs100/fastcfs-csi

开源软件介绍:

FastCFS-CSI

English | 简体中文

1. 概述

FastCFS 容器存储接口(CSI)驱动器为容器编排器(Container Orchestrators)管理FastCFS类型卷的生命周期提供 CSI 支持。

1.1. 项目状态

状态: beta

1.2. 功能

  • 静态供应 - 创建一个新的或迁移现有的 FastCFS 卷, 然后从 FastCFS 卷创建持久卷 (PV) 并使用 PersistentVolumeClaim (PVC) 从容器中消费 PV。
  • 动态供应 - 使用PersistentVolumeClaim (PVC)请求 Kuberenetes 代表用户创建 FastCFS 卷,并从容器内部消费该卷。
  • 挂载选项 - 可以通过在持久卷 (PV) 中指定挂载选项,来定义卷的挂载方式。
  • 卷扩充 - 扩充卷的大小。自 Kubernetes 1.16 起,这个 CSI 功能(ExpandCSIVolumes)为 beta 版。

注意 FastCFS-CSI 不支持删除静态卷。PV 规范中的 persistentVolumeReclaimPolicy 必须设置为 Retain,以避免在 csi-provisioner 中尝试删除 PV。

2. Kubernetes 上使用 FastCFS CSI 驱动

以下部分是特定于 Kubernetes 的。如果您是 Kubernetes 用户,请使用以下驱动程序功能、安装步骤和示例。

2.1. Kubernetes 版本兼容性矩阵

FastCFS CSI Driver \ Kubernetes Versionv1.17v1.18+
master branch?yes
v0.2.0?yes
v0.1.0?yes

2.2. 先决条件

  • FastCFS v2.2.0 或更新版本
  • FastCFS 启用验证模块auth_enabled = true
  • FastCFS 客户端、auth 模块和 cluster 等配置文件需要提供 HTTP 或 HTTPS 访问方式。可以把 FastCFS 所有配置文件拷贝到 web server 的根目录下:
    • 例如:cp -R /etc/fastcfs /path/www && cd /path/www && python3 -m http.server 8080.
  • 熟悉如何设置 Kubernetes 并拥有一个可以工作的 Kubernetes 集群:
    • kubeletkube-apiserver 需启用标志 --allow-privileged=true
    • 启用 kube-apiserver 特性门控 --feature-gates=CSINodeInfo=true,CSIDriverRegistry=true
    • 启用 kubelet 特性门控 --feature-gates=CSINodeInfo=true,CSIDriverRegistry=true

2.3. 安装

2.3.1. 设置驱动权限

驱动程序需要 FastCFS 密钥才能与 FastCFS 通信以代表用户管理卷。有一种授予驱动程序权限的方法:

  • 使用secret对象 - 在FastCFS创建具有适当权限的管理员和用户,将该用户的凭据(FastCFS的凭证默认目录为/etc/fastcfs/auth/keys)放入 密钥清单, 然后部署。
curl https://raw.githubusercontent.com/happyfish100/fastcfs-csi/master/deploy/kubernetes/secret.yaml > secret.yaml# 编辑这个文件,填入你的用户凭证kubectl apply -f secret.yaml

然后就可以在存储类中使用这个密钥

2.3.2. 配置节点容忍(toleration)设置

默认情况下,驱动程序容忍污点 CriticalAddonsOnly 并将 tolerationSeconds 配置为 300,要在任何节点上部署驱动程序,请在部署前将 helm Value.node.tolerateAllTaints 设置为 true

2.3.3. 部署驱动

在部署驱动程序之前,请参阅上面的兼容性矩阵

kubectl apply -k "github.com/happyfish100/fastcfs-csi/deploy/kubernetes/overlays/dev/?ref=main"

修改ConfigMap, 并替换它。ConfigMap 例子

curl https://raw.githubusercontent.com/happyfish100/fastcfs-csi/master/deploy/kubernetes/base/csiplugin-configmap.yaml > csiplugin-configmap.yamlkubectl replace -f csiplugin-configmap.yaml

验证驱动程序正在运行:

kubectl get pods

或者,您也可以使用 helm 安装驱动程序:

添加 fastcfs-csi Helm 存储库:

helm repo add fastcfs-csi https://happyfish100.github.io/fastcfs-csihelm repo update

然后使用 chart 安装驱动程序的版本

helm upgrade --install fastcfs-csi fastcfs-csi/fcfs-csi-driver

2.3.4. 使用调试模式部署驱动程序

要查看驱动程序调试日志,请使用 -v=5 命令行选项运行 CSI 驱动程序

2.4. 例子

确保在示例之前遵循 先决条件 :

2.5. CSI 规范和 Kubernetes 版本兼容性

请参考Kubernetes文档中的 兼容矩阵

3. 开发

开发前请先阅读 CSI SpecGeneral CSI driver development guideline 获得对CSI驱动有一些基本的了解。

3.1. 要求

  • Golang 1.15.+
  • Ginkgo 在您的 环境变量 中进行端到端测试
  • Docker 17.05+ 发布版

3.2. 依赖

通过 go module 管理依赖。要构建项目,首先使用export GO111MODULE=on打开go mod,然后使用:make构建项目

3.3. 测试

  • 执行e2e测试,运行:make test-e2e-single-nnmake test-e2e-multi-nn(现在只能本地执行,本地需要可以连接FastCFS集群)

3.4. 构建容器镜像

  • 构建镜像 : make image-csi

3.5. Helm 和 manifests

helm chart 位于 charts/fcfs-csi-driver 目录中。manifests 位于 deploy/kubernetes 目录中。除了 kustomize patches 之外的所有清单都是通过运行 helm template 生成的。这使 helm chart 和 manifests 保持同步。

更新 helm chart:

  • 生成 manifests: make generate-kustomize
  • deploy/kubernetes/values 中有用于生成一些 manifests 的值文件
  • 向 helm chart 添加新资源模板时,请更新 generate-kustomize 的 make 目标和 deploy/kubernetes/values 文件和适当的 kustomization.yaml 文件。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
enode: Java实现DDD框架enode发布时间:2022-03-25
下一篇:
flink-jobs-launcher: flink-jobs应用程序启动器类库,玩转flink发布时间:2022-03-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap