故障是在所难免的,容器可能崩溃,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. beta week 2/2 Scrum立会报告+燃尽图 06

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9959 一.小组情况 组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名: ...

  2. 定时任务-Quartz(热部署、冷部署)

    一.配置Quartz.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context ...

  3. PHP冒泡排序原生代码

    //冒泡排序 $arr=array(23,5,26,4,9,85,10,2,55,44,21,39,11,16,55,88,421,226,588); $n =count($arr); //echo ...

  4. ftp配置文件详解

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

  5. 自定义圆形图片控件CircleImageView的实现

    package com.loaderman.circleimageviewdemo; import android.content.Context; import android.content.re ...

  6. Eclipse 设置护眼背景色

    Eclipse 设置护眼背景色 1.设置字体大小 Window --> Preferences --> General --> Apprearance --> Colors a ...

  7. Kubernetes中的PV和PVC

    K8S引入了一组叫作Persistent Volume Claim(PVC)和Persistent Volume(PV)的API对象,大大降低了用户声明和使用持久化Volume的门槛.在Pod的Vol ...

  8. convert.ToInt32和int.parse区别

    前者适合将object类类型转换成int类型 int.Parse适合将string类类型转换成int类型 1)这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null ...

  9. 【HANA系列】SAP HANA SQL截取字符串

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL截取字符 ...

  10. c语言GCC mingw 64位安装

    1.安装步骤和下载地址 一.MinGW简介 MinGW是是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API).库和可执行文件.MinGW是从Cy ...