故障是在所难免的,容器可能崩溃,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. Error:java: 错误: 不支持发行版本 5

    本文链接:https://blog.csdn.net/wo541075754/article/details/70154604 在Intellij idea中新建了一个Maven项目,运行时报错如下: ...

  2. R语言:读入txt文件中文文本出现乱码解决方案

    下载安装 readr 因为使用内置函数 read.table() 读入应该是格式不符合要求会报错 library(readr) help(package="readr") 可以使用 ...

  3. What happens in an async method

    https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/task-asynchronous-pr ...

  4. selenium 入门(Java)

    官网:https://www.seleniumhq.org/ 下载地址:https://sites.google.com/a/chromium.org/chromedriver/downloads 华 ...

  5. 在Excel中,已知身份证号码,如何批量计算其实际年龄?

    昨天,上司问我:..,你会在Excel中计算年龄吗?当时,一下促住了.说真的,还真不会.今天研究了一下,写下来,方便日后查看. 首先,得有一张已知姓名和相应身份证号的原表吧. 在这张表上再加上三列:出 ...

  6. 学习 C++ 读什么书

    C++ 看什么书? 很多莘莘学子,想要在这条路上前进,却是踽踽独行,摸不到门路.就像我当初是一样的.在没有一个前辈带路的情况下,想要自己一个人摸索前进,那份迷茫,深深的刻进自己的记忆里.     下面 ...

  7. HTML头信息标签和标题标签

    <html> <!-- 头信息的作用 1. 可以设置网页的标题. 2. 可以通知浏览使用指定的码表解释html页面. --> <head> <meta htt ...

  8. windows文件上传到linux服务器上

    https://blog.csdn.net/m0_37751917/article/details/80739850 1:检查是否安装sz  rz rpm -qa |grep sz rpm -qa | ...

  9. 【URL 的编码、解码】

    工具类 /** * URLEncodeTest.java * weixinTest * * Function: TODO * * ver date author * ───────────────── ...

  10. 在单元测试中处理Debug.Assert的好方法

    在单元测试项目的配置文件中配置好, <?xml version="1.0" encoding="utf-8"?> <configuration ...