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. vue搭建项目之设置代理

    前面将项目页面.axios.组件等都准备好了,现在就差设置代理了: 首先在config下新建两个文件,分别叫做dev.uri.js和prod.uri.js,代码为: module.exports = ...

  2. HTML --JS 选择框

    <html> <head> <title>选择框</title> <script language="JavaScript"& ...

  3. Altium Designer chapter3总结

    绘制电路原理图中需要注意的如下: (1)元件库的操作:元件库的加载和卸载.查找元件. (2)元件操作: 1.放置元件(元件库中,place part,快捷键)中place part中的history可 ...

  4. eclipse或者myeclipse的代码提示功能

    第一步:打开eclipse,在菜单栏选择window-->preferences 第二步:在左边tree菜单栏选择General-->keys 第三步:在右边的文本框中输入content, ...

  5. 利用多态,简易实现电脑usb连接设备案例

    package cn.learn.Practice03; public interface UsbInterface { void open(); //打开usb void close(); //关闭 ...

  6. [Linux] 010 权限管理命令 chmod

    1. 权限管理命令:chmod 命令名称:chmod 命令英文原意:change the permissions mode of a file 命令所在路径:/bin/chmod 执行权限:所有用户 ...

  7. [暑假集训Day4T3]曲线

    三分模板. 三分法求单峰函数最优值,之后每次取所有二次函数最优值即可 #pragma GCC optimize(3,"Ofast","inline") #inc ...

  8. 攻防世界--re1

    练习文件下载:https://www.lanzous.com/i5lufub 1.使用IDA打开,进入main函数. 2.转为C代码 可以看到,输入v9之后,与v5比较,判断我们输入的flag是否正确 ...

  9. Linux:使用awk命令获取文本的某一行,某一列

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点 这里 可以跳转到教程.”. 1.打印文件的第一列( ...

  10. 233-基于TMS320C6678+XC7K325T的CPCIe开发平台

    基于TMS320C6678+XC7K325T的CPCIe开发平台 一.板卡概述         该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片 ...