在 Kubernetes 中安装和使用 JuiceFS 存储
JuiceFS 简介
JuiceFS 是为海量数据设计的分布式文件系统,使用对象存储来做数据持久化,避免重复造轮子,还能大大降低工程复杂度,让用户专注解决元数据和访问协议部分的难题。
使用 JuiceFS 存储数据,数据本身会被持久化在对象存储(例如,Amazon S3),而数据所对应的元数据可以根据场景需要被持久化在 Redis、MySQL、SQLite 等多种数据库中。
KubeSphere 平台介绍
KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。
KubeSphere 提供了运维友好的向导式操作界面,即便是 Kubernetes 经验并不丰富的用户,也能相对轻松的上手开始管理和使用。它提供了基于 Helm 的应用市场,可以在可视化界面下非常轻松地安装各种 Kubernetes 应用。
本教程将介绍如何在 KubeSphere 中一键部署 JuiceFS CSI Driver,为集群上的各种应用提供数据持久化。
前提条件
部署 Redis
Redis 是 JuiceFS 架构中的关键组件,它负责存储所有元数据并响应客户端对元数据的操作。所以在部署 JuiceFS CSI Driver 之前,需要先部署一个 Redis 数据库,部署详细步骤可参考 KubeSphere 官方文档。
部署 JuiceFS CSI Driver
KubeSphere 从 3.2.0 开始新增了 “动态加载应用商店” 的功能,合作伙伴可通过提交 PR 申请将应用的 Helm Chart 集成到 KubeSphere 应用商店,这样 KubeSphere 应用商店即可动态加载应用。目前 JuiceFS CSI Driver 的 Helm Chart 已经通过这种方式集成到了 KubeSphere 的应用商店,用户可以一键将 JuiceFS CSI Driver 部署至 Kubernetes。
首先选择您所需部署的企业空间和项目。
进入项目后,点击“创建”部署新应用。
选择“从应用商店”。
点击目标应用,然后点击“部署”。
修改 backend 参数。
验证服务。
部署有状态应用
创建有状态副本集。
添加自定义名称。
添加容器镜像。
sh,-c,while true; do echo $(date -u) >> /data/out.txt; sleep 5; done
添加存储卷模板。
检查状态。
验证存储卷
首先验证创建的 PVC 绑定状态。
kubectl get pvc -n kubesphere
进入有状态应用检查挂载状态。
登录 OBS 查看文件同步状态。
注意事项
- JuiceFS CSI Driver 安装完成任何 namespace 都可以使用;
- PVC 所属的 pod 归属在 JuiceFS CSI Driver 的 namespace 中;
- 创建完应用必须进入所声明挂载的文件夹存放数据,远端存储才会同步显示。