Open-Local 开源项目教程
项目介绍
Open-Local 是一个由多个组件构成的本地磁盘管理系统,旨在解决 Kubernetes 本地存储能力缺失的问题。通过 Open-Local,使用本地存储会像集中式存储一样简单。Open-Local 包含四大类组件:
- Scheduler-Extender: 作为 Kubernetes Scheduler 的扩展组件,通过 Extender 方式实现新增本地存储调度算法。
- CSI: 按照 CSI(Container Storage Interface)标准实现本地磁盘管理能力。
- Agent: 运行在集群中的每个节点,根据配置清单初始化存储设备,并通过上报集群中本地存储设备信息以供 Scheduler-Extender 决策调度。
- Controller: 获取集群存储初始化配置,并向运行在各个节点的 Agent 下发详细的配置清单。
项目快速启动
前期准备
- 基于 RedHat 和 Debian 的 Linux 发行版(本次实验使用 CentOS 7.9)
- LVM2+
- Docker-ce 版本:19.03.15
- 集群中至少有一个空闲块设备用来测试
- Ack-distro
部署步骤
-
克隆项目仓库
git clone https://github.com/alibaba/open-local.git cd open-local
-
安装依赖
sudo yum install -y lvm2 docker-ce
-
启动 Open-Local
make deploy
应用案例和最佳实践
Open-Local 已广泛用于生产环境,目前使用的产品包括:
- ACK 发行版
- 阿里云 ADP (云原生应用交付平台)
- 云原生 CNStack 产品
- 蚂蚁金融分布式架构 SOFAStack
最佳实践
- 本地存储池管理: 通过 Open-Local 管理本地存储池,实现存储卷的动态分配和扩容。
- 存储调度算法扩展: 利用 Scheduler-Extender 扩展 Kubernetes 的存储调度算法,优化存储资源分配。
- 存储卷快照: 创建存储卷快照,实现数据备份和恢复。
典型生态项目
Open-Local 与其他云原生项目结合使用,可以构建更强大的存储解决方案:
- Prometheus 和 Grafana: 部署 Open-Local 时可选择性安装监控大盘,监控存储卷的使用情况。
- Kubernetes: Open-Local 作为 Kubernetes 的本地存储解决方案,提供高效的存储管理能力。
- Sealer: 阿里巴巴开源的应用打包交付工具,帮助用户更简单、敏捷地管理集群。
通过以上模块的介绍和实践,您可以快速上手并深入了解 Open-Local 项目,构建高效的本地存储管理系统。