Swarm 可以在 service 创建或运行过程中灵活地通过 --replicas 调整容器副本的数量,内部调度器则会根据当前集群的资源使用状况在不同 node 上启停容器,这就是 service 默认的 replicated mode。在此模式下,node 上运行的副本数有多有少,一般情况下,资源更丰富的 node 运行的副本数更多,反之亦然。

除了 replicated mode,service 还提供了一个 globalmode,其作用是强制在每个 node 上都运行一个且最多一个副本。

此模式特别适合需要运行 daemon 的集群环境。比如要收集所有容器的日志,就可以 global mode 创建 service,在所有 node 上都运行 gliderlabs/logspout 容器,即使之后有新的 node 加入,swarm 也会自动在新 node 上启动一个 gliderlabs/logspout 副本。

docker service create \

--mode global \

--name logspout \

--mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \

gliderlabs/logspout

可以通过 docker service inspect 查看 service 的 mode。

这里是 Global,如果创建 service 时不指定,默认是 Replicated

无论采用 global mode 还是 replicated mode,副本运行在哪些节点都是由 Swarm 决定的,作为用户我们有没有可能精细控制 service 的运行位置呢?

下一节我们来解答这个问题。

书籍:

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

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

转载于:https://blog.51cto.com/cloudman/2050054

replicated vs global mode - 每天5分钟玩转 Docker 容器(105)相关推荐

  1. replicated mode vs global mode - 每天5分钟玩转 Docker 容器技术(105)

    replicated mode vs global mode - 每天5分钟玩转 Docker 容器技术(105) 原创 CloudMan CloudMan 2017-12-13 第105篇 repl ...

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

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

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

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

  4. 如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

    上一节已经部署好了 Graylog,现在学习如何用它来管理日志. 首先启动测试容器. docker run -d \ --log-driver=gelf \ --log-opt gelf-addres ...

  5. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  6. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)

    在实践之前,必须先学习 Kubernetes 的几个重要概念,它们是组成 Kubernetes 集群的基石. Cluster  Cluster 是计算.存储和网络资源的集合,Kubernetes 利用 ...

  7. 回收 PV - 每天5分钟玩转 Docker 容器技术(152)

    当 PV 不再需要时,可通过删除 PVC 回收. 当 PVC mypvc1 被删除后,我们发现 Kubernetes 启动了一个新 Pod recycler-for-mypv1,这个 Pod 的作用就 ...

  8. DaemonSet 典型应用场景 - 每天5分钟玩转 Docker 容器技术(129)

    Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本.DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本. DaemonS ...

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

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

最新文章

  1. Java垃圾回收之新生代垃圾收集器
  2. Rxjava之操作符distinct和elementAt
  3. 自底向上构建知识图谱全过程
  4. 2018年12月2526日
  5. 解决 git pull/push 每次都要输入用户名密码的问题
  6. SQL Server实用经验与技巧大汇集 [转]
  7. 5G:无人驾驶的“超级英雄”路
  8. java 之 servlet简介
  9. 开源的Web Service测试工具
  10. python 课程设计扫雷报告_《扫雷课程设计报告.doc
  11. 如何把“春节”这个主题写成万用的申论范文
  12. 人工智能辅助服装设计 | Mixlab论文带读
  13. BugKu CTF(杂项篇MISC)---哥哥的秘密
  14. 计算机蓝屏无法启动代码50,教您电脑蓝屏代码 0x00000050 如何快速修复
  15. python远程聊天_python工具,微信聊天、自动回复、手机微信远程控制电脑
  16. Python 当当网数据分析
  17. 电脑快捷键大全(1)
  18. 四路抢答器的控制程序设计
  19. 上海科技大学信息科学与技术学院保研面试题
  20. python实现单摆的数值模拟

热门文章

  1. 文本框内容改变触发事件
  2. MongoDB无法注册windows服务问题解决 Error connecting to the Service Control Manager: 拒绝访问 Mongodb M
  3. flutter 生成文档_Flutter文件操作
  4. Spring IOC扫描器与注册器
  5. oracle如何自定义类型,Oracle 自定义类型
  6. php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. oracle连接数增加无法释放,Oracle连接数过多释放机制
  8. linux ruby 安装路径,Linux(CentOS 7)安装ruby
  9. chartjs和echartsjs库简介
  10. array函数参数 scala_scala – 在Spark SQL中将数组作为UDF参数传递