一.Mongodb在rancher上面部署:
命令如图:mongod --keyFile /data/key/keyfile --replSet rs --bind_ip localhost,prod
二.Mongodb在服务器上的配置keyfile
这个keyfile怎么生成的我也没试过,官网有一些解释但是没说具体怎么生成如图:
我们需要把这个文件放在:
记得修改文件权限:
chown -R 999 key/ && cd key/ && chmod 400 keyfile
这样容器就能正常启动,这里我们要装3个mongodb:prod,master,slave,基本配置一样,日志映射要改一下名字别用一样的地址,还有上面说的启动命令要换成自己的服务名
这些添加好就可以互相添加服务了如图:
其实就是各个容器是不互相影响的,如何让他们在互通就需要互相添加你要用的服务
这个名称如果不配置就用默认的,看你要不要配置
Prod:
master:
Slave:
现在要去prod容器执行命令如下图一步一步执行,上面是设置账户认证,init设置初始化,下面是设置3台服务器权重1代表权重主,0代表权重比1低:
## mongodb
``` sql
mongo
use admin
db.auth('root','d6053c0221df11e8b4670ed5f89f718b')
rs.initiate({_id:"rs", members:[{_id:0,host:"prod:27017"},{_id:1,host:"master:27017"},{_id:2,host:"slave:27017"}]})
rs.status()
config=rs.conf()
config.members[0].priority = 1
config.members[1].priority = 0
config.members[2].priority = 0
rs.reconfig(config)
```
Master:
## mongodb
``` sql
mongo
use admin
db.auth('root','d6053c0221df11e8b4670ed5f89f718b')
db.getMongo().setSlaveOk();
```
Slave:
## mongodb
``` sql
mongo
use admin
db.auth('root','d6053c0221df11e8b4670ed5f89f718b')
db.getMongo().setSlaveOk();
```
三.Mongodb集群测试是否成功:
参考文献:https://www.yiibai.com/mongodb/mongodb_quick_guide.html
- show dbs查询所有库
- user 库名
- db.createCollection("mycollection")创建一个集合
- show collections 查询集合名
- db.mycollection.insert({"name" : "abc"}) 插入数据
-
db.COLLECTION_NAME.find() 查询集合里面所有参数
你这些命令你用在master和slave你会发现是查询不到
Mongodb除了主是可读可写的,其他只能查看该节点的情况不可改写
就已经说明你成功了,其实之前配置有个查看状态的命令也可以看出来有没有成功
rs.status()
四.Mongodb管理界面mongo-express搭建
成功日志:
五.Mongodb整合对外端口搭建haproxy
-
先看rancher配置
上面服务配置的是管理界面端口,下面配置的是mongodb对外端口
2.配置haproxy.cfg的文件,记得要修改成你自己的服务名。
放在服務器位置: