Docker 技术:零停机切换与容器编排
1. 零停机切换技术
1.1 问题提出
在更新面向 Web 的应用程序时,我们希望实现零停机部署,避免用户在应用更新过程中无法访问服务。传统的简单切换方法,如移除旧容器并启动新容器,对于启动时间长或有高可用性要求的应用可能不够适用。
1.2 解决方案
使用 confd 和 nginx 进行两阶段切换,实现零停机部署。
1.3 具体操作步骤
1.3.1 启动旧应用
以 Python 内置的 Web 服务器为例,在 Ubuntu 容器中启动一个简单的文件服务器:
$ ip addr | grep 'inet ' | grep -v 'lo$\|docker0$'
inet 10.194.12.221/20 brd 10.194.15.255 scope global eth0
$ HTTPIP=http://10.194.12.221
$ docker run -d --name py1 -p 80 ubuntu:14.04.2 \
sh -c 'cd / && python3 -m http.server 80'
$ docker inspect -f '{
{.NetworkSettings.Ports}}' py1
map[80/tcp:[map[HostIp:0.0.0.0 HostPort:49156]]]
$ curl -s localhost:49156 | tail
通过上述命令,我
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



