Swarm 的安装和基本的服务编排调度

前提条件:

准备好三台测试用机器:

Ubuntu 18.04/ 1 CPU/ 2GB 内存/ 30GB磁盘

并且安装好Docker

安装Swarm

在master上执行

docker swarm init --advertise-addr 10.0.0.4

注意:复制docker swarm join --token 整段

在node上执行

docker swarm join --token xxxxxxxxxxxx

在master节点上查看node状态

docker node ls

部署可视化机架

docker service create

--name=viz

--publish=8000:8080/tcp

--constraint=node.role==manager

--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock

dockersamples/visualizer

访问任一节点的8080端口即可看到visualizer的界面

部署第一个服务

docker service create --name web_server --publish 80:80 --replicas=3 yeasy/simple-web

在机架上观察副本和节点的对应情况

观察服务页面,对比docker第一个实验时该容器的行为,尤其是两段地址,多做几次F5

扩展服务

docker service scale web_server=9

同时观察机架上的变化

也可以访问前端页面,看看是否可以把访问请求定向到新的容器副本

排空一个节点,观察failover,如果是基于web的环境,(swarmVM02=worker1)

docker node update --availability drain swarmVM02

重新启动之前的节点,如果是基于web的环境,swarmVM02=worker1

docker node update --availability active swarmVM02

扩展服务规模,并且查看节点之间的负载均衡

docker service scale web_server=15

收缩服务

docker service scale web_server=3

查看服务

docker service ls

删除服务

docker service rm web_server

测试服务升级

创建测试服务

docker service create --name my_web --replicas=3 httpd:2.2.31

使用机架观察服务部署情况,需要特别注意容器的版本信息

2.2.31-->2.2.32

docker service update --image httpd:2.2.32 my_web

使用机架仔细观察升级过程

调整升级行为,服务规模增加到6个副本,每次更新2个副本,间隔时间45s

docker service update --replicas 6 --update-parallelism 2 --update-delay 45s my_web

2.2.32-->2.4.16

docker service update --image httpd:2.4.16 my_web

请仔细通过机架观察滚动更新过程

滚回

docker service update --rollback my_web

注意:swarm仅支持一次滚回

删除服务

docker service rm my_web

部署stack

创建yml文件

nano wordpress.yml

将以下内容拷贝到yml文件里

version: '3'

services:

db:

image: mysql:5.7

volumes:

- db_data:/var/lib/mysql

restart: always

environment:

MYSQL_ROOT_PASSWORD: somewordpress

MYSQL_DATABASE: wordpress

MYSQL_USER: wordpress

MYSQL_PASSWORD: wordpress

wordpress:

depends_on:

- db

image: wordpress:latest

ports:

- "80:80"

restart: always

environment:

WORDPRESS_DB_HOST: db:3306

WORDPRESS_DB_USER: wordpress

WORDPRESS_DB_PASSWORD: wordpress

volumes:

db_data:

使用stack创建wordpress服务

docker stack deploy -c wordpress.yml wpstack

扩展前端

docker service scale wpstack_wordpress=4

同时可以借助weavescope检查前端和后端之间的调用情况

Swarm可视化管理

部署portainer

curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml

docker stack deploy --compose-file=portainer-agent-stack.yml portainer

部署Prometheus + Grafana

git clone https://github.com/stefanprodan/swarmprom.git
cd swarmprom

ADMIN_USER=admin
ADMIN_PASSWORD=admin
SLACK_URL=https://hooks.slack.com/services/TOKEN
SLACK_CHANNEL=devops-alerts
SLACK_USER=alertmanager
docker stack deploy -c docker-compose.yml mon

照例访问3000端口的dashboard

磁盘移臂调度实验_10 Swarm 的安装和基本的服务编排调度相关推荐

  1. 移臂调度算法c语言,磁盘移臂调度算法实验

    操作系统实验报告 实验题目:实验八:磁盘移臂调度算法实验 软件环境:Linux操作系统 实验目的:加深对于操作系统设备管理技术的了解,体验磁盘移臂调度算法的重要性:掌握几种重要的磁盘移臂调度算法,练习 ...

  2. 1.2.7存储结构-磁盘管理:磁盘移臂调度算法、先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)、循环扫描(CSCAN)

    1.2.7存储结构-磁盘管理:磁盘移臂调度算法.先来先服务(FCFS).最短寻道时间优先(SSTF).扫描算法(SCAN).循环扫描(CSCAN) 先来先服务(FCFS) 最短寻道时间优先(SSTF) ...

  3. 移臂调度算法java_C语言 磁盘调度模拟

    什么是磁盘调度? 磁盘调度指待的是访问的磁道时,当前磁头访问的方式(也指待是算法).磁盘的访问也是一种I/O设备的访问,在数据访问中需要知道如何去访问从内存以及I/O传输过来的数据.怎么样去存储或者是 ...

  4. 49学习容器管理平台 Docker Swarm 的基本概念和应用,包括节点管理、服务编排

    Docker Swarm 是 Docker 官方提供的容器编排工具,可以管理多个 Docker 节点,并支持自动化扩展.负载均衡等功能.下面是 Docker Swarm 的基本概念和使用方法,包括节点 ...

  5. 什么是移臂调度,什么是旋转调度?

    移臂调度是指在满足一个磁盘请求时,总是选取与当前移动臂前进方向上最近的那个请求,使移臂距离最短. 旋转调度是指在满足一个磁盘请求时,总是选取与当前读写头旋转方向上最近的那个请求,是旋转圈数最少. 转载 ...

  6. 操作系统之移臂调度算法

    本章分享操作系统之移臂调度算法,移臂调度算法是驱动调度技术中的算法,目的是减少为若干I/O请求服务所需消耗的总时间,从而提高系统效率.常见的移臂调度算法有先来先服务算法(FCFS).最短查找时间优先算 ...

  7. 用boson做vlan的单臂路由实验

    用boson做vlan的单臂路由实验 2007-11-22 09:04 这次用boson做的vlan单臂路由实验比较简单,有人说用Dynamips说比较真实,可是vlan小实验用boson做已经足够了 ...

  8. linux处理机调度实验报告,处理机调度试验

    <处理机调度试验>由会员分享,可在线阅读,更多相关<处理机调度试验(19页珍藏版)>请在人人文库网上搜索. 1.实验报告的基本内容及要求1实验预习在实验前每位同学都需要对本次实 ...

  9. 华为路由三层交互:单臂路由实验

    一.实验拓扑 二.概述解释 前面我们学到VLAN,我们知道,同一VLAN的计算机之间是可以进行二层通信的,而不同VLAN的计算机是无法进行通信的. 虽然,不同VLAN不能通信,但并不代表就没办法通信, ...

最新文章

  1. 回溯算法——算法总结(四)
  2. [转载] 晓说——第16期:古代科举那些事——由来
  3. 《spring揭秘》读书笔记二
  4. python黑色背景编辑器_如何更换python默认编辑器的背景色
  5. win7中cookie的保存位置
  6. Eclipse集成Maven插件tomcat部署 Debug jar包的源码联结
  7. Oracle数据库优化器的优化方式
  8. AT2161-[ARC065D]シャッフル/Shuffling【dp】
  9. react核心虚拟dom_使用虚拟时间测试基于时间的React堆核心流
  10. 作者:石乾新(1989-),男,贵州大学公共管理学院硕士生。
  11. 百度地图订单分布php,php与百度地图API实现注册用户分布图
  12. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十二)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。...
  13. java使用poi读取word(简单,简约,直观)
  14. WebStorm 6.0下运行pomelo项目
  15. vs2008/vs2010新手快速入门必读教程
  16. U盘快捷方式病毒修复
  17. 多示例论文泛读:Revisiting Multiple Instance Neural Networks (2016 mi-Net MI-Net)
  18. 两个重要极限及其推导过程
  19. 科技「垦荒」,AI护虎
  20. 择时 配置 选股0909

热门文章

  1. web端权限维持【好文】
  2. Win10 OneDrive无法同步文件怎么办?一个命令搞定
  3. GO语言的进阶之路-Golang高级数据结构定义
  4. 北京可以备案什么域名
  5. javaWeb校园宿舍管理解析(二)
  6. 基于Metronic的Bootstrap开发框架经验总结(11)--页面菜单的几种呈现方式
  7. 0c-38-ARC快速入门
  8. Spring @AspectJ 实现AOP 入门例子(转)
  9. KKGridView
  10. ClickOnce Cannot download the application解决方法