故障是在所难免的,容器可能崩溃,Docker Host 可能宕机,不过幸运的是,Swarm 已经内置了 failover 策略。

创建 service 的时候,我们没有告诉 swarm 发生故障时该如何处理,只是说明了我们期望的状态(比如运行3个副本),swarm 会尽最大的努力达成这个期望状态,无论发生什么状况。

以上一节我们部署的 Service 为例,当前 3 个副本分布在 swarm-worker1 和 swarm-worker2 上。

现在我们测试 swarm 的 failover 特性,关闭 swarm-worker1。

Swarm 会检测到 swarm-worker1 的故障,并标记为 Down。

Swarm 会将 swarm-worker1 上的副本调度到其他可用节点。我们可以通过 docker service ps 观察这个 failover 过程。

可以看到,web_server.1 和 web_server.2 已经从 swarm-worker1 迁移到了 swarm-worker2,之前运行在故障节点 swarm-worker1 上的副本状态被标记为 Shutdown

Service 的 failover 就讨论到这里,下一节我们学习如何访问 Service。

书籍:

1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)相关推荐

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

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

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

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

  3. 如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)

    前面我们已经学习了如何部署 service,也验证了 swarm 的 failover 特性.不过截止到现在,有一个重要问题还没有涉及:如何访问 service?这就是本节要讨论的问题. 为了便于分析 ...

  4. 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)

    上一节我们讨论了 Service 部署的两种模式:global mode 和 replicated mode.无论采用 global mode 还是 replicated mode,副本运行在哪些节点 ...

  5. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)

    微服务架构的应用由若干 service 组成.比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 ...

  6. 运行第一个 Service - 每天5分钟玩转 Docker 容器技术(96)

    2019独角兽企业重金招聘Python工程师标准>>> 上一节我们创建好了 Swarm 集群, 现在部署一个运行 httpd 镜像的 service,执行如下命令: docker s ...

  7. 如何 Scale Up/Down 应用?- 每天5分钟玩转 Docker 容器技术(126)

    伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数. Deployment nginx-deployment 初始是两个副本. k8s-node1 和 k8s-node2 上各跑了 ...

  8. 如何使用 stack?- 每天5分钟玩转 Docker 容器技术(112)

    定义好了 stack YAML 文件,就可以通过 docker stack deploy 命令部署应用. Docker 会按照 YAML 的内容来创建各种资源.为了不重名,所有资源都会加上 stack ...

  9. stack 的优势 - 每天5分钟玩转 Docker 容器技术(113)

    stack 将应用所包含的 service,依赖的 secret.voluem 等资源,以及它们之间的关系定义在一个 YAML 文件中.相比较手工执行命令或是脚本,stack 有明显的优势. YAML ...

最新文章

  1. android 设置布局横屏竖屏
  2. 检测不到信号,是加点噪声?还是滤除噪声?
  3. 使用pymongo将文件存入MongoDB
  4. Android Studio 代码注释插入图片
  5. ambari 2.5.0源码编译安装
  6. linux input子系统分析--子系统核心.事件处理层.事件传递过程
  7. Weblogic读不到Word文件
  8. python——进程、线程、协程
  9. Python自学之路——装饰器的秘密
  10. cogs2790. mk和tree解题报告
  11. 数学建模模型_浅谈对数学建模,数据挖掘,数据分析和数据模型的区别
  12. 使用OpenSSL库接口,实现AES CBC加密,基于X509 base64编码证书的RSA非对称加密例子
  13. 10G整数文件需找中位数
  14. JS中三种字符串连接方式及其性能比较
  15. DDL命令及基础知识
  16. WPS压力传感器测高温部件的注意事项
  17. htcm8android5.0root,htc one 升级安卓5.0后变砖m8重启修复m7升级5.0刷机升级root
  18. IDEA setting设置
  19. 老板一句:我很看好你,下次继续努力!...让我幡然醒悟,果断离职
  20. 网易云课堂学习-TCP/UDP协议

热门文章

  1. 雷林鹏分享:PHP 魔术常量
  2. shell截取字符串方法
  3. 如何完整迁移git仓库到另一个远程地址
  4. 【JSConf EU 2018】Ryan Dahl: Node.js 的设计错误
  5. [日常] Go语言圣经-基于select的多路复用习题
  6. 希捷期望HAMR实现其营收的增长
  7. Eclipse使用技巧收集
  8. 疑难杂症--单回话下 WITH(NOLOCK)返回更多数据
  9. 手工卸载.Net写的win服务
  10. 第三天-零基础学习python