码迷,mamicode.com
首页 > 系统相关 > 详细

Linux的企业-docker的集群Compose和高可用Docker swarm

时间:2017-10-31 23:54:07      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:compose和高可用docker swarm

一.Docker Compose

          Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr)。Docker Compose 运行的目录下的所有文件(docker-compose.yml, extends 文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker Compose 并没有解决负载均衡的问题,因此需要借助其他工具实现服务发现及负载均衡。
          Docker Compose 是一个用来创建和运行多容器应用的工具。使用 Compose 首先需要编写
Compose 文件来描述多个容器服务以及之间的关联,然后通过命令根据配置启动所有的容器。
           Dockerfile 可以定义一个容器,而一个 Compose 的模板文件(YAML 格式)可以定义一个包含多个相互关联容器的应用。Compose 项目使用 python 编写,基于后面的实验中我们将学习的 Docker API 实现。


二.Docker Compose配置测试

配置环境redhat7.2

1.将docker-compose-linux-x86_64的文件放置到/bin下,并做软链接和加可执行权限,方便调用命令

技术分享


2.测试导入haproxy和nginx镜像,做负载均衡


3.在tmp下编写compose配置文件

技术分享

技术分享

技术分享


4.创建后端服务

web1为httpd,web2和web3为nginx,分别创建默认访问目录

技术分享

技术分享

技术分享

技术分享


5.在web1 httpd服务里建立配置安装httpd服务和启动httpd服务文件

技术分享

技术分享


6.在haproxy里建立haroxy.cfg负载均衡配置文件

技术分享

技术分享


7.在该compose目录下执行 docker-compose up 命令,会整合输出所有容器的输出


docker-compose完成结构

技术分享



技术分享

技术分享


8.配置完成,实现负载均衡

技术分享

技术分享

技术分享

技术分享

技术分享


9.健康检查,关闭web3,访问正常,重新启动web3,服务正常

技术分享

技术分享


技术分享

技术分享



三.Docker swarm的负载均衡高可用

       Swarm 是 Docker 公司在 2014 年 12 月初发布的一套较为简单的工具,用来管理 Docker 集
群,它将一群 Docker 宿主机变成一个单一的,虚拟的主机。Swarm 使用标准的 Docker API
接口作为其前端访问入口,换言之,各种形式的 Docker Client(docker client in go, docker_py,docker 等)均可以直接与 Swarm 通信。Swarm 几乎全部用 Go 语言来完成开发。Swarm deamon 只是一个调度器(Scheduler)加路由器(router),Swarm 自己不运行容器,它只是接受 docker 客户端发送过来的请求,调度适合的节点来运行容器,这意味着,即使Swarm 由于某些原因挂掉了,集群中的节点也会照常运行,当 Swarm 重新恢复运行之后,它会收集重建集群信息。


1.配置环境

redhat7.2,7.2自带swarm工具

server1 主

server2 从

server3 从


2.安装

server1,server2,server3安装docker并启动服务

技术分享


3.创建集群

技术分享

将docker swarm join 到172.25.29.1:2377 进行复制,分别复制到server2和server3的shell里

技术分享


技术分享


完成后在server1上查看节点状态,集群配置完成

技术分享


4.Docker swarm 负载均衡高可用实验

server1,server2,server3导入nginx镜像

技术分享

技术分享

技术分享



5.导入flask框架镜像,server1,server2,server3都要导

技术分享


由于实现负载均衡,需要在nginx的网页上显示主机名,以区分不同后端的负载均衡

用python写的一个显示主机名的语句,导入flask和os

技术分享



6.server1单机运行读取python文件,看是否能查看到主机名

打开flask镜像,将demo.py脚本放到root下

技术分享


提交保存

技术分享


测试写的显示主机名的python脚本是否正常

技术分享


可以显示容器名,测试正常,可以封装提交

技术分享

7.将测试好的加入demo.py脚本的镜像python:demo镜像导出为demo.tar

关闭容器并导出

技术分享


8.server2和server3分别导入flask和demo镜像

技术分享

技术分享



9.创建名为flask集群,并启动3个后端服务节点,读取python下的demo.py脚本

技术分享



10.启动后浏览器测试

技术分享

技术分享

3台后端服务轮询

技术分享


11.将后端服务变为8个节点

技术分享


显示轮询

技术分享



四.Docker swarm可视化web监控界面

1.导入visualizer镜像

技术分享


2.创建

技术分享

查看容器

技术分享


3.浏览器输入地址,查看监控界面

技术分享



4.定时更新

技术分享

update-parallelism 2     每次更新2个

update-delay 10s          每十秒更新1次

nginx                         每次更新nginx镜像

更新 名为flask的集群


图形变化image:nginx

技术分享



Linux的企业-docker的集群Compose和高可用Docker swarm

标签:compose和高可用docker swarm

原文地址:http://anfishr.blog.51cto.com/8534000/1977919

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!