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 数据管理)的更多相关文章

  1. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  2. CentOS7下安装docker(Docker系列1)

    CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...

  3. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  4. centos7 下安装docker报错:You could try using...

    搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...

  5. centos7下安装docker(21docker swarm集群创建)

    创建swarm集群: 实验环境:盗图 swarm-manager是manager node,swarm-worker1和swarm-worker2是worker node. 所有节点的docker版本 ...

  6. centos7下安装docker(20.docker swarm start)

      从主机的层面来看,docker swarm管理的是docker host集群. 什么是集群? 服务器集群由一组网络上相互连接的服务器组成,他们一起协同工作. 一个集群和一堆服务器的显著区别是: 集 ...

  7. Linux(centos7)下安装Docker

    近期公司开始推Docker技术.这个系列的文章都是基于CentOS7系统下进行讲解的. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器 ...

  8. Docker学习笔记1:CentOS7 下安装Docker

    本文内容摘自官网:https://docs.docker.com/engine/installation/linux/centos/#/create-a-docker-group 注:本文是介绍Lin ...

  9. centos7下安装docker(19容器架构)

    What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...

  10. centos7下安装docker(14安装docker machine)

    之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌 ...

随机推荐

  1. 【Java每日一题】20170213

    20170210问题解析请点击今日问题下方的“[Java每日一题]20170213”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; public cla ...

  2. Python 语法笔记

    1.else与while结合 while a>0: pass else: pass #当a<=0时执行 2.with语法,无需关闭文件,python自动关闭 with open('a.tx ...

  3. 清除float影响

    条件: 父元素中有子元素float的话,可能就会影响父元素的高度,从而影响布局: 解决方案: 1.直接给父元素定高: 弊端:必须知道父元素的高: 2. 父元素使用overflow属性值为hidden解 ...

  4. form表单基础知识

    form 元素是块级元素 ------------------- ------------------- ----------------------------------------------- ...

  5. mysql给root开启远程访问权限

    MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问. !!!所以必须给root修改可以远程访问的权限 1.在连接服务器后,操作mysql系统 ...

  6. 解决PHP Redis扩展无法加载的问题(zend_new_interned_string in Unknown on line 0)

    出错代码如下 PHP Warning: PHP Startup: Unable to load 最近在工作中需要使用PHP访问Redis,从https://github.com/phpredis/ph ...

  7. webpack安装

    npm install -g webpack webpack-dev-server

  8. MySQL5.7: sql script demo

    -- MyISAM Foreign Keys显示不了外键,MyISAM此为5.0 以下版本使用 InnoDB 为5.0以上版本使用 drop table IF EXISTS city; CREATE ...

  9. vue从入门到进阶:vue-router路由功能(九)

    基本使用 html: <script src="https://unpkg.com/vue/dist/vue.js"></script> <scrip ...

  10. JavaScript之Object对象常用属性与方法手册

    MDN Object参考地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Obje ...