Docker Swarm Mode 学习笔记(聊聊 replicas)
在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数。
示例
这里我们来创建一个 nginx 服务作为示例:
version: '3'
services:
nginx:
image: nginx:latest
deploy:
replicas: 3
ports:
- "80:80"
networks:
- net
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- net
networks:
net:
在文件所在目录执行 docker stack deploy -c docker-compose.yml nginx 来创建服务,由于我这里只准备了一台 Docker 主机, 所以在这个 Swarm 集群中情况如图所示:

可以看到我们的 nginx 服务创建了 3个 nginx_nginx 任务, 1个visualizer 服务。
docker ps 查看所有容器
docker exec -it <container id> /bin/bash 依次进入到3个 nginx_nginx 任务所对应的容器中
cd /usr/share/nginx/html 找到 index.html 文件
将3个容器中 index.html 的内容分别改为 nginx.1, nginx.2, nginx.3
echo nginx.1 > index.html
...
然后我们访问 http://127.0.0.1 , 即可看到相对应的修改页面。 这里我们多尝试几次,会发现,有时候出现的是 nginx.1, 也会出现 nginx.2, nginx.3 。 这就是 Docker Swarm 集群模式中自带的负载均衡带来的效果。
下面,我们来收缩或者拓展在一台工作节点上执行的任务量:
收缩:
docker service scale nginx_nginx=2
拓展
docker service scale nginx_nginx=5
可通过 docker service ls 来查看服务概况。
总结
服务的部署模式有两种:
- global : 每个工作节点上都会运行一个服务
- replicated: 每个工作节点会运行 replicas 个服务
Docker Swarm 集群内置的负载均衡,在同一个工作节点上, 多个相同的任务(容器)会由 Swarm 集群的负载均衡来命中。
Docker Swarm Mode 学习笔记(聊聊 replicas)的更多相关文章
- Docker Swarm Mode 学习笔记(创建 Swarm 集群)
Swarm 集群由管理节点与工作节点组成. 初始化集群 使用命令:docker swarm init 如果你的 Docker 主机有多个网卡, 拥有多个 IP 地址, 必须使用 --advertise ...
- Docker Swarm Mode 学习笔记 (基本概念)
Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具 节点 运行 Docker 的主机可以主动初始化一个 Swarm 集群 docker swarm ...
- Docker Swarm Mode 学习笔记 (部署服务)
使用 docker service 命令来管理 Swarm 集群中的服务,该命令只能在管理节点上执行. 新建服务 docker service create --replicas 3 -p 80:80 ...
- Docker Image管理学习笔记,ZT
Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391
- docker容器的学习笔记
目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...
- Docker 与 K8S学习笔记(二十五)—— Pod的各种调度策略(上)
上一篇,我们学习了各种工作负载的使用,工作负载它会自动帮我们完成Pod的调度和部署,但有时我们需要自己定义Pod的调度策略,这个时候该怎么办呢?今天我们就来看一下如何定义Pod调度策略. 一.Node ...
- [Docker]Docker快速上手学习笔记
0. 学习的一些疑问 如何热更新镜像(images)?(你可以快速启动或者销毁容器.这种时间几乎是实时的) 如何热更新游戏服? 好处在于各个应用之间环境相互独立,即使某一个容器崩溃也不会影响到其它容器 ...
- Docker | Docker常用命令学习笔记
@ 目录 前言 1. 帮助命令: version.info.help 2. 镜像命令: images.search pull.rmi 3. 容器命令: pull.run ps.exit .ctrl+P ...
- Docker 与 K8S学习笔记(九)—— 容器间通信
容器之间可通过IP.Docker DNS Server或joined三种方式进行通信,今天我们来详细学习一下. 一.IP通信 IP通信很简单,前一篇中已经有所涉及了,只要容器使用相同网络,那么就可以使 ...
随机推荐
- instrument 之 core animation
1.Color Blended Layers 图层混合 需要消耗一定的GPU资源,避免设置alpha小于1,省去不必要的运算 2.Color Hits Green and Misses Red 光栅化 ...
- 了解 yarn 、npm、nodejs
一.前言 针对即将上线的 jeecg-boot 做一些准备. 二.了解系列 1.了解 nodejs Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrom ...
- JavaWeb学习之三层架构实例(二)
引言 这个实例是上一个实例JavaWeb学习 三层架构实例(一)的加强版,实现的是在前端对数据库中student表的 增.删.改.查 操作.关于三层组成云云,这里就不再叙述. 实例 效果图 先来看一下 ...
- Failed to set MokListRT: Invalid Parameter Something as gone seriously wrong: import_mok_state() failed: Invalid Parameter
今天yum update升级centos7,重启后发现开不了机,报错如下: Failed to set MokListRT: Invalid ParameterSomething as gone se ...
- net Core TOptions和热更新
TOptions接口 net Core 项目有个appsettings.json文件,程序默认也是读取的这个文件,appsettings.json是一个配置文件 我们可以把appsettings.js ...
- mongols的反向代理和负载均衡功能
mongols是C++ 服务器基础设施库,它最近更新提供了反向代理和负载均衡功能. 以下为用mongols代理两个nodejs后端(8888和8889)并与nginx压测对比图: 压测显示mongol ...
- Junit4 之 Assert 静态方法介绍
Junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean cond ...
- P1342 请柬
最近一直在做最短路......所以今天就再做一道最短路吧.... 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片 ...
- 2018.2.21 Python 初学习
折腾了一天,一直在用CMD学习Python写Hello World.偶然间发现可以用Pycharm.也算是给后面想学习的人提个醒,方便省事许多. format()使用方法. age = 20name ...
- 20175208 张家华 MyOD
一.实现目的: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.功能简介 1.Linux下的od功能是将指定文件内容以八进制.十进制.十六进 ...