热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DockerZeroDeploymentandSecrets(一)

在本节中,主要介绍在Dockerswarm中如何不中断应用高可靠性的情况下更新服务和stack.这也叫做zerodowntimedeployment.还有就是swam如何管理密钥,保证容器之间的

在本节中,主要介绍在Docker swarm中如何不中断应用高可靠性的情况下更新服务和stack.这也叫做zero downtime deployment.还有就是swam如何管理密钥,保证容器之间的通信是安全可靠的。

一.  Zero downtime deployment

1. 比较常见的更新方法

(1) Rolling updates

(2) Blue-green deployments

(3)Canary releases

 

2. Rolling updates

在关键的应用中,每个应用的服务都运行多个复本。举个例子,假如我们有三个复本实例,认为至少得有两个实例在同一时间运行,假如有100个实例复本,至少得有90实例复本在同一时间要有效。所以我们可以定义同时更新的实例有多少 个。在第二种假设的情况中,就是同时更新实例数为10个。

说白话一点就是假如一个应用有100个实例容器提供服务,那么我们每次更新10个,这样轮着更新。直至100个更新完,在这期间不停止服务。

注意:在署在多个节点的服务进行rolling updates时,最好是无状态的服务,假如是有状态的服务,建议调整方法,这个方法可能不太适合。

 

(1)定义stack文件 ,内容如下:

xiodi@c720131:~/docker$ cat stack.yaml
version: "3.5"
services:
   web:
     image: nginx:1.12-alpine
     ports:
       - 80:80
     deploy:
       replicas: 10
       update_config:
         parallelism: 2
         delay: 10s

 

(2)使用stack文件部署服务

xiodi@c720131:~/docker$ sudo docker stack deploy -c stack.yaml web
[sudo] password for xiodi:
Creating network web_default
Creating service web_web

 

(3)在服务部署后,使用下面的命令进行服务的监控

xiodi@c720131:~/docker$ sudo watch docker stack ps web
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                ERROR               PORTS
tsmz1yh1r8sq        web_web.1           nginx:1.12-alpine   c720131.xiodi.cn    Running             Running about a minute ago
9efbgiu8xfu6        web_web.2           nginx:1.12-alpine   c720132.xiodi.cn    Running             Running about a minute ago
j3ka20b1330l        web_web.3           nginx:1.12-alpine   c720132.xiodi.cn    Running             Running about a minute ago
t96zpspkrdll        web_web.4           nginx:1.12-alpine   c720132.xiodi.cn    Running             Running about a minute ago
q7vgy2b5ripc        web_web.5           nginx:1.12-alpine   ubuntu              Running             Running about a minute ago
lkrxparc8y5x        web_web.6           nginx:1.12-alpine   c720131.xiodi.cn    Running             Running about a minute ago
0nw5y74ow3vc        web_web.7           nginx:1.12-alpine   ubuntu              Running             Running about a minute ago
wpsn04qxzy0a        web_web.8           nginx:1.12-alpine   c720131.xiodi.cn    Running             Running about a minute ago
qcernrxbachq        web_web.9           nginx:1.12-alpine   ubuntu              Running             Running about a minute ago
kd5dbexndk61        web_web.10          nginx:1.12-alpine   c720132.xiodi.cn    Running             Running about a minute ago

 

(4)更新web服务,然后观察结果 。

1528277134(1)

 

(5)更新完成后,显示结果如下

1528277182(1)

 

xiodi@c720131:~/docker$ sudo docker stack ps web
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
y3e6nsy7qa0a        web_web.1           nginx:1.13-alpine   c720131.xiodi.cn    Running             Running 3 minutes ago                       
tsmz1yh1r8sq         \_ web_web.1       nginx:1.12-alpine   c720131.xiodi.cn    Shutdown            Shutdown 3 minutes ago                      
zkmadin1p6ir        web_web.2           nginx:1.13-alpine   c720132.xiodi.cn    Running             Running 3 minutes ago                       
9efbgiu8xfu6         \_ web_web.2       nginx:1.12-alpine   c720132.xiodi.cn    Shutdown            Shutdown 3 minutes ago                      
m4xhcns8j57p        web_web.3           nginx:1.13-alpine   ubuntu              Running             Running 4 minutes ago                       
j3ka20b1330l         \_ web_web.3       nginx:1.12-alpine   c720132.xiodi.cn    Shutdown            Shutdown 4 minutes ago                      
m884or5qpns4        web_web.4           nginx:1.13-alpine   c720132.xiodi.cn    Running             Running 3 minutes ago                       
t96zpspkrdll         \_ web_web.4       nginx:1.12-alpine   c720132.xiodi.cn    Shutdown            Shutdown 3 minutes ago                      
rlzj3jqdz6zc        web_web.5           nginx:1.13-alpine   c720132.xiodi.cn    Running             Running 3 minutes ago                       
q7vgy2b5ripc         \_ web_web.5       nginx:1.12-alpine   ubuntu              Shutdown            Shutdown 3 minutes ago                      
ntzku0o2fdh9        web_web.6           nginx:1.13-alpine   c720131.xiodi.cn    Running             Running 3 minutes ago                       
lkrxparc8y5x         \_ web_web.6       nginx:1.12-alpine   c720131.xiodi.cn    Shutdown            Shutdown 3 minutes ago                      
l2j1mml2c21e        web_web.7           nginx:1.13-alpine   ubuntu              Running             Running 4 minutes ago                       
0nw5y74ow3vc         \_ web_web.7       nginx:1.12-alpine   ubuntu              Shutdown            Shutdown 4 minutes ago                      
tdvpcny3zjf8        web_web.8           nginx:1.13-alpine   c720131.xiodi.cn    Running             Running 3 minutes ago                       
wpsn04qxzy0a         \_ web_web.8       nginx:1.12-alpine   c720131.xiodi.cn    Shutdown            Shutdown 3 minutes ago                      
nkkjxxq9xos1        web_web.9           nginx:1.13-alpine   ubuntu              Running             Running 3 minutes ago                       
qcernrxbachq         \_ web_web.9       nginx:1.12-alpine   ubuntu              Shutdown            Shutdown 3 minutes ago                      
px1bxz2omzfq        web_web.10          nginx:1.13-alpine   c720132.xiodi.cn    Running             Running 3 minutes ago                       
kd5dbexndk61         \_ web_web.10      nginx:1.12-alpine   c720132.xiodi.cn    Shutdown            Shu

 

(5)执行下列命令,移除stack.

xiodi@c720131:~/docker$ sudo docker stack rm web
Removing service web_web
Removing network web_default

 

(6)如果部署单一的服务的话,可以使用以下命令设置新的一些rolling update值。

xiodi@c720131:~/docker$ sudo docker service create --name web \
> --replicas 10 \
> --update-parallelism 2 \
> --update-delay 10s \
> nginx:alpine


推荐阅读
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 1.创建目录mkdir-phomerocketmqnamesvr1data&&mkdir-phomerocketmqnamesvr1log&&mkdir-phomerocketm ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 本文将详细介绍如何在Webpack项目中安装和使用ECharts,包括全量引入和按需引入的方法,并提供一个柱状图的示例。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
author-avatar
翟志军2502905177
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有