centos7下安装docker(25docker swarm---replicated mode&global mode)
swarm可以在service创建或运行过程中灵活的通过--replicas调整容器的副本数量,内部调整调度器则会根据当前集群资源使用的情况在不同的node上启动或停止容器,这就是service默认的replicated mode。在此模式下,node上运行的副本数有多有少,一般情况下,资源更丰富的node运行的副本数更多,反之亦然。
除了replicated mode,service还提供了一个global mode,起作用是强制在每个node上都运行一个且最多一个副本。
此模式特备适合需要运行daemon的集群环境。比如要收集所有容器的日志,就可以以global mode创建service,在所有的node上运行gliderlabs/logspout容器,及时之后有新的node加入,swarm也会自动在新node上启动一个gliderlabs/logspout副本。
docker service create --mode global --name logspout gliderlabs/logspout

通过docker service inspect查看service的mode
注:如果创建service时不指定mode,默认使用replicated
无论是采用global mode还是replicated mode,副本运行在哪些节点上都是由swarm决定的。如何做到精细的控制service的运行位置呢?
答案是:使用label
逻辑分为两步:
1.为每个node定义label
2.设置service运行在指定的label的node上
lable可以灵活描述node的属性,其形式是key=value,用户可以任意指定,
例如将docker1作为测试环境,为其添加label env=test
docker node update --label-add env=test docker1

docker node inspect docker1 --pretty

对应的将docker2作为生产环境,添加label env=prod
docker node update --label-add env-prod docker2


现在部署service到测试环境:
docker service create --name web-label --constraint node.labels.env==test --replicas 3 --publish 8081:80 httpd

--constraint node.labels.env==test 限制将service部署到label=test的node,即docker1上。从部署的结果上看,三个副本全部都运行在docker1上
可以通过docker service inspect查看--constraint的设置

更新service,将其迁移到生产环境:
先将web-label service的label删除
docker service update --constraint-rm node.labels.env==test web-label

删除label后的service副本的位置


重新设置web-label service的label
docker service update --constraint-add node.labels.env==prod web-service


可以看到:就算之前的副本在docker2上,通过update指定label时,还是会重新启动一个副本
通过docker service inspect 查看constraint

label还可以和global模式综合起来使用,比如只收集生产环境中的容器的日志
docker service create --mode global --constraint-add node.labels.env==prod --name logspout gliderlabs/logspout
只有docker2节点才会运行logspout
centos7下安装docker(25docker swarm---replicated mode&global mode)的更多相关文章
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- CentOS7下安装docker(Docker系列1)
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...
- centos7下安装docker与镜像加速
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...
- centos7 下安装docker报错:You could try using...
搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...
- centos7下安装docker(21docker swarm集群创建)
创建swarm集群: 实验环境:盗图 swarm-manager是manager node,swarm-worker1和swarm-worker2是worker node. 所有节点的docker版本 ...
- centos7下安装docker(20.docker swarm start)
从主机的层面来看,docker swarm管理的是docker host集群. 什么是集群? 服务器集群由一组网络上相互连接的服务器组成,他们一起协同工作. 一个集群和一堆服务器的显著区别是: 集 ...
- Linux(centos7)下安装Docker
近期公司开始推Docker技术.这个系列的文章都是基于CentOS7系统下进行讲解的. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器 ...
- Docker学习笔记1:CentOS7 下安装Docker
本文内容摘自官网:https://docs.docker.com/engine/installation/linux/centos/#/create-a-docker-group 注:本文是介绍Lin ...
- centos7下安装docker(19容器架构)
What,Why,How What:什么是容器? 说起容器大家想到的是什么? 集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...
- centos7下安装docker(14安装docker machine)
之前我们做的实验都是在一个host上面的,其实在真正的环境中有多个host,容器在这些host上面启动,运行,停止和销毁,相关容器会通过网络相互通信,无论他们是否运行在相同的host上面. 对于这种歌 ...
随机推荐
- HTML标签笔记
换行符:<br/> 首部: <!DOCTYPE>: 说明html文档使用的标准, 在HTML5中仅为 <!DOCTYPE html>1.头标签 <head&g ...
- OOP设计模式在路上(一)——简单工厂模式
前言 目前以LabVIEW为主要开发工具,熟悉常规开发框架(队列+状态机),个人用得比较多也感觉比较好用和强大的(JKI,AMC),也用它们开发过一些测试平台,但感觉到了一个瓶颈期,想寻求突破,提升L ...
- hive函数应用之操作json
1.创建表 createtable.sql中存放的创建表语句如下 create external table adt.jsontest ( appKey string comment "AP ...
- blfs(systemd版本)学习笔记-构建ibus-libpinyin使用中文输入法
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.包的下载地址 1.libpinyin 下载地址:http://deb.debian.org/debian/pool/main ...
- win10怎么录制电脑屏幕 电脑播放视频录制
随着社会的发展,网络信息化时代已经来临,作为一个上班族,每天都离不开电脑,电脑仿佛就是我们的合作伙伴,也是陪伴我们的朋友,如今win10系统已经出来了,关于win10系统的问题相信大家有很多的问题,今 ...
- Vue 组件之间传值
一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传递数据. 子组件部分: 这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量. 如果需要从 ...
- Deep Learning - 2 反向传播
深度神经网络的学习基于两个关键技术: Stochastic Gradient Descent Backpropagation 利用 SGD 算法学习 Weights 和 Biases,利用 Backp ...
- concrrent类下ReentrantReadWriteLock类的原理以及使用
1.ReentrantreadWriteLock 类的介绍 Lock接口下的子类存在 ReentrantLock子类,该子类是一个线程同步处理类:ReentrantLock类的介绍详见XXX: Loc ...
- Tsung MQTT协议简介及MQTT xml文档配置介绍
MQTT协议简介及MQTT xml文档配置介绍 by:授客 QQ:1033553122 1. MQTT协议介绍 MQTT(Message Queuing Telemetry Transport,消息队 ...
- drawable自定义字体颜色
一个很基础简单的问题,但是以前没用过,都是代码控制效果的,最近新的项目发现设置了color属性没效果,后来查了会资料才发现得单独设置,记录一下,虽然是小问题 上面的xml控制背景的变化,一开始我设置在 ...