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. ...
随机推荐
- 应用安全 - Windows操作系统 - 漏洞 - 汇总
FTP弱密码 将FTP服务器的密码更改为强密码 vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO #禁止匿名登录 重启ftp服务 Windows匿名用户整改 ...
- 深入探讨vue响应式原理
现在是时候深入一下了!Vue 最独特的特性之一,是其非侵入性的响应式系统.数据模型仅仅是普通的 JavaScript 对象.而当你修改它们时,视图会进行更新.这使得状态管理非常简单直接,不过理解其工作 ...
- StringBuilder -字符串缓冲区,节约内层空间变长数组
package cn.learn; /* 字符串缓冲区 -缓冲可提高效率 java.lang.StringBuilder 字符串的底层是一个被final修饰的数组,不能改变,是一个常量 private ...
- 【Vue 2.X】基于input[type='number']封装parseFloat、parseInt-自定义指令系列(一)
一.parseFloat 效果:限制负值输入,且输入值不为空时自动保留两位小数,等同于js的parseFloat(value).toFixed(2) 使用:与v-model配合使用,v-parseFl ...
- pycharm修改字体大小和主题
一,修改文字大小: 二,修改主题:你可能对编辑器的外观仍不满意,例如你希望将文档字符串改变为另外一种颜色,下面介绍具体更改方法:
- mod_jk是Apache服务器的一个可插入模块
mod_jk简称JK,是Apache服务器的一个可插入模块,用以为Apache或IIS服务器提供处理JSP/Servlet的能力. Apache作为一款强大的Web服务器,本身缺乏处理JSP/Serv ...
- 270-VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡
VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡 一.板卡概述 本板卡基于Xilinx公司的FPGA XC7V ...
- C# 生成word文档(NPOI.XWPF)
一.基础 1.创建Word using NPOI.XWPF.UserModel XWPFDocument doc = new XWPFDocument(); //创建新的word文档 XWPFPara ...
- Git--08 Jenkins
目录 Jenkins 01. 安装准备 02 .安装Jdk和Jenkins 03 .配置Jenkins 04. 插件安装 05. 创建项目 06. Jenkins获取Git源代码 07. 立即构建获取 ...
- Shell06--数组应用
目录 Shell06---数组应用 1. 数组基本概述 2. 数组基本使用 3. 数组遍历与循环 Shell06---数组应用 1. 数组基本概述 01. 什么是数组? 数组其实也算是变量,传统的变量 ...