centos7下安装docker(24docker swarm 数据管理)
service的容器副本会scal up/down,会failover,会在不同的主机上创建和销毁,这就引出一个问题,如果service有数据,那么这些数据该如何存放呢?
1.打包在容器中:
显然不行。除非数据不会发生变化,否则,如何在多个副本中保持数据同步呢?
2.数据存放在dcoker host目录中,但是这样的话,无法同步到其他主机的容器上
3.利用docker 的volume driver,由外部storage provider管理和提供volume,所有docker 主机volume将挂载到各个副本
这是目前最佳方案,volume不依赖docker主机和容器,生命周期由storage provider管理,volume的高可用和数据有效性也全由provider管理,docker直管使用。
Rex-Ray
Rex-Ray是开源的容器存储管理解决方案。支持主流的容器编排引擎docker swarm,kubernetes和mesos,为容器集群提供自动化的存储编排能力
之前我们也在跨主机存储时学习过:

1.swarm中的所有node都安装部署Rex-Ray
2.Rex-Ray使用VirtualBox backend
注:由于没有virtualbox backend,所以本实验就不做了,具体步骤如下:
1.创建httpd服务,并使用Rex-Ray data volume
2.修改volume中的数据,并验证更新同步到所有副本。
3.验证failover发生时,更新的数据不会丢失
创建service
docker service create --name web-data --pulish 8080:80 --mount “type=volume,volume-driver=rexray,source=web-data,target=/usr/local/apache2/htdocs” httpd
1.--mount指定数据卷的volume-driver为rexray
2.source指定数据卷的名字为web-data,如果不存在,则会新建
3.target指定数据卷mount到每个副本容器的/usr/local/apache2/htdocs,即存放静态页面的目录

验证failover时,数据是不是会丢失?
scale up 增加一个副本
docker service update --replicas 2 web-data
我们先来猜测一下,理想的结果应该是:swarm在启动副本的时候,新的副本被同样的挂到volume web-data上了
但是结果是失败的!!1
原因是:以virtualbox为backend的rex-ray volume不支持同时attach到多个host
注:这个时virtualbox本身的问题,而不是rex-ray。如果backend选择Ceph RBD就没有这个问题
更新volume
更新volume的内容

Failover
模拟故障情况,shutdown节点swarm-worker1,过一会,所有副本都会迁移到swarm-worker2
访问service,所有的内容都保存了下来

Rex-Ray作为swarm的存储编排方案能够很好的支持跨主机volume管理,而且当容器在集群中迁移的时候volume能够自动迁移
centos7下安装docker(24docker swarm 数据管理)的更多相关文章
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- CentOS7下安装docker(Docker系列1)
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...
- centos7下安装docker与镜像加速
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...
- centos7 下安装docker报错:You could try using...
搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...
- centos7下安装docker(21docker swarm集群创建)
创建swarm集群: 实验环境:盗图 swarm-manager是manager node,swarm-worker1和swarm-worker2是worker node. 所有节点的docker版本 ...
- centos7下安装docker(20.docker swarm start)
从主机的层面来看,docker swarm管理的是docker host集群. 什么是集群? 服务器集群由一组网络上相互连接的服务器组成,他们一起协同工作. 一个集群和一堆服务器的显著区别是: 集 ...
- Linux(centos7)下安装Docker
近期公司开始推Docker技术.这个系列的文章都是基于CentOS7系统下进行讲解的. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器 ...
- Docker学习笔记1:CentOS7 下安装Docker
本文内容摘自官网:https://docs.docker.com/engine/installation/linux/centos/#/create-a-docker-group 注:本文是介绍Lin ...
- centos7下安装docker(19容器架构)
What,Why,How What:什么是容器? 说起容器大家想到的是什么? 集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...
- centos7下安装docker(14安装docker machine)
之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌 ...
随机推荐
- Thinkphp table doesn't exist
系统采用Tp3.2的改造....集群为Mysql双工模式:平时M()主要是操作写,MS操作读...今天在查询 $res =MS("user u")->join("{ ...
- laravel5.5 Syntax error or access violation: 1071 Specified key was too long
在laravel5.5执行数据迁移时 php artisan migrate 先说下系统环境: ubutun Ubuntu 16.04.3 LTS mysql:5.6.35-log 经查自Larave ...
- 【Java每日一题】20170118
20170117问题解析请点击今日问题下方的“[Java每日一题]20170118”查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; import jav ...
- Java学习笔记之——内部类
内部类 形式:把一个类定义在一个类的内部. 分为:成员内部类和匿名内部类重点掌握 a) 成员内部类 b) 静态成员内部类 c) 匿名内部类 d) 局部内部类 (1)成员内部类: Java的语言是面向对 ...
- .Net Mvc 异步编程
关于在mvc/webapi 中 async/await 异步编程的探究和整理 你可以用双手玩转多个球 查看调试器windbg和sos.dll调试器扩展或挖掘W3SVC日志 设置minWorkerThr ...
- PS换脸操作
1,使用套索工具抠出人的五官. 2,Ctrl+C复制黏贴到另一张头像中,调节透明度50%,与需要换脸的头像的眼睛,嘴巴,鼻子重合,透明度回归100%. 3,为了不该变原图,需要新建一张原图. 4,在抠 ...
- 事件处理程序 (DOM0级)
DOM0事件处理程序 每个元素都有自己的事件处理程序属性,那么直接获取对象,然后在对象上设置事件处理程序属性. 1:获取节点对象引用 2:在事件成员上设置处理函数,这时函数内部this指向节点对象. ...
- SpringBoot设置文件上传大小限制--默认为1M
SpringBoot默认上传文件大小不能超过1MB,超过之后会报以下异常:org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeL ...
- springboot 学习之路 4(日志输出)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- MSSQL coalesce系统函数简介
转自:http://www.maomao365.com/?p=4390 一.coalesce函数简介 coalesce 系统函数,比ISNULL更强大,更方便的系统函数,coalesce可以接收多个参 ...