RGW、Dashbord部署以及docker安装、基础命令
RadosGW 对象存储简介:
RadosGW 是对象存储(OSS,Object Storage Service)的一种实现方式,RADOS 网关也称为 Ceph 对象网关、RADOSGW、RGW,是一种服务,使客户端能够利用标准对象存储 API 来访问 Ceph 集群,它支持AWS S3和Swift API,rgw运行于librados之上,在ceph 0.8版本之后使用Civetweb 的 web 服务器来响应 api 请求,可以使用 nginx 或或者 apache 替代,客户端基于 http/https 协议通过 RESTful API 与 rgw 通信,而 rgw 则使用 librados 与 ceph 集群通信,rgw 客户端通 过 s3 或者 swift api 使用 rgw 用户进行身份验证,然后 rgw 网关代表用户利用 cephx 与 ceph 存储进行身份验证。 S3 由 Amazon 于 2006 年推出,全称为 Simple Storage Service,S3 定义了对象存储,是对象存 储事实上的标准,从某种意义上说,S3 就是对象存储,对象存储就是 S3,它对象存储市场的 霸主,后续的对象存储都是对 S3 的模仿.

2台mgr节点执行同样操作
完成之后,登录部署节点deploy节点
在deploy节点执行添加命令:
root@ceph-deploy:~/ceph-cluster# ceph-deploy rgw create ceph-mgr1
root@ceph-deploy:~/ceph-cluster# ceph-deploy rgw create ceph-mgr2

2台执行同样的添加操作完成后
执行ceph -s 再次查看

到mgr节点验证,发现7480端口已经生效

说明:本次测试因为内网实验,均采用默认的7480端口,可以根据自己的需要,更改端口以及443,方法是生成KEY或使用购买的KEY,前端采用Nginx或者到节点配置文件更改/etc/ceph/ceph.conf文件,这里不做阐述。
2.高可用服务器准备
这里已经准备好了2台服务器做负载高可用,并安装haproxy(过程略)
配置haproxy文件,添加如下:
[root@lb ~]# vim /etc/haproxy/haproxy.cfg

配置hosts文件,进行解析
172.16.1.96 rgw.magedu.net
完成后,测试:

3.创建用户
在ceph-deploy节点执行:
root@ceph-deploy:~/ceph-cluster# radosgw-admin user create --uid="rgwuser" --display-name="magedu rgwuser"

记录下其中生成的KEY,如果忘记记录,可以用一下命令查看:
root@ceph-deploy:~/ceph-cluster# radosgw-admin user info --uid=创建的用户

4.创建bucket
要使用bucket,首先需要安装s3cmd,并配置
s3cmd是一个通过命令行访问ceph RGW实现创建存储上传、下载以及管理数据到对象存储的命令行客户端工具
登录ceph-deploy节点执行:
root@ceph-deploy:~/ceph-cluster# apt-cache madison s3cmd
root@ceph-deploy:~/ceph-cluster# apt-cache apt install s3cmd
安装完成后,开始配置
root@ceph-deploy:~/ceph-cluster# s3cmd --configure

创建目录:
root@ceph-deploy:~/ceph-cluster# s3cmd mb s3://magedu
root@ceph-deploy:~/ceph-cluster# s3cmd ls
![]()
上传、下载文件测试:
这里准备一个wordpress包。然后执行如下:
上传:
root@ceph-deploy:~/ceph-cluster# s3cmd put /opt/wordpress-5.7.2-zh_CN.zip s3://magedu/rpm/wordpress-5.7.2-zh_CN.zip

下载:
root@ceph-deploy:~/ceph-cluster# s3cmd get s3://magedu/rpm/wordpress-5.7.2-zh_CN.zip /server

解压文件:

至此,RGW部署完成
打开浏览器,访问:http://172.16.1.164:9988

创建用户以及密码文件

完成后,登录


执行如下:
root@ceph-deploy:~# ceph dashboard create-self-signed-cert
root@ceph-deploy:~#ceph config set mgr mgr/dashboard/ssl true
访问 http://172.16.1.164:9090

2.node 节点监控安装:
上传node_exporter-1.0.1.linux-amd64.tar.gz到各节点/opt目录下:
执行如下:
root@ceph-node3:/opt# tar xzvf node_exporter-1.0.1.linux-amd64.tar.gz
root@ceph-node3:/opt# ln -sv node_exporter-1.0.1.linux-amd64 node_exporter
所有节点同样操作
同样vim一个services文件:
vim /etc/systemd/system/node_exporter.service
root@ceph-node1:/opt/node_exporter# systemctl daemon-reload
root@ceph-node1:/opt/node_exporter# systemctl restart node_exporter.service
root@ceph-node1:/opt/node_exporter# systemctl enable node_exporter.service
浏览器访问,例如:http://172.16.1.167:9100 ,查看监控情况

完成后,执行重启


验证 manager 数据:
浏览器访问 http://192.168.79.164:9283

再次更改配置文件,进行添加:
root@ceph-mgr1:/opt/prometheus# vim prometheus.yml

重启服务,并进行验证:
root@ceph-mgr1:/opt/prometheus# systemctl restart prometheus.service
浏览器访问 http://172.16.1.164:9090/

访问 https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1
按下图红框标记,在部署节点执行:

完成之后登录,端口为3000,默认用户和密码均为admin

添加数据源:


导入模板,首先进行模板选择
地址:https://grafana.com/grafana/dashboards?search=ceph



Docker的安装以及基本命令
Docker容器本质上是宿主机的进程. 可以把docker容器内部跑的进程看作 是宿主机的线程。 Docker通过namespace实现了资源隔离 ,通过cgroups实现了资源限制
NameSpace
Linux内核实现namespace的一个主要目的就是实现轻量级虚拟化(容器)服 务。在同一个namespace下的进程可以感知彼此的变化,而对外界的进程 一无所知。Linux 在很早的版本中就实现了部分的 namespace,
比如内核 2.4 就实现了 mount namespace。 大多数的namespace支持是在内核 2.6 中完成的,比如 IPC、Network、 PID、和 UTS。还有个别的namespace 比较特殊,比如User,从内核 2.6 就开始实现了,但在内核 3.8 中才宣布完成。 同时,随着 Linux 自身的发展以及容器技术持续发展带来的需求,也会有 新的 namespace 被支持,比如在内核 4.6 中就添加了Cgroup。
Control Group
控制组(CGroups)是Linux内核的一个特性,主要用来对共享资源进行隔
离、限制、审计等。
只有能控制分配到容器的资源,才能避免多个容器同时运行时对宿主机系
统的资源竞争。控制组可以提供对容器的内存、CPU、磁盘IO等资源进行限制和计费管
理。
安装docker- ce,也可以指定版本:
yum install docker-ce -y 或者 docker-ce-版本 -y
同时启动并设置开机自启:
systemctl enable docker && sudo systemctl start docker
最后查看版本等信息:
docker --version

[root@docker-singel ~]# docker info

2.Docker的使用:
镜像常见操作
查看镜像列表
通过docker images命令查看当前镜像列表; 使用man docker-images得到
参数说明:
搜索镜像:
通过docker search查找官方镜像; 使用man docker-search得到参数说明
[root@docker-singel ~]# docker images
![]()
[root@docker-singel ~]# docker search centos

发现已有镜像
配置加速器:
直接pull的话,因为拉取地址或者网速等原因,下载速度受到很大影响,因此这里配置配置一个阿里的加速地址,方法如下:
[root@docker-singel ~]# cd /etc/docker/
[root@docker-singel docker]# vim daemon.json #没有这个文件的话,直接vim或者创建一个
编辑内容如下,红色部分为你自己的阿里加速地址

然后执行:
[root@docker-singel docker]# systemctl restart docker
再拉取一个centos镜像并查看:
[root@docker-singel docker]# docker pull centos
[root@docker-singel docker]# docker images

-i:即使没有附加也保持STDIN 打开
-t:分配一个伪终端
访问验证,上面运行了一个nginx 的容器,并映射到了8081端口
浏览器访问:http://系统IP:8081

交互执行:
这里可以在运行容器的同时进入容器里操作,以centos镜像为例
[root@docker-singel docker]# docker run -it --name=centos1 centos /bin/bash

再次执行查看:
[root@docker-singel docker]# docker ps -a

发现刚才的2个容器已经UP中
exec交互执行:
对于运行中的运行,我们也可以直接执行exec进入容器,以上面运行的nginx为例
[root@docker-singel docker]# docker exec -it nginx01 bash

保存镜像:
[root@docker-singel ~]# docker save nginx -o /backup/docker-nginx.tar

停止镜像:
以上面的nginx 为例
[root@docker-singel ~]# docker stop nginx01
[root@docker-singel ~]# docker ps -a

发现nginx状态已经为Exited
删除容器:
[root@docker-singel ~]# docker rm nginx01
[root@docker-singel ~]# docker ps -a

删除镜像:
[root@docker-singel ~]# docker rmi nginx:latest
[root@docker-singel ~]# docker images

可以看到,只剩下centos镜像
镜像恢复:
进入到刚才备份的目录,执行:
[root@docker-singel backup]# docker load -i docker-nginx.tar

再次执行镜像查看:
[root@docker-singel backup]# docker images
可以看到nginx已经恢复
Docker基础命令总结
搜索镜像
docker search centos 搜索centos的Docker镜像
拉取官方最新版的镜像
docker pull centos,其中的latest是一个标签(tag),表示是当前最新版本centos
查看本地镜像
docker images
查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下,当然可以更改
根据仓库名列出镜像
docker image ls centos
删除本地的镜像
docker image rmi [选项] <镜像> <镜像> 可以是 镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要
删除容器:
docker rm 容器名或者ID
查看当前有哪些容器正在运行
docker ps
查看所有容器
docker ps -a
用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口
docker run --name webserver -d -p 8081:80 nginx
docker exec 命令进入容器
保存镜像
docker save 镜像 -o /路径/保存的名字
恢复镜像
docker load -i 之前保存的镜像名
完

浙公网安备 33010602011771号