故障是在所难免的,容器可能崩溃,Docker Host 可能宕机,不过幸运的是,Swarm 已经内置了 failover策略。
 
创建Service 的时候,我们没有告诉 swarm 发生故障时该如何处理,只是说明了我们期望的状态(比如 3 份副本),swarm会尽最大努力达成这个期望的状态,无论发生什么状况。
 
root@host03:~# docker service ps web_server
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE               ERROR               PORTS
tznw0lrn8wh8        web_server.1        httpd:latest        host01              Running             Running 28 minutes ago                          
jykct1jmfrte         \_ web_server.1    httpd:latest        host03              Shutdown            Shutdown 28 minutes ago                         
4x32c9x1hizg        web_server.2        httpd:latest        host01              Running             Running 28 minutes ago                          
n4afxlx16tny         \_ web_server.2    httpd:latest        host03              Shutdown            Shutdown 28 minutes ago                         
mlsb1ey4n65r        web_server.4        httpd:latest        host02              Running             Running about an hour ago    
 
当前 3 个副本运行在 host01(2副本) 和 host02 (1副本)上 ,现在我们测试swarm 的failover特性,host01 关机 
 
root@host03:~# docker service ps web_server    #    host01 关机前的状态
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE             ERROR               PORTS
tznw0lrn8wh8        web_server.1        httpd:latest        host01              Running             Running 12 seconds ago                        
jykct1jmfrte         \_ web_server.1    httpd:latest        host03              Shutdown            Shutdown 44 minutes ago                       
4x32c9x1hizg        web_server.2        httpd:latest        host01              Running             Running 12 seconds ago                        
n4afxlx16tny         \_ web_server.2    httpd:latest        host03              Shutdown            Shutdown 44 minutes ago                       
mlsb1ey4n65r        web_server.4        httpd:latest        host02              Running             Running 2 hours ago                           
root@host03:~# docker service ps web_server    #    swarm检测到host01 关机,开始在host02上启动新的容器
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                  ERROR               PORTS
wtipc3fngioo        web_server.1        httpd:latest        host02              Ready               Ready less than a second ago                       
tznw0lrn8wh8         \_ web_server.1    httpd:latest        host01              Shutdown            Running 13 seconds ago                             
jykct1jmfrte         \_ web_server.1    httpd:latest        host03              Shutdown            Shutdown 44 minutes ago                            
vhp70jgq49j8        web_server.2        httpd:latest        host02              Ready               Ready less than a second ago                       
4x32c9x1hizg         \_ web_server.2    httpd:latest        host01              Shutdown            Running 13 seconds ago                             
n4afxlx16tny         \_ web_server.2    httpd:latest        host03              Shutdown            Shutdown 44 minutes ago                            
mlsb1ey4n65r        web_server.4        httpd:latest        host02              Running             Running 2 hours ago                                
root@host03:~# docker service ps web_server    #    故障转移完毕,3个副本都运行在了host02 上
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE             ERROR               PORTS
wtipc3fngioo        web_server.1        httpd:latest        host02              Running             Running 5 seconds ago                         
tznw0lrn8wh8         \_ web_server.1    httpd:latest        host01              Shutdown            Running 24 seconds ago                        
jykct1jmfrte         \_ web_server.1    httpd:latest        host03              Shutdown            Shutdown 44 minutes ago                       
vhp70jgq49j8        web_server.2        httpd:latest        host02              Running             Running 5 seconds ago                         
4x32c9x1hizg         \_ web_server.2    httpd:latest        host01              Shutdown            Running 24 seconds ago                        
n4afxlx16tny         \_ web_server.2    httpd:latest        host03              Shutdown            Shutdown 44 minutes ago                       
mlsb1ey4n65r        web_server.4        httpd:latest        host02              Running             Running 2 hours ago                           
root@host03:~# docker node ls    #    host01 已被标记为 Down
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
hvt2ez9e7zvqm2hz8nix1eke7     host01              Down                Active                                  18.09.6
asn5ufnogzkyqigk4mizatoer     host02              Ready               Active                                  18.09.6
h6rzavsz2vjxstwj3pytiebjb *   host03              Ready               Drain               Leader              18.09.6
 
 

098、Swarm 如何实现 Failover (Swarm05)的更多相关文章

  1. Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)

    故障是在所难免的,容器可能崩溃,Docker Host 可能宕机,不过幸运的是,Swarm 已经内置了 failover 策略. 创建 service 的时候,我们没有告诉 swarm 发生故障时该如 ...

  2. failover swarm 故障转移

    #故障转移 Failover #当其中一个节点关闭宕机时,其节点中的service会转移到另一个节点上.Swarm会检测到node1发生故障并把此故障节点的状态标记为Down; docker node ...

  3. Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)

    service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢? 选项一 ...

  4. 验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)

    上一节我们成功将 Rex-Ray Volume 挂载到了 Service.本节验证 Failover 时,数据不会丢失. Scale Up 增加一个副本: docker service update ...

  5. centos7下安装docker(24docker swarm 数据管理)

    service的容器副本会scal up/down,会failover,会在不同的主机上创建和销毁,这就引出一个问题,如果service有数据,那么这些数据该如何存放呢? 1.打包在容器中: 显然不行 ...

  6. Docker Swarm 集群(十七)

    目录 一.Docker Swarm 概念 1.集群 2.Docker Swarm 3.重要概念 swarm node service 二.创建 Swarm 集群 1.环境准备 2.创建 swarm 3 ...

  7. 104、验证Swarm数据持久性 (Swarm11)

    参考https://www.cnblogs.com/CloudMan6/p/8016994.html   上一节我们成功将 nfs 的volume挂载到 Service上,本节验证 Failover时 ...

  8. 103、Swarm如何管理存储数据?(Swarm10)

    参考https://www.cnblogs.com/CloudMan6/p/8000906.html   Service 的容器副本会 scale up/down ,会 failover,会在不同的主 ...

  9. 利用XAG在RAC环境下实现GoldenGate自动Failover

    概述 在RAC环境下配置OGG,要想实现RAC节点故障时,OGG能自动的failover到正常节点,要保证两点: 1. OGG的checkpoint,trail,BR文件放置在共享的集群文件系统上,R ...

随机推荐

  1. 【Azure】用“Azure Storage Exlporer”进行磁盘拷贝

    zure Storage Explorer工具的下载 Azure 存储客户端工具 https://docs.azure.cn/zh-cn/storage/storage-explorers Azure ...

  2. Ubuntu16.04使用apt安装完nginx常见问题

    1.安装完并remove掉后重新install后没nginx.conf文件 解决办法: apt-get -y --purge remove nginx* apt-get -y autoremove a ...

  3. mysql从zip包安装小记

    @echo offtitle mysql zip安装set PATH="%CD%\bin";%PATH%if not exist .\data mkdir datarem mysq ...

  4. linux网络管理命令"ip"用法

    Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.  ip help命令: 显示ip相关命令的帮助: # i ...

  5. Bloomber 新建基金账户步骤

    --Bloomber 新建基金账户步骤0.执行FIRM命令1.新建account group2.新建account3.将account加入到account group4.将account group授 ...

  6. Element Children

    The childNodes property contains all of the immediate children of the element. There is a significan ...

  7. Python浮点型数据小数点的取舍

    python默认的是17位小数的精度 1.round()内置方法 π=3.1415926535 new_num=round(π,2)     #四舍五入保留两位小数 print(new_num)    ...

  8. 大容量类Redis存储--Pika介绍

    嘉宾介绍 大家好,首先自我介绍一下,我是360 web平台-基础架构组的宋昭,负责大容量类redis存储pika的和分布式存储Bada的开发工作,这是我的github和博客地址,平时欢迎指正交流^^ ...

  9. 认识Redis持久化

    一:为什么需要持久化 因为Redis是一个完全使用内存来存储数据的数据库,如果机器突然断电.服务器重启或进程挂掉了等等原因,那么存储在Redis中的数据就会丢失,从而引起业务的损失.为了保证存储在内存 ...

  10. ES5与ES6常用语法教程之 ①函数写法、创建对象、导入导出模块方式

    函数写法区别 计算a, b两个数字之和,有返回值 es5 写法 function add(a, b) { return a + b; } es6 写法(箭头函数) let add = (a, b) = ...