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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

上一节我们成功将 Rex-Ray Volume 挂载到了 Service。本节验证 Failover 时,数据不会丢失。

Scale Up

增加一个副本:

docker service update --replicas 2 my_web

运行之前我们先推测一下,理想的结果应该是:swarm 在 swarm-worker2 上启动第二个副本,同时也将挂载 volume my_web

对比一下实际的运行结果:

535.png

出现了一点复杂的状况:

  1. swarm 首先尝试在 swarm-worker2 上启动第二个副本,但在 mount volume 失败。

  2. 重试了三次都失败了。

  3. 最后在 swarm-worker1 成功启动第二个副本。

mount 失败的原因是:以 VirtualBox 为 backend 的 Rex-Ray volume 不支持同时 attach 到多个 Host。

需要注意:这实际上是 VirtualBox 的限制,而非 Rex-Ray。如果 backend 选择 Ceph RBD 就没有这个问题。

更新 Volume

更新 volume 的内容。

536.png

service 返回更新内容,数据已经同步到副本。

540.png

当前的实验环境如图所示:

538.png

Failover

现在模拟故障情况。shutdown 节点 swarm-worker1,过一会,所有副本都会迁移到 swarm-worker2

539.png

 

访问 service,以前更新的内容完整地保留了下来。

540.png

当前的实验环境如图所示:

541.png

Rex-Ray 作为 Swarm 的存储编排方案能够很好地支持跨主机 volume 管理,而且当容器在集群中迁移时 volume 也能够自动迁移。

Swarm 数据管理就讨论到这里,下一节我们学习 Service 的 Replicated Mode 和 Global Mode。

书籍:

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

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



本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/2049248

相关文章
|
JSON 安全 Java
Docker操作Elasticsearch和Kibana增加用户密码安全验证
昨天公司说现场生产的机器ES和Kibana没有增加密码等安全验证,我想这不是最基础的嘛,怎么连密码都没有,赶紧围绕着生产环境自己写了一个方案,马上让现场人员进行部署,具体的操作流程如下:
2181 0
Docker操作Elasticsearch和Kibana增加用户密码安全验证
|
负载均衡 网络安全 Docker
验证 Docker Swarm 集群的负载均衡
Docker Swarm 集群的内部会为容器的各个节点之间负责负载均衡的管理,现在我们来验证一下 Docker Swarm 的负载均衡特性。
380 0
验证 Docker Swarm 集群的负载均衡
|
安全 应用服务中间件 Linux
通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离
通过命令验证docker容器相当一个轻量级的Linux运行环境,且每个容器内都有一个属于自己的文件系统,容器之间相互隔离
211 0
|
Docker 容器 数据管理
验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)
上一节我们成功将 Rex-Ray Volume 挂载到了 Service。本节验证 Failover 时,数据不会丢失。 Scale Up 增加一个副本: docker service update --replicas 2 my_web 运行之前我们先推测一下,理想的结果应该是:swarm 在 swarm-worker2 上启动第二个副本,同时也将挂载 volume my_web。
1225 0
|
21天前
|
Docker 容器
进入Docker容器中
进入Docker容器中
34 2
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
1天前
|
存储 运维 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第18天】 在现代微服务架构中,Docker容器已成为部署和运行应用的标准环境。随之而来的挑战是如何有效监控这些容器的性能与健康状况,确保系统的稳定性和可靠性。本文将探讨构建一个高效稳定的Docker容器监控体系的关键技术和方法,包括日志管理、性能指标收集以及异常检测机制,旨在为运维人员提供实用的指导和建议。
7 0
|
10天前
|
Linux Docker 容器
docker 容器常用命令
docker 容器常用命令
12 0
|
10天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
14 0