没有合适的资源?快使用搜索试试~ 我知道了~
前言 由于公司业务需要,我们打算自己搭建 MongoDB 的服务,因为 MongoDB 的云数据库好贵,我们这次采用副本集的方式来搭建集群,三台服务器,一主、一副、一仲裁 基本概念 Replica Set 副本集:一个副本集就是一组 MongoDB 实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成 主节点(master):主节点接收所有写入操作。主节点将对其数据集所做的所有更改记录到其 oplog。 副节点(secondary):复制主节点的 oplog 并将操作应用到其数据集,如果主节点不可用,一个合格的副节点将被选为新的主节点。 仲
资源推荐
资源详情
资源评论
Docker 搭建集群搭建集群MongoDB的实现步骤的实现步骤
前言前言
由于公司业务需要,我们打算自己搭建 MongoDB 的服务,因为 MongoDB 的云数据库好贵,我们这次采用副本集的方式来搭
建集群,三台服务器,一主、一副、一仲裁
基本概念基本概念
Replica Set 副本集:一个副本集就是一组 MongoDB 实例组成的集群,由一个主(Primary)服务器和多个备份
(Secondary)服务器构成
主节点(master):主节点接收所有写入操作。主节点将对其数据集所做的所有更改记录到其 oplog。
副节点(secondary):复制主节点的 oplog 并将操作应用到其数据集,如果主节点不可用,一个合格的副节点将被选为新的
主节点。
仲裁节点(arbiter):负载选举,当主节点不可用,它将从副节点中选一个作为主节点。
Sharding 分片:
Master-slave 主备
MongoDB 4.0 以上版本运行时提示:[main] Master/slave replication is no longer supported,也就是 MongoDB 4.0 后不在支
持主从复制
一、环境准备一、环境准备
使用 CentOS 7.6 64bit 系统,安装 Docker、Docker-compose、Docker-Swarm
二、生成二、生成 KeyFile
MongoDB 使用 KeyFile 认证,副本集中的每个 MongoDB 实例使用 KeyFile 内容作为认证其他成员的共享密码。MongoDB
实例只有拥有正确的 KeyFile 才可以加入副本集。
keyFile 的内容必须是 6 到 1024 个字符的长度,且副本集所有成员的 KeyFile 内容必须相同。
有一点要注意是的:在 UNIX 系统中,KeyFile 必须没有组权限或完全权限(也就是权限要设置成 X00 的形式)。Windows
系统中,keyFile 权限没有被检查。
可以使用任意方法生成 keyFile。例如,如下操作使用 openssl 生成复杂的随机的 1024 个字符串。然后使用 chmod 修改文件
权限,只给文件拥有者提供读权限。
这是 MongoDB 官方推荐 keyFile 的生成方式:
# 400权限是要保证安全性,否则mongod启动会报错
openssl rand -base64 756 > mongodb.key
chmod 400 mongodb.key
二、创建跨主机网络二、创建跨主机网络
搭建集群我们肯定是跨主机通讯,要搭建 Overlay Network 网络,我们就要用到 Docker Swarm 这个工具了。Docker Swarm
是 Docker 内置的集群工具,它能够帮助我们更轻松地将服务部署到 Docker daemon 的集群之中。
既然要将 Docker 加入到集群,我们就必须先有一个集群,我们在任意一个 Docker 实例上都可以通过 docker swarm init 来初
始化集群。
$ sudo docker swarm init
Swarm initialized: current node (t4ydh2o5mwp5io2netepcauyl) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-4dvxvx4n7magy5zh0g0de0xoues9azekw308jlv6hlvqwpriwy-
cb43z26n5jbadk024tx0cqz5r 192.168.1.5:2377
在集群初始化后,这个 Docker 实例就自动成为了集群的管理节点,而其他 Docker 实例可以通过运行这里所打印的 docker
swarm join 命令来加入集群。
加入到集群的节点默认为普通节点,如果要以管理节点的身份加入到集群中,我们可以通过 docker swarm join-token 命令来
获得管理节点的加入命令。
$ sudo docker swarm join-token manager
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-60am9y6axwot0angn1e5inxrpzrj5d6aa91gx72f8et94wztm1-
7lz0dth35wywekjd1qn30jtes 192.168.1.5:2377
我们通过这些命令来建立用于我们服务开发的 Docker 集群,并将相关开发同事的 Docker 加入到这个集群里,就完成了搭建
跨主机网络的第一步。
建立跨主机网络建立跨主机网络
接下来,我们就通过 docker network create 命令来建立 Overlay 网络。
$ sudo docker network create --driver overlay --attachable mongodbs
在创建 Overlay 网络时,我们要加入 –attachable 选项以便不同机器上的 Docker 容器能够正常使用到它。
在创建了这个网络之后,我们可以在任何一个加入到集群的 Docker 实例上使用 docker network ls 查看一下其下的网络列表。
我们会发现这个网络定义已经同步到了所有集群中的节点上。
$ sudo docker network ls
NETWORK ID NAME DRIVER SCOPE
## ......
y89bt74ld9l8 mongodbs overlay swarm
## ......
接下来我们要修改 Docker Compose 的定义,让它使用这个我们已经定义好的网络,而不是再重新创建网络。
剩余6页未读,继续阅读
资源评论
weixin_38529397
- 粉丝: 5
- 资源: 938
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功