开两个 docker,一个是主 server,一个临时 server,都映射到同一个 rails 目录。
在更新代码之前:
1、启动临时server 2、启动成功后修改nginx的配置文件,把端口转发到临时server,然后nginx -s reload,用临时server提供服务 3、更新代码 4、重启主server 5、等主server启动后,再把nginx的配置文件改回来,把端口转发改回主server,然后nginx -s reload,至此代码更新完毕。
k8s rolling update 了解一下
运维有点费劲
Rolling restart
app, app_backup 两组 Container
Nginx proxy 将 app 优先级提高,fallback 到 app_backup
部署重启的时候先重启 app,断掉的时候会自动切到 app_backup
等 app 启动好以后再重启 app_backup