Ceph集群Docker容器化部署过程

 更新时间:2024年01月10日 09:14:11   作者:xingyuzhe  
这篇文章主要介绍了Ceph集群Docker容器化部署过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

目标:使用Docker部署Ceph存储集群

环境:CentOS 7

步骤:建立Ceph专用网络->建立Monitor->建立OSD->建立RGW并测试对象存储->建立MDS并测试文件系统->建立MGR

前期准备:Linux主机需提前安装Docker

1.建立Ceph专用网络

为了和docker预设网络区别,新建一个ceph集群专用网络:

docker network create --driver bridge ceph-net

docker network inspect ceph-net

2.建立Monitor

完成专用网络构建后,开始部署ceph集群,第一步为启动Ceph Monitor - 集群监控容器。

Ceph Monitor 维护着展示集群状态的各种图表。

路径设置:DIR $(pwd)

docker run -d --net=ceph-net -v ${DIR}/ceph:/etc/ceph -v ${DIR}/lib/ceph/:/var/lib/ceph/ -e MON_IP=172.19.0.2 -e CEPH_PUBLIC_NETWORK=172.19.0.0/16 --name=mon1 ceph/daemon mon

查看monitor部署情况:

docker exec -ti mon1 ceph -v

docker exec -ti mon1 ceph -s

3.建立OSD

Ceph OSD为对象存储守护进程,提供实际的存储,默认情况下ceph集群需要部署3个OSD。

环境准备:为Linux主机添加3块20GB硬盘(/dev/vdb、/dev/vdc、/dev/vdd)

docker run -d --net=ceph-net --privileged=true --pid=host -v ${DIR}/ceph:/etc/ceph -v ${DIR}/lib/ceph/:/var/lib/ceph/ -v /dev/:/dev/ -e OSD_DEVICE=/dev/vdb -e OSD_TYPE=disk -e OSD_FORCE_ZAP=1 --name osd1 ceph/daemon osd

查看osd部署情况:

docker exec -ti osd1 df | grep "osd"

docker exec -ti mon1 ceph -s

osd2与osd3部署过程类似,只需将/dev设备换成对应的即可。

4.建立RGW并测试对象存储

Ceph RGW - Rados网关:提供S3与Swift相容的API,存储数据至对象存储。

docker run -d --net=ceph-net -v ${DIR}/lib/ceph/:/var/lib/ceph/  -v ${DIR}/ceph:/etc/ceph -p 8080:8080 --name=rgw1 ceph/daemon rgw

curl工具测试部署情况:

curl -H "Content-Type: application/json" "http://127.0.0.1:8080"

下载测试文件:

wget "https://gist.githubusercontent.com/kairen/e0dec164fa6664f40784f303076233a5/raw/33add5a18cb7d6f18531d8d481562d017557747c/s3client"

chmod u+x s3clinet

安装执行依赖:

yum install python-pip

pip install boto

对象存储测试:

(1) 创建一个使用者

docker exec -ti rgw1 radosgw-admin user create --uid="test" --display-name="I'm Test account" --email="test@example.com"

(2) 创建环境参数配置文件

vim s3key.sh

key信息对照test用户

(3) 列出当前bucket

./s3client list

(4) 创建一个bucket并上传文件

./s3client create files

./s3client upload files s3key.sh /

./s3client list files

5.建立MDS并测试文件系统

Ceph MDS - 元数据服务器,为ceph文件系统存储元数据。

docker run -d --net=ceph-net -v ${DIR}/lib/ceph/:/var/lib/ceph/ -v ${DIR}/ceph:/etc/ceph -e CEPHFS_CREATE=1 --name=mds1 ceph/daemon mds

查看部署情况:

docker exec -ti mds1 ceph mds stat

docker exec -ti mds1 ceph fs ls

6.建立MGR

Ceph MGR - 集群管理组件

docker run -d --net=ceph-net -v ${DIR}/ceph:/etc/ceph -v ${DIR}/lib/ceph/:/var/lib/ceph/ --name=mgr1 ceph/daemon mgr

docker ps

docker exec -it mon1 ceph -s

总结

以上,Ceph集群容器化部署完成。

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 一文教会你在Docker容器中实现Mysql主从复制

    一文教会你在Docker容器中实现Mysql主从复制

    MySQL的主从复制之前也没做过,刚百度了下发现并不算难,所以下面这篇文章主要给大家介绍了关于在Docker容器中实现Mysql主从复制的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Docker如何修改容器已经映射的端口

    Docker如何修改容器已经映射的端口

    在项目中我们一般通过命令启动一个容器的时候,通常会通过命令指定容器与物理机网络端口的映射,这篇文章主要给大家介绍了关于Docker如何修改容器已经映射的端口的相关资料,需要的朋友可以参考下
    2023-12-12
  • Docker学习笔记之容器查看启动终止删除的方法

    Docker学习笔记之容器查看启动终止删除的方法

    本篇文章主要Docker学习笔记之容器查看启动终止删除的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 利用Docker搭建本地https环境的完整步骤

    利用Docker搭建本地https环境的完整步骤

    这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2018-04-04
  • Docker中部署flink集群的两种方式

    Docker中部署flink集群的两种方式

    这篇文章主要介绍了Docker中部署flink集群的两种方式,本文将通过 2 种方式在 docker 中部署 flink standalone 集群,集群中共有 4 个节点,分别是 1 个 jobManager 节点和 3 个 taskManager 节点,需要的朋友可以参考下
    2024-02-02
  • docker mysql镜像因为配置文件出现错误一直提示重启的解决

    docker mysql镜像因为配置文件出现错误一直提示重启的解决

    这篇文章主要介绍了docker mysql镜像因为配置文件出现错误一直提示重启的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 解决docker安装后运行hello-world报错的问题

    解决docker安装后运行hello-world报错的问题

    这篇文章主要介绍了解决docker安装后运行hello-world报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 使用Docker+Nginx部署vue项目详细图文教程

    使用Docker+Nginx部署vue项目详细图文教程

    这篇文章主要给大家介绍了关于使用Docker+Nginx部署vue项目的相关资料,文中通过图文介绍的非常详细,对大家学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • 简述Docker 安装influxDB分布式时间序列数据库及相关操作

    简述Docker 安装influxDB分布式时间序列数据库及相关操作

    influxDB是一个分布式时间序列数据库。这篇文章主要介绍了Docker 安装influxDB分布式时间序列数据库及相关操作,需要的朋友可以参考下
    2019-10-10
  • Docker中部署mysql服务的方法及遇到的坑

    Docker中部署mysql服务的方法及遇到的坑

    这篇文章主要介绍了Docker中部署mysql服务的方法及遇到的坑,本文是小编细心给大家收藏整理下来的,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11

最新评论