关于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 虚拟化技术有一些很明显的优势:启动容器的速度明显快于传统虚拟化技术,同时创建一台虚拟机 ...
随机推荐
- POJ3984(迷宫问题)
定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...
- 【python】Python 字典(Dictionary)操作详解
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'} ...
- java8 增强的Iterator遍历集合元素
Iterator接口也是Java集合框架的成员,与Collection和Map两个系列的集合不一样的是Collection和Map系列主要用于充当容器的作用,而Iterator正如其名字一样是主要用于 ...
- vb常用函数一览表
常用内部函数 数学函数 函数 功能 示例 结果 说明 Abs(x) 绝对值 Abs(-50.3) 50.3 Exp(x) 自然指数 Exp(2) e^2 e(自然对数的底)的某次方 Fix(x) ...
- Thymeleaf 如何支持java8的时间LocalDate和LocalDatetime
一.添加依赖 <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thym ...
- [TJOI2018]数学计算 线段树
---题面--- 题解: ,,,考场上看到这题,没想到竟然是省选原题QAQ,考场上把它当数学题想了好久,因为不知道怎么处理有些数没有逆元的问题....知道这是线段树后恍然大悟. 首先可以一开始就建出一 ...
- [Leetcode] unique paths 独特路径
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- 洛谷 P2611 [ZJOI2012]小蓝的好友 解题报告
P2611 [ZJOI2012]小蓝的好友 题目描述 终于到达了这次选拔赛的最后一题,想必你已经厌倦了小蓝和小白的故事,为了回馈各位比赛选手,此题的主角是贯穿这次比赛的关键人物--小蓝的好友. 在帮小 ...
- 【BZOJ 2503】相框 图论+讨论
这道题目就是考验了一下图论基本知识与对可爱的代码实现的应对能力. 我们先分析题干信息.我们要形成相框,那么所有的点的度为2(参与的点),那么所有度大于2的点都需要熔断,而且一次完成所有关于这个点的熔断 ...
- 一个 React & Redux的目录树
|-----------------------------------------| | | | React & Redux | | | |------------------------- ...