docker-swarm笔记
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笔记的更多相关文章
- Docker Swarm 日常运维命令笔记
之前介绍了Docker管理工具-Swarm部署记录,这里简单总结下Docker Swarm的日常维护命令,以作为平时运维笔记. Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以 ...
- Docker Swarm Mode 学习笔记(聊聊 replicas)
在 Swarm 集群中, 创建服务时可以通过设置 --replicas 参数来指定此服务在工作节点上运行的任务数. 示例 这里我们来创建一个 nginx 服务作为示例: version: '3' se ...
- Docker Swarm Mode 学习笔记(创建 Swarm 集群)
Swarm 集群由管理节点与工作节点组成. 初始化集群 使用命令:docker swarm init 如果你的 Docker 主机有多个网卡, 拥有多个 IP 地址, 必须使用 --advertise ...
- Docker Swarm Mode 学习笔记 (基本概念)
Swarm 是使用 SwarmKit 构建的 Docker 引擎内置(原生)的集群管理和编排工具 节点 运行 Docker 的主机可以主动初始化一个 Swarm 集群 docker swarm ...
- docker (centOS 7) 使用笔记3 - docker swarm mode
1. 什么是docker swarm mode docker engine自带的 容器管理 工具.功能比较早的 docker swarm 更多,且集成在docker engine里. (docker ...
- DOCKER 学习笔记8 Docker Swarm 集群搭建
前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...
- Docker 系列六(Docker Swarm 项目).
一.前言 随着互联网快速发展,以及微服务架构的流行,服务器的压力越来越大.上一篇介绍的 Docker Compose 项目,可以将多个容器捏合在一起,实现容器间的通信,比如 Web 项目对 DB.Ca ...
- 搭建 Docker Swarm 集群
准备三台主机 A:192.168.1.5 B:192.168.1.7 C:192.168.1.10 Docker Swarm集群中的节点主机开放以下三个端口 2377端口, 用于集群管理通信 ...
- 通过docker-machine和etcd部署docker swarm集群
本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...
- Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
目录 [TOC] 1.环境准备 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...
随机推荐
- 网络流强化-HDU2732
第一次遇到加了“多余”的边会导致WA的——在我看来是很多余,见代码191行 之后会思考为什么,想出来再更. 问题弄明白了,如果你在连接边连了一条到没有柱子的点的边,这个没有柱子的点是不可能连到终点的, ...
- bash 特殊符号的含义
bash常见特殊符号及含义 linux中shell变量的含义解释
- IDF-CTF-cookie欺骗 writeup
题目链接: http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=40 知识点:base64解码, cookie欺骗 ...
- 05 - Jmeter连接多台电脑做压力测试
在使用Jmeter进行接口的性能测试时, 由于Jmeter是JAVA应用, 对于CPU的内存消耗比较大, 所以, 当需要模拟数以万计的的并发用户时, 使用单台机器模拟所有用户并发就会有些力不从心了, ...
- 《JAVA设计模式》之外观模式(Facade)
在阎宏博士的<JAVA与模式>一书中开头是这样描述门面(Facade)模式的: 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行.门面模式提供一个高层次的接口 ...
- [Linux] 002 预备知识
1. 开源软件 (1) 常见开源软件 Apache NGINXTM MySQL PHP Saamba mongoDB Python Ruby Sphinx -- (2) 开源软件的特点 绝大多数开源软 ...
- luoguP1081 开车旅行 题解(NOIP2012)
这道题是真滴火!(一晚上加一节信息课!) 先链接一下题目:luoguP1081 开车旅行 首先,这个预处理就极其变态,要与处理出每一个点往后走A会去哪里,B会去哪里.而且还必须O(nlogn)给它跑出 ...
- mysql双主+keepalived架构
架构展示 操作系统 centos6.5 数据库 mysql5.7 master1 10.0.254.148 master2 10.0.254.147 VIP 10.0.254.88 (keepaliv ...
- C++ STL常见数据结构(容器)分类
vector:(连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,可能重新分配更大空间,拷贝的性能开 ...
- 选择指定的MySQL数据库
<?php /******************************** *** 功能:选择指定的MySQL数据库 *********************************/ ? ...