基于Docker UI 配置ceph集群

前言

前一篇介绍了docker在命令行下面进行的ceph部署,本篇用docker的UI进行ceph的部署,目前来说市面上还没有一款能够比较简单就能直接在OS上面去部署Ceph的管理平台,这是因为OS的环境差异化太大,并且包的版本,以及各种软件的适配都可能造成失败,而docker比较固化环境,因此即使一个通用的UI也能很方便的部署出一个Cpeh集群

本篇就是对Docker UI部署集群做一个实践,对ceph了解,对docker了解,对dokcer的UI操作进行一定的了解的情况下,再做实践会比较好,总体上还是比较简单的

安装并运行portainer

安装软件

cd /opt
wget https://github.com/portainer/portainer/releases/download/1.12.1/portainer-1.12.1-linux-amd64.tar.gz
tar xvpfz portainer-1.12.1-linux-amd64.tar.gzcd portainer

运行软件

./portainer -H unix:///var/run/docker.sock  -p ":9999"

注意下这里-H是指定的docker的连接,也就是要控制哪个docker,这个支持本地的sock的方式,也支持远程的tcp的方式,这个进入ui界面后还可以添加更多的 -p是指定的访问的接口

扩展知识

如何在centos7下面启用 remote api 打开文件

/usr/lib/systemd/system/docker.service

$INSECURE_REGISTRY 后面添加 -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock

ExecStart=/usr/bin/dockerd-current \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \          $OPTIONS \          $DOCKER_STORAGE_OPTIONS \          $DOCKER_NETWORK_OPTIONS \          $ADD_REGISTRY \          $BLOCK_REGISTRY \          $INSECURE_REGISTRY  -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock

修改好了后

[root@lab8106 ~]#systemctl daemon-reload
[root@lab8106 ~]#systemctl restart docker

检查端口和asok

[root@lab8106 ~]# netstat -tunlp|grep 2376tcp6       0      0 :::2376                 :::*                    LISTEN      24484/dockerd-curre 
[root@lab8106 ~]# ll /var/run/docker.socksrw-rw---- 1 root root 0 Mar 16 16:39 /var/run/docker.sock

生成了配置没有问题

portainer的自身数据

默认情况下portainer的数据是存储在/data目录下面的,如果想重新配置密码或者内容的话,删除这个目录里面的数据就行

[root@lab8106 ~]# ll /data/total 24-rw------- 1 root root 32768 Mar 16 16:32 portainer.db
drwx------ 2 root root     6 Mar 16 16:32 tls

UI界面登陆

直接访问宿主机的http://ip:9999

输入一个8位数的密码 输入好了以后,登陆即可

检查endpoint,可以看到就是我刚才命令行当中加入的sock

获取image

在上面填写ceph/daemon 然后点击pull

有可能会超时,如果多次失败,就去后台命令行执行,这个地方等同于后台的命令

docker pull ceph/daemon

也可以直接在后台执行这个命令 可以用dstat -n观察下载的速度

下载好了去页面上看下是否好了

配置CEPH集群

配置集群可以都在页面做了,因为之前有篇命令行部署docker的ceph,建议先回顾一下,再看这个比较好

创建MON

点击增加容器

注意创建好两个目录

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

这两个目录里面不要有任何东西,保持空目录状态

  • 填写名称为mon,这个是容器名称,可以自定义
  • 填写Image,这个填写下载好的ceph/daemon
  • 填写command,这个填写mon,为固定值
  • 填写Entry Ponit ,这个填写/entrypoint.sh,为固定值
  • 填写Environment variable,这个填写两个变量
    • MON_IP 192.168.8.106
    • CEPH_PUBLIC_NETWORK 192.168.0.0/16

填写完了切换第二个标签页Volumes

  • 填写Volume
    • /etc/ceph /etc/ceph
    • /var/lib/ceph/ /var/lib/ceph/
  • 填写Network为host
  • 填写hostname为宿主机的主机名 上面都填写完了后就点击create

没出异常的话,就可以进入console进行查询了

点击connect

没有问题

创建OSD

点击增加容器

  • 填写Name,这个为容器名称,可以自定义
  • 填写Image,这个为ceph/daemon,固定的值
  • 填写command,这个为osd_ceph_disk,为定值
  • 填写Entry Ponit ,这个填写/entrypoint.sh,为固定值
  • 填写Environment variable,这个填写一个OSD磁盘变量
    • OSD_DEVICE /dev/sdb

切换到第二个Volume标签页

  • 填写Volume
    • /etc/ceph /etc/ceph
    • /var/lib/ceph/ /var/lib/ceph/
    • /dev/ /dev/

切换到Network标签页

  • 填写Network为host
  • 填写hostname为宿主机的主机名 上面都填写完了后就点击create

切换到Security/Host标签页 勾选上 privileged,一定要选上,不然没有权限去格式化磁盘

上面都填写完了后就点击create 没出异常的话,就可以进入console进行查询了

基本上一个简单的集群就配置好了,跨主机的情况,就提前把配置文件拷贝到另外一台主机,还有bootstrap keyring也拷贝过去,就可以了,这里就不做过多的赘述

总结

本篇基于portainer以及一个现有的ceph容器做的部署实践,从整个操作来说,UI的部署,环境的搭建都非常的简单,这个得益于UI环境的简单,还有docker的封装,更多的玩法可以自己去探索,也可以运用这个UI做更多其他的容器操作

原文发布于微信公众号 - 磨磨谈(momotan1987)

原文发表时间:2017-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏calvin

通过 pxe(网络安装)完成centos 系统的网络安装

首先交代环境。本地2台主机,一台windows主机,一台等待安装centos的主机。2台主机在同一个局域网。通过路由器自动获取ip上网。 网上大多数pxe安装...

36610
来自专栏一个会写诗的程序员的博客

Android连接 Mysql: 解决mysql-connector-java驱动编译时Dex cannot parse version 52 byte code...等错误

做一个简单的数据库应用,打算直接把客户端和数据库连接起来,省去用java或者php去写后端接口程序。因此想到了在Android端用mysql-connector...

16430
来自专栏蓝天

ZooKeeper-3.4.6分布式安装指南

介绍ZooKeeper-3.4.6版本的分布式安装,力求细致,提供精确的安装指导。本文的安装环境是64位的SuSE 10.1 Linux,也适用于ZooKe...

16410
来自专栏Jed的技术阶梯

Redis 3.x 单节点和伪分布式安装

安装的时候指定端口号和命令执行路径,其余保持默认即可,这里演示另一个服务的安装并省略部分重复内容

15730
来自专栏java达人

EasyUI 创建 CRUD 应用

数据收集并妥善管理数据是网络应用共同的必要。CRUD 允许我们生成页面列表,并编辑数据库记录。本教程将向你演示如何使用 jQuery EasyUI 框架实现一个...

25570
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Keepalived和浮动IP设置高可用性HAProxy服务器

高可用性是系统设计的一个功能,允许应用程序在发生故障时自动重启或重新路由工作到另一个有能力的系统。在服务器方面,建立高可用性系统需要一些不同的技术。必须有一个可...

38830
来自专栏张戈的专栏

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

最新更新:张戈博客已推出功能更强大的轻量级 CC 攻击防御脚本工具 CCKiller==>传送门 前天没事写了一个防 CC 攻击的 Shell 脚本,没想到这么...

83450
来自专栏平凡文摘

Tomcat 的 Server 文件配置详解!

24340
来自专栏散尽浮华

完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务。 以下对openstack的...

3K110
来自专栏哎_小羊

记录Gerrit2.8.4环境迁移、安装、配置以及问题解决

前段时间,由于公司内部调整,需要将原gerrit系统中部分业务拆分迁移到新gerrit系统中,这里我就将整个环境迁移、环境搭建、环境配置、版本选择等做一下记录,...

56290

扫码关注云+社区

领取腾讯云代金券