一、自我介绍
我是计算机科学与技术大四学生,临近毕业,毕设使用到MongoDB,而电脑配置太低使用虚拟机的使用会卡死,因此转用云服务器,在服务器里使用docker来完成MongoDB集群的部署,所以就顺势了解了阿里云的飞天加速高校学生计划。目前感觉使用效果不错。
二、部署过程
1、Docker安装
安装curl
sudo apt install crul
安装docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
查看是否安装成功
docker version
2、使用Docker拉取MongoDB镜像
拉取mongo镜像
sudo docker pull mongo:3.6
将当前用户添加进docker组中
# 添加当前用户到docker group中
sudo gpasswd -a ${USER} docker
# 重启docke生效
sudo service docker restart
# 切换会话,避免使用缓存的组信息
newgrp - docker
3、搭建mongo分布式
准备好集群ip
rs_shardsvr1的三个容器的静态ip地址:
172.18.0.5、172.18.0.6、172.18.0.7
rs_shardsvr2的三个容器的静态ip地址:
172.18.0.8、172.18.0.9、172.18.0.10
rs_shardsvr3的三个容器的静态ip地址:
172.18.0.11、172.18.0.12、172.18.0.13
rs_configsvr的三个容器的静态ip地址:
172.18.0.2、172.18.0.3、172.18.0.4
mongos容器的静态ip地址
172.18.0.14
安装mongodb-clients
sudo apt install mongodb-clients
将mongodb的shard全部装到docker的container中
此处一shard10为例
docker run -v /mnt/mongo/data/shard10/:/data/db/ \
-v /mnt/mongo/log/shard10/:/data/configdb/ \
--network mongo_cluster_net --ip 172.18.0.5 \
--name shard10 -d mongo:3.6 mongod --shardsvr --replSet
"rs_shardsvr1" \
--logpath=/data/configdb/rs_shardsvr1.log --bind_ip_all
配置Config Server
docker run -v /mnt/mongo/data/cfgsvr1/:/data/db/ \
--network mongo_cluster_net --ip 172.18.0.2 \
--name confsvr1 -d mongo:3.6 \
--configsvr --dbpath /data/db --replSet "rs_configsvr" --
bind_ip_all
配置Shard的Replica
# Shard Server 默认的端口为27018
mongo 172.18.0.5:27018
config = {
_id : "rs_shardsvr1",
members: [
{ _id : 0, host : "172.18.0.5:27018" },
{ _id : 1, host : "172.18.0.6:27018", arbiterOnly :
true},
{ _id : 2, host : "172.18.0.7:27018" }
]
}
rs.initiate(config)
其他几个shard也是如此配置,剩下的config的配置以及mongos的配置下回再更新
三、使用体验
目前使用ECS两周了,最大的感觉就是使用熟练了之后很方便。再希望通过飞天计划申请两个月免费的服务器,等毕设中期之后,再考虑申请一个自己的ECS服务器。
关于在此集群搭建进行期间,最重要的是,自己对docker虚拟化技术有了更深入的了解,都得到了运用,加深了对此的印象,收获满满。感谢阿里云!
另外,由衷的感慨,阿里云真好,让更多的学生接触到服务器。感谢!