关于docker swarm有满满干货的一篇文章,讲了如何用service来作nginx负责proxy已级无缝升级策略
http://www.cnblogs.com/atuotuo/p/6260591.html
=================================
$docker network create -d overlay test
然后在同一个网络上分别吧应用容器和http服务容器起来:
$ docker service create --name test -p 5000:5000 --replicas 6 –network test demo python env.py
$ docker service create --name nginx --replicas 3 --network test -p 80:80 nginx-2
Nginx容器的default.conf配置如下,其中test:5000对应之前由docker service create出来的test任务,docker 引擎已经将task name对应的ip关系映射成内部的DNS解析。
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/log/host.access.log main;
location / {
# root /usr/share/nginx/html;
# index index.html index.htm;
proxy_pass http://test:5000;#这里这个服务,是可以用这种方式实现内部负责调用。外部调用的话,可能还是得固定IP或DNS?
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
至此全部操作完成,当浏览器访问http://node2后,http请求根据VIP负载均衡算法均匀的分配至3个swarm cluster node上的6个python容器去响应请求,并且无论哪个后端容器挂了,只要三台docker swarm cluster的节点不同时出事,都不会影响正常 的网站服务。
对于上述的VIP负载均衡算法做下补充说明:docker1.12使用的是linux自身的IPVS作为负载均衡方式。IPVS实则linux内核中一个叫做ip_vs的负载均衡模块。不同于DNS负载均衡将IP列表顺序轮询,IPVS会将负载均匀的分发到每个容器。IPVS是四层的转发者,能够转发TCP、UDP、DNS并且支持八种负载均衡算法。
=================================
滚动部署
从前docker的旧版本下,容器必须手动蓝绿部署,或者手写脚本实现滚动升级。1.12有了滚动更新以后,我们就不需要把更新规则写成脚本去实现透明部署。Swarm mode中,服务可以更新逐步节点,并且控制服务的部署之间的延迟到不同的节点集合。如果出现任何错误,能够马上回滚上一个任务,回到先前版本的服务。
当现在要更新test这个task所引用的镜像时,可以这么操作:
$docker service update --update-parallelism 2 --image demo:2.0 --update-delay 10s test
其中--update-parallelism参数用来指定最大同步更新任务数。这意味着我们可以安全透明的更新容器副本。关于透明,当然要确保你的容器是向后兼容的,否则最好销毁旧的容器,再去更新所有的容器。
然后容器就会每隔10秒跟新2个容器,直至30秒后此次更新操作完毕。
关于docker swarm有满满干货的一篇文章,讲了如何用service来作nginx负责proxy已级无缝升级策略的更多相关文章
- Docker集群管理(一)—— 基础docker+swarm+shipyard
目的 学习docker的集群管理,摸索出高可用的docker微服务架构方案.本篇文章只初步的了解下swarm(docker新版已集成了swarm)的使用,了解docker的发现服务的基础方法(dock ...
- docker swarm模式跨主机连接
一.前言 当我们开发好微服务之后,考虑到灵活快速持续部署的需要,通常会考虑将其Docker镜像化并在Docker环境下运行.由于微服务个数通常会较多,把所有微服务部署在一台docker主机上是不现实的 ...
- 通过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. ...
- (转) Docker swarm - 使用体验 1+2
背景 凭借敏捷开发部署理念的推行,相信对于很多人来说docker这项容器技术已经并不陌生,Docker 1.12引擎发布了快两个月,新引擎中包含了许多特性.诸如: Swarm模式,容器集群的健康检查, ...
- (转) Docker swarm 之介绍与使用
今天,在站内看到一篇关于Docker Swarm 的文章,非常好,在这里转过来,方便日后查阅 :) 原贴链接: http://www.cnblogs.com/rio2607/p/4445968.htm ...
- 从零开始搭建Docker Swarm集群
从零开始搭建Docker Swarm集群 检查节点Docker配置 1. 打开Docker配置文件(示例是centos 7)vim /etc/sysconfig/docker2. 添加-H tcp:/ ...
- docker + swarm 集群
docker + swarm 集群 导读 Swarm是Docker公司在2014年12月初新发布的容器管理工具.和Swarm一起发布的Docker管理工具还有Machine以及Compose.Swar ...
- 基于 Consul 的 Docker Swarm 服务发现
Docker 是一种新型的虚拟化技术,它的目标在于实现轻量级操作系统的虚拟化.相比传统的虚拟化方案,Docker 虚拟化技术有一些很明显的优势:启动容器的速度明显快于传统虚拟化技术,同时创建一台虚拟机 ...
随机推荐
- ASP.NET程序中设置相对路径的方法
如图所示,这是个绝对路径. 改为相对路径的方法是:AppDomain.CurrentDomain.BaseDirectory. 如下图所示:
- 健康领域今年开始井喷了,养老地产和私人医生这两个领域目测成为下一轮BAT在健康领域布局的竞争方向
医疗行业做了六年多的时间,今年到了井喷的阶段,腾讯先是入股了丁香园,然后又一亿美金融资挂号网,春雨医生获得5000万美元的C轮融资,这是要上市的节奏.. 从互联网战略上,健康网和医疗网都是做资料刚开始 ...
- jetty maven插件
<plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifact ...
- online community
online community spectrum https://spectrum.chat/xgqfrms https://community.xgqfrms.xyz/ https://spect ...
- oracle序列使用时 先用伪列将序列的id调整到正确的位置
- JQuery插件supersized.js实现背景图片淡入浅出
淡入浅出的网站背景图片切换,其实是引用了JQuery插件supersized,效果很炫吧.其实这个插件功能很强大,可以做很多图片类的效果.这些需要等待我们自己去探索. 下面是这个效果的代码只有一行: ...
- BZOJ4327 JSOI2012玄武密码(AC自动机)
当然可以在SA上二分答案,但看起来会被卡log.考虑对模板串建出AC自动机,用母串在上面跑,标记上所有能到达的点.注意到达某个点时需要标记所有其通过fail指针可以走到的点,如果遇到一个标记过的点就可 ...
- 2017 Multi-University Training Contest - Team 2 Puzzle
题目大意: 给定n, m, p.然后按照一个规则往n*m的方格里填数,最后一个方格是空格,然后玩拼图游戏,问能否复原 规则是:把1~n*m-1的排列中的第1,p+1,2*p+1.....个数依次取出来 ...
- 【题解】SDOI2014数数
真的很开心呢,总算是有一道完完全全由自己做出来的题目啦~ 这一道题目洛谷P3311和另一道JSOI文本生成器的题目是十分相像的,dp方面几乎相同.只是<=n的约束,让这道题目必须结合数位dp的方 ...
- [HAOI2010]计数
题面在这里 description 你有一组非零数字(不一定唯一),你可以在其中插入任意个0,这样就可以产生无限个数. 比如说给定{1,2},那么可以生成数字12,21,102,120,201,210 ...