故障是在所难免的,容器可能崩溃,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. React 番外篇

    小技巧:如果我们想了解一门技术,不知道如何学习,那就在 BOSS 直聘上,来看看对这门技术的要求 这篇给大家讲的是 React 1.0 的初始版本,仅仅是让大家有个了解,毕竟回顾历史,我们才能找到他最 ...

  2. koa 基础(七)错误处理中间件

    1.错误处理中间件 app.js /** * 错误处理中间件 */ // 引入模块 const Koa = require('koa'); const router = require('koa-ro ...

  3. cygwin执行.py提示找不到模块,但已经安装模块的解决办法

    . 在解决了cygwin中make命令不能使用的问题之后(https://www.cnblogs.com/zhenggege/p/10724122.html),make maskrcnn路径下的set ...

  4. JScript 程序流程控制

    Jscript 脚本中的语句一般是按照写的顺序来运行的.这种运行称为顺序运行,是程序流的默认方向. 与顺序运行不同,另一种运行将程序流转换到脚本的另外的部分.也就是,不按顺序运行下一条语句,而是运行另 ...

  5. ftp配置文件详解

    ### 主配置文件(/etc/vsftpd/vsftpd.conf) 严格来说,整个 vsftpd 的配置文件就只有这个档案!这个档案的设定是以 bash的变量设定相同的方式来处理的, 也就是`参数= ...

  6. Android 使用date set命令修改系统时间

    测试环境:android 7.1.1 在adb shell中试图使用 date -s "yyyymmdd.[[[hh]mm]ss]"修改系统系统时间时,会提示 date: Unkn ...

  7. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_7 响应json数据之发送ajax的请求

    编写conroller的方法 @RequestBody获取请求体的内容.当前请求体传递的是json字符串. 拿到了请求的内容

  8. 走进Selenium新世界

    浏览器 Firefox Setup 35.0.1 安装完成后设置菜单栏 关闭浏览器自动更新 插件配置(必备武器) FireBug Firebug是firefox下的一个扩展,能够调试所有网站语言,如H ...

  9. CTF—攻防练习之HTTP—SQL注入(X-forwarded-For)

    主机:192.168.32.152 靶机:192.168.32.162 nmap,dirb扫ip,扫目录 在后台发现一个login,登录界面 然后直接上扫描器AVWS,发现存在X—Forwarded— ...

  10. Linux C/C++基础 文件(中)

    1.ubuntu cat命令的实现 cat——查看或者合并文件内容 #include<stdio.h> int main(int argc,char* argv[]) { //1.打开文件 ...