1.部署环境:

centos7
创建三节点的 swarm 集群
swarm-manager 是 manager node : 192.168.1.150
swarm-worker1 和 swarm-worker2 是 worker node: 192.168.1.151,192.168.1.152

2.部署docker

Docker v1.+
安装:https://www.cnblogs.com/hanxiaohui/p/8514941.html
注意:3个节点都需要安装,并且修改docker默认的家目录

3.部署docker-swarm

原文地址: http://www.cnblogs.com/CloudMan6/p/7862254.html

3.1在 swarm-manager 上执行如下命令创建 swarm:

docker swarm init --advertise-addr 192.168.1.150
命令说明:
--advertise-addr 指定与其他 node 通信的地址。
docker swarm init 输出告诉我们:
① swarm 创建成功,swarm-manager 成为 manager node。
② 添加 worker node 需要执行的命令。
③ 添加 manager node 需要执行的命令

3.2 添加worker

如果当时没有记录下 docker swarm init 提示的添加 worker 的完整命令,可以通过以下命令查看
docker swarm join-token worker 上条命令执行的结果 在node上执行。

3.3 查看集群

docker node ls

4.service相关的操作

######创建网络

######创建网络
docker network create -d overlay --attachable my-network #创建overlay网络

######用 Label 控制 Service 的位置

定义lable
docker node update --label-add env=test swarm-worker1
命令说明:
swarm-worker1是node的名字

######查看lable

docker node inspect swarm-worker1 --pretty

######创建service

docker service create -d -p : --mount type=bind,src=/mnt/qmsUpload,dst=/usr/local/src --replicas  --name first-mysql --network my-network  --constraint 'node.labels.env=test' mysqld:5.6
命令说明:
-d 默认是true(这个参数可要可不要)
-p 端口映射 相当于 --publish
--mount 挂载磁盘
--replicas 副本数
--name service名
--network 指定网络
--constraint 指定在哪个work启动副本,需要给节点定义lable
mysqld:5.6 指定镜像

######查看service

docker service inspect first-mysql --pretty

######service副本伸缩

  docker service scale first-mysql= 或 docker service update --replicas
命令说明:
first-mysql是service名,伸缩只要修改数量就行。

######不让manager node运行副本

  默认配置下 manager node 也是 worker node,所以 swarm-manager 上也运行了副本。如果不希望在 manager 上运行 service,可以执行如下命令
docker node update --availability drain swarm-manager
命令说明: swarm-manager是node名,node名 是跟系统的hostname一样的 docker node ls #查看AVAILABILITY列 swarm-manager那台node的 值变为 drain

######删除service

docker service rm web_server  #docker service rm 删除 web_server,service 的所有副本(容器)都会被删除

######从外部访问service

  端口映射
.创建service是有用-p 映射 .后期添加映射
docker service update --publish-add : web_server . curl 集群中任何一个节点的 端口,都能够访问到 web_server

######service 服务发现

  http://www.cnblogs.com/CloudMan6/p/7967419.html

  直接使用 ingress 行不行?ingress是docker-swarm集群建好后就有的
很遗憾,目前 ingress 没有提供服务发现,必须创建自己的 overlay 网络 (在manager上创建)

######滚动更新service

  docker service update --image httpd:2.2. my_web
说明:
--image 指定新的镜像
my_web 是service的名字
步骤:
.停止第一个副本。
.调度任务,选择 worker node。
.在 worker 上用新的镜像启动副本。
.如果副本(容器)运行成功,继续更新下一个副本;如果失败,暂停整个更新过程。 例子:
docker service update --replicas --update-parallelism --update-delay 1m30s my_web #service
增加到六个副本,每次更新两个副本,间隔时间一分半钟。

######回滚更新

docker service update --rollback my_web #快速恢复到更新之前的状态

######replicated mode vs global mode

  globalmode,其作用是强制在每个 node 上都运行一个且最多一个副本
例子:
docker service create \
--mode global \
--name logspout \
--mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock \
gliderlabs/logspout

######健康检查

  http://www.cnblogs.com/CloudMan6/p/8053323.html

docker-swarm笔记的更多相关文章

  1. Docker Swarm 日常运维命令笔记

    之前介绍了Docker管理工具-Swarm部署记录,这里简单总结下Docker Swarm的日常维护命令,以作为平时运维笔记. Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以 ...

  2. Docker Swarm Mode 学习笔记(聊聊 replicas)

    在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数. 示例 这里我们来创建一个 nginx 服务作为示例: version: '3' se ...

  3. Docker Swarm Mode 学习笔记(创建 Swarm 集群)

    Swarm 集群由管理节点与工作节点组成. 初始化集群 使用命令:docker swarm init 如果你的 Docker 主机有多个网卡, 拥有多个 IP 地址, 必须使用 --advertise ...

  4. Docker Swarm Mode 学习笔记 (基本概念)

    ​ Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具 节点 ​ 运行 Docker 的主机可以主动初始化一个 Swarm 集群 docker swarm ...

  5. docker (centOS 7) 使用笔记3 - docker swarm mode

    1. 什么是docker swarm mode docker engine自带的 容器管理 工具.功能比较早的 docker swarm 更多,且集成在docker engine里. (docker ...

  6. DOCKER 学习笔记8 Docker Swarm 集群搭建

    前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...

  7. Docker 系列六(Docker Swarm 项目).

    一.前言 随着互联网快速发展,以及微服务架构的流行,服务器的压力越来越大.上一篇介绍的 Docker Compose 项目,可以将多个容器捏合在一起,实现容器间的通信,比如 Web 项目对 DB.Ca ...

  8. 搭建 Docker Swarm 集群

      准备三台主机 A:192.168.1.5 B:192.168.1.7 C:192.168.1.10   Docker Swarm集群中的节点主机开放以下三个端口 2377端口, 用于集群管理通信 ...

  9. 通过docker-machine和etcd部署docker swarm集群

    本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...

  10. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

随机推荐

  1. 第 4 章 前端基础之jquery

    一.jQuery是什么? 1. jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. 2. jQuery是继prototype之后又一 ...

  2. php用什么软件编程

    准备好好学习学习PHP了吗?那么你首先应该考虑用什么开发工具(IDE).市面上有很多这类工具,收费的有,免费的也有,选择起来并不轻松. 如果你说PHP编程用基础的文本编辑软件就可以了,比如用记事本.是 ...

  3. 洛谷P3379 【模板】最近公共祖先(LCA)——LCA

    给一手链接 https://www.luogu.com.cn/problem/P3379 算是lca的模板吧 #include<cstdio> #include<cstring> ...

  4. 《JAVA设计模式》之外观模式(Facade)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述门面(Facade)模式的: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行.门面模式提供一个高层次的接口 ...

  5. 设置div标签可以输入文字

    1.contenteditable 属性可以设置div标签为克输入标签,   2.input和textarea虽然是常用的输入标签,但是这两个标签不能设置最大高度和最小高度, 随意如果想随着输入的内容 ...

  6. Little Sub and Mr.Potato's Math Problem (构造法)

    题目传送门Little Sub and Mr.Potato's Math Problem Time Limit: 2 Seconds      Memory Limit: 65536 KB Littl ...

  7. P2324 [SCOI2005]骑士精神(A*)

    P2324 [SCOI2005]骑士精神 A*与爆搜的不同就是它有一个估价函数$h(x)$ 这个估价函数一般设为从当前状态到终点状态的估计最短步数,这样可以有效剪枝 但估计值必须严格小于等于实际剩余步 ...

  8. docker镜像源设置

    由于docker默认镜像源为国外官方源,下载速度较慢.设置国内镜像源可加速 修改文件 /etc/docker/daemon.json vi /etc/docker/daemon.json 添加以下内容 ...

  9. linux性能分析工具Uptime

  10. 12-低延迟、全接口(HMDI、DVI、YPb Pr、RGB)H.264全高清编码器解码器

    低延迟.全接口(HMDI.DVI.YPb Pr.RGB)H.264全高清编码器解码器 一.产品介绍  1.近零延时的H.264压缩到1920x1080p60  该产品提供分辨率为1920x1080p6 ...