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通信很简单,前一篇中已经有所涉及了,只要容器使用相同网络,那么就可以使 ...
随机推荐
- Mac OSX bash function 备份
# mount the android file image function mountAndroid { hdiutil attach ~/android.dmg.sparsefile.spars ...
- [开发笔记]--把input框设置成font-size:0埋下的坑。
vue项目上开发了一个输入pin码的组件.在某些安卓机器上.用户点击键盘后会自动失去焦点自动收起键盘.经过排查,发现是css属性font-size设置成0导致的.
- 【git】强制覆盖本地代码(与git远程仓库保持一致)
git强制覆盖: git fetch --all git reset --hard origin/master git pull git强制覆盖本地命令(单条执行): git ...
- DS1-14
#include <stdio.h> #define MAXSIZE 10000 int MaxSubseqSum4(int List[], int N); int main() { in ...
- lumen----------A facade root has not been set.
1.新拉下来的lumen源码,直接使用Log::info是不行的.汇报如下图错误 解决办法如下图,因为lumen需要设置一些开关
- PHP----------线程安全和非线程安全的介绍
1.Linux下的PHP,没有线程安全版和非线程安全版之分.从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,直至5.2.1版本开始有Thread Sa ...
- Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录
之前已详细介绍了Ceph分布式存储基础知识,下面简单记录下Centos7使用Ceph-deploy快速部署Ceph环境: 1)基本环境 192.168.10.220 ceph-admin(ceph-d ...
- Centos7 安装redis
1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.检查及下载gcc gcc -v yum -y inst ...
- Mysql 聚合函数返回NULL
[1]聚合函数返回NULL 当where条件不满足时,聚合函数sum().avg()的返回值为NULL. (1)源数据表 (2)如下SQL语句 SELECT sClass, COUNT(*) AS t ...
- Atom读写MarkDown插件选择,以及墙内安装markdown-preview-enhanced,及markdown和mermaid使用教程
1.Atom自带markdown-preview 功能太少,需要大量拓展. 2.markdown-preview-plus 功能还不错,但是其中的滚动条插件markdown-scroll-sync和最 ...