您的当前位置:首页正文

docker-单机启动ceph集群(macOS)

2024-11-30 来源:个人技术集锦

pull镜像

前提先安装好docker
本次实验环境为:操作系统macos docker版本

docker pull ceph/osd
docker pull ceph/mon

1.创建Ceph专用网络

sudo docker network create --driver bridge --subnet 172.20.0.0/16 ceph-network

2.创建相关文件及更改文件权限

sudo mkdir -p /etc/ceph /var/lib/ceph/ /var/log/ceph/

sudo chmod -R 777 /etc/ceph /var/lib/ceph/ /var/log/ceph/

3.启动mon节点

docker run -itd --name mymon --network ceph-network --ip 172.20.0.10 -e MON_NAME=mymon -e MON_IP=172.20.0.10 -v /etc/ceph:/etc/ceph ceph/mon

添加配置vim /etc/ceph/ceph.conf
在文件末尾添加:

osd journal size = 100
osd pool default pg num = 8
osd pool default pgp num = 8
osd pool default size = 2
osd pool default min size =1
osd max object name len = 256
osd max object namespace len = 64
public network = 172.20.0.0/24
cluster network = 172.20.0.0/24

4.启动osd

docker exec mymon ceph osd create

docker run -itd --name osd0 --network ceph-network -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -e MON_IP=172.20.0.10 -v /etc/ceph:/etc/ceph -v /var/lib/ceph/osd/0:/var/lib/ceph/osd/ceph-0 ceph/osd

如果出现这个问题:

查看集群状态

docker exec -it mymon ceph -s

再起两个osd

docker exec mymon ceph osd create

docker run -itd --name osd1 --network ceph-network -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -e MON_IP=172.20.0.10 -v /etc/ceph:/etc/ceph -v /var/lib/ceph/osd/1:/var/lib/ceph/osd/ceph-1 ceph/osd
docker exec mymon ceph osd create

docker run -itd --name osd2 --network ceph-network -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=mymon -e MON_IP=172.20.0.10 -v /etc/ceph:/etc/ceph -v /var/lib/ceph/osd/2:/var/lib/ceph/osd/ceph-2 ceph/osd

查看集群状态:

docker exec -it mymon ceph -s

再起两个mon

docker run -itd --name mymon_1 --network ceph-network --ip 172.20.0.11 -e MON_NAME=mymon_1 -e MON_IP=172.20.0.11 -v /etc/ceph:/etc/ceph ceph/mon
 
docker run -itd --name mymon_2 --network ceph-network --ip 172.20.0.12 -e MON_NAME=mymon_2 -e MON_IP=172.20.0.12 -v /etc/ceph:/etc/ceph ceph/mon

集群状态:
docker exec -it mymon ceph -s

创建网关节点:

docker run -itd --name myrgw --network ceph-network --ip 172.20.0.5 -p 9080:80 -e RGW_NAME=myrgw -v /etc/ceph:/etc/ceph ceph/radosgw

集群状态:

docker exec -it mymon ceph -s

docker exec mymon ceph osd tree

测试添加rgw用户

sudo docker exec myrgw radosgw-admin user create --uid="test" --display-name="test user"

打印输出:

查看docker的节点:

docker ps

个人技术集锦还为您提供以下相关内容希望对您有帮助:

Ceph学习笔记(7):非docker方式离线安装

首先,配置一台外网访问能力的虚拟机,推荐使用 CentOS 7.9,并从官方下载所需版本的 Ceph RPM 包。在虚拟机中安装完成后,接下来的关键步骤包括创建仓库目录、打包 RPM 包以及在目标 Linux 环境中进行离线安装。采用 Ceph 版本 15.1.0 为例,执行以下操作:使用 `createrepo` 命令构建仓库目录,确...

Docker入门三:使用Mount Cache加速CI

如将使用K8S的管理的Jenkins集群,可以创建PV,并将其挂载至CI容器依赖缓存的目录。使用Docker的Volume关联NFS,然后挂载至CI容器的依赖缓存目录等。后两种方案其实是在第一种方案上叠buff,方便外挂文件系统的分发或管理。归根结底,还是利用容器中可以外挂文件或目录的特性实现。三、解决方案说明(以Docker...

什么是K8S?

攻击docker remote api(Docker daemon公网暴露) 2375是docker远程操控的默认端口,通过这个端口可以直接对远程的docker 守护进程进行操作。Docker 守护进程默认监听2375端口且未鉴权. 当机器以方式启动daemon时,可以在外部机器对该机器的docker daemon进行直接操作: docker daemon -H=0.0.0.0:2375 之后依次执行systemctl dae...

云计算需要学什么课程

模块2、分布式协调服务Zookeeper集群实战 模块3、消息队列kafka分布式集群 模块4、大数据hadoop集群,老男孩独有课程 阶段六、虚拟化、云服务与docker容器\k8s服务 模块1、KVM虚拟化技术服务与实战 模块2、openstack云计算服务 模块3、Kubernetes分布式容器编排工具 模块4、分布式Ceph集群架构与企业级生产案例 模...

kubernetes常见故障

3. 集群DNS服务器无法通过上游DNS解析外部名称 4. 节点假死,但是持有的Ceph RBD的Watcher不释放,导致有状态服务的Pod调度走后仍然无法启动 5. 误删Etcd数据、持久卷 有四个有用的命令可以对Pod进行故障排除: kubectl logs 有助于检索Pod容器的日志 kubectl describe pod 检索与Pod相关的事件列表很有用 kubectl get...

云计算需要学习哪些课程?

1.云计算学习主要内容有:2.①网络基础与linux系统的管理;3.②优化及高可用技能;4.③虚拟化与云平台技术;

黑马程序员Linux运维培训怎么样?

distributed-replica模式、dispersed模式、distributed-dispersed模式)、其它卷类型、glusterfs分部署存储应用实战; 认识Ceph、Ceph架构原理图、Ceph集群、Ceph集群组件、Ceph集群环境准备、Ceph集群部署实践、RADOS原生数据存取、Ceph文件存储、Ceph块存储、Ceph对象存储、Ceph对象存储+owncloud打造云盘系统、Ceph Dashboard(拓展)...

linux云计算运维工程师培训内容

总结Linux云计算架构师培训内容共包含以下5个阶段阶段一,最新的CentOS8和7操作系统管理精讲。阶段二,Linux运维必会的20多种服务阶段三,Linux高级运维架构:渗透、集群、存储、调优。阶段四,Linux前沿技术:KVM、阿里云、Openstack、Docker、k8s云平台、DevOps。阶段五,Python自动化运维。

云计算需要学什么课程

云计算需要学的课程如下:1、云计算首先需要的是学习它的系统基础。主要包括了Linux系统管理、数据库管理、KVM管理和云计算环境的建立。2、其次需要学习Linux网络管理、数据库同步、hKVM迁移与远程管理、云计算计算与镜像管理。3、最后需要学习数据库集群、KVM虚拟机嵌入、云计算存储管理以及Docker实战和云...

请教kubernetes部署问题,pod一直处于pending状态

允许Developers定义secrets对象,并在pod启动时关联到相关容器。 以secret为例,如果kubelet要去pull私有镜像,那么Kubernetes支持以下方式: 通过dockerlogin生成.dockercfg文件,进行全局授权。 通过在每个namespace上创建用户的secret对象,在创建Pod时指定imagePullSecrets属性(也可以统一设置在serviceAcouunt上),进行授权。 认证...

显示全文

猜你还关注