Docker 生产环境自动化部署的问题

2019-06-27 17:37:22 +08:00
 dunhanson

之前项目的修改很少,所以都是我用原始的手动部署方式

现在不想这么整了,感觉好累、好繁琐。。。

docker hub 已经改成自建的私库了,也准备用 jenkins 自动化部署

我现在的想法是这样的,不知道有没有问题?

那么有问题如何回滚?

7435 次点击
所在节点    程序员
42 条回复
aoTao
2019-06-27 18:28:13 +08:00
制作镜像的时候,给镜像以版本信息(commitID 或者版本号)多打一个 tag,回滚的时候用指定版本的镜像启动容器是不是可以解决问题?不确定是不是你的场景~
xzYao
2019-06-27 18:34:09 +08:00
回滚代码,打新镜像,推上去。。。
wangkai123
2019-06-27 18:36:04 +08:00
portainer 有 webhook
rootww21
2019-06-27 18:36:37 +08:00
jenkins 参数化构建根据代码版本发布,回滚时只需要选择上一个正式版打包
cwlmxwb
2019-06-27 18:39:17 +08:00
华为云流水线了解下
luozic
2019-06-27 18:44:32 +08:00
Jenkins 各家大的 ci cd 平台都有打包 部署 k8s 集成一条龙
dunhanson
2019-06-27 19:16:51 +08:00
@aoTao 想了想好像确实可行
dunhanson
2019-06-27 19:17:19 +08:00
哈哈哈 准备不用 portainer 部署了
dunhanson
2019-06-27 19:19:09 +08:00
@rootww21 @luozic 搜嘎
dunhanson
2019-06-27 19:19:46 +08:00
pull 镜像难道就只有我说的那种方式?没有其它的了?
miyuki
2019-06-27 19:55:23 +08:00
rancher 1.x
Lpl
2019-06-27 19:59:56 +08:00
哪有直接 pull latest 的。大家都是更新一个服务,就给这个服务打个最新的标签。你 latest 回退都没办法搞
Lpl
2019-06-27 20:03:50 +08:00
我给你出个最简单的解决方案,也不用上编排工具。

1. 自建一个 registry
2. Jenkins 做自动构建并 Push Image 到 Registry 中
3. Jenkins 自动做远程更新。
这样子就不需要手动了,只需要手动改下要发布版本的 tag 就可以了。
ssoor
2019-06-27 20:17:56 +08:00
gitlab 有个全家桶,

gitlab , gitlab-runner

建议楼主可以了解一下 ,

我们公司就是用 gitlab 全家桶 + k8s 做的自动部署.

gitlab // 源代码管理
gitlab regisry // gitlab 自带有私有仓库, 开启即可
gitlab-runner // ci - 自动编译, 构建镜像, 更新 k8s
k8s // 自动扩缩容, 灰度切换, 快速回退

整个流程跑起来还是比较流畅的, 就是对 gitlab CD 这块接触不多, 直接使用 gitlab-runner 部署. 楼主的话, 可以只用全家桶, k8s 可以不上.

CD 这方面目前在调研 CD 系统,目前考虑用 spinnaker 来做 CD 或者基于 k8s 的 CRD 做自研.主要对于 CD 来说 spinnaker 太重了.
suom
2019-06-28 00:10:09 +08:00
k8s 3 台机器起步,保障高可用的话双集群也要 6 台机器,对小公司来说成本太高。

楼主思路其实蛮实用的。
其实回滚也好解决,需要回滚时,改 jenkins 的脚本指定一下镜像版本号就行。毕竟回滚这种事情不经常出现。
AlloVince
2019-06-28 00:14:14 +08:00
涉及到自动化部署了,上 k8s 是迟早的事,回滚就是一行命令。

可以参考我关于持续集成的文章

https://avnpc.com/pages/drone-gitflow-kubernetes-for-cloud-native-ci
viewsonic
2019-06-28 00:58:48 +08:00
@AlloVince 我看你工作经历不少啊, 为什么华尔街新闻关闭了?
abcdocker
2019-06-28 01:22:22 +08:00
不考虑试用一下 k8s 吗? 直接了解一下 k8s,prometheus 还有 grafana。 逼格多高,满足 spring cloud,我们公司的 zuul 和 eurek 就跑在 k8s 上。

abcdocker 运维博客
https://i4t.com/?

我这整理的都是生产环境,像 kubeadm 完全学不到啥东西,出了问题没法解决
viewsonic
2019-06-28 01:49:08 +08:00
@abcdocker 你的博客我收藏了,特别是 docker,正在认真研究...
xmlf
2019-06-28 06:23:49 +08:00
@abcdocker 老哥,你的博客用的什么主题?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578067

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX