在开发环境中,我使用了一个docker-compose.yml文件,其中列出了我需要的所有容器。
此外,我还有一个集中式的git、Jenkins服务器和另一个服务器,我将在这里同时进行准备和生产。
因此,问题是如何更好地组织部署过程。
现在,git服务器端的git push触发一个Jenkins构建作业。将根据分支名称(暂存或生产)触发不同的作业。
构建作业使用坞-组合来启动整个环境并运行测试。那么,如何将新容器推送到分阶段/生产环境?
一种方法是将它们推到私有或公共码头注册中心,但是在生产中更新容器的最佳做法是什么呢?詹金斯服务器应该只运行ssh并运行原始的kill、rm、pull和run命令吗?我没有看到任何例子。
发布于 2017-04-18 14:31:38
库伯内特斯、码头工人群或牧场可能是实现所谓滚动更新的最佳方式。
基本上,滚动更新将接受容器的集合(称为服务)并逐个更新它们。因此,假设您有三个容器运行您的应用程序,一个滚动更新程序将删除第一个容器并更新它,以此类推,直到服务完全更新。这意味着,当这些产品中的负载平衡器是智能的,并且不会重定向到更新容器时,应用程序的停机时间实际上是零的。
此链接为您提供了运行服务并更新服务的群集的基本实现。
对于一些最简单的设置和实现,在我的经验中,Rancher是一个很好的起点来掌握所有这些概念。它基本上是像Kubernetes这样的不同Docker技术的接口。
牧场主网站
https://serverfault.com/questions/692980
复制相似问题