前言 kubernates 1.3出了几个新的概念,其中包括deployments,Replica Sets,并且官网称之为是the next-generation Replication Controller.由于NCE项目马上就要使用其中包括deployments以及RS这个方式来管理pod,因此有必要了解下它的优越性. 回顾老版RC概念 说RC之前先要提一个container和pod,container就是docker中的容器,pod可以理解为一个或者一组container.pod中的co…
假如我们现在有一个Pod正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景: 某次运营活动非常成功,网站访问量突然暴增 运行当前Pod的节点发生故障了,Pod不能正常提供服务了 第一种情况,可能比较好应对,一般活动之前我们会大概计算下会有多大的访问量,提前多启动几个Pod,活动结束后再把多余的Pod杀掉,虽然有点麻烦,但是应该还是能够应对这种情况的. 第二种情况,可能某天夜里收到大量报警说服务挂了,然后起来打开电脑在另外的节点上重新启动一个新的Pod,问题也很好的解决了. 如果我们都人工…
一:Replication Controller RC是kubernetes的核心概念之一.它定义了一个期望的场景即声明某种Pod的副本数量在任意时候都要符合某个预期值. 它由以下几个部分组成: 1.Pod期待的副本数(replicas) 2.用于筛选目标Pod的Label Selector 3.当Pod的副本数量小于预期数量的时候,用于创建新Pod的Pod模板. 当我们定义了一个RC并提及到kubernetes集群中以后,Master节点上的Controller Manager组件就会得到通知…
参考资料 reference:  http://mongodb.blog.51cto.com/1071559/740131  http://docs.mongodb.org/manual/tutorial/deploy-shard-cluster/#sharding-setup-shard-collection 感谢网友Mr.Sharp,他给了我很多很有用的建议. 概念梳理 Sharded cluster has the following components: shards, query r…
There are a bunch of different methods you can use to back up your MongoDB data, but if you want to avoid downtime and/or potential performance degradation, the most common advice seems to be that you should simply do all your backups on a slave. Thi…
1.读写分离 有一些第三方的工具,提供了一些可以让数据库进行读写分离的工具.我们现在是否有一个疑问,从库要是能进行查询就更好了,这样可以分担主库的大量的查询请求. 1. 先向主库中插入一条测试数据 2. 在从库进行查询等操作 当查询时报错了,说明是个从库且不能执行查询的操作3. 让从库可以读,分担主库的压力 看来我们要是执行db.getMongo().setSlaveOk(), 我们就可查询从库了. 2.故障转移 复制集比传统的Master-Slave 有改进的地方就是他可以进行故障的自动转移,…
MongoDB 支持在多个机器中通过异步复制达到故障转移和实现冗余.多机器中同一时刻只有一台是用于写操作.正是由于这个情况,为MongoDB 提供了数据一致性的保障.担当Primary 角色的机器能把读操作分发给slave. MongoDB高可用可分为两种: Master-Slave主从复制: 只需要在某一个服务器启动时加上--master参数,而另一个服务加上--slave与--source参数,即可实现同步.MongoDB的最新版本已经不再推荐此方案. Replica Sets复制集 Mon…
一.环境 要构建一个 MongoDB Sharding Cluster,需要三种角色: •Shard Server: mongod 实例,用于存储实际的数据块. •Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息. •Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一进程 数据库. 方案一: 192.168.136.14 192.168.136.15 192.168.136.…
①操作日志oplog Oplog是主节点的local数据库中的一个固定集合,按顺序记录了主节点的每一次写操作,MongoDB的复制功能是使用oplog来实现的,备份节点通过查询这个集合就可以知道需要进行哪些数据的复制了. 每个备份节点也都维护着自己的oplog,记录着每次从主节点复制数据的操作.这样每个节点都可以作为数据的同步源提供给其他成员使用. 注意几点: 1:由于是先复制数据,再写日志,因此可能会出现重复的复制操作,这个没有关系,MongoDB会处理这种情况,多次执行Oplog中同一个操作…
1.本例使用1台Linux主机,通过Docker 启动三个容器 IP地址如下: docker run -d -v `pwd`/data/master:/mongodb -p 27017:27017 docker.io/mongodb:3.6.3 /usr/sbin/init docker run -d -v `pwd`/data/slaver:/mongodb -p 27018:27017 docker.io/mongodb:3.6.3 /usr/sbin/init docker run -d…