一个很难的技术问题,如何在 docker 的集群上 开发 测试

2017-06-02 22:58:54 +08:00
 firefox12
目前有一个想法,希望做一个基于 docker 集群的 开发 测试 系统,但是有一个问题 觉得很难解决。


以下场景为假设

有 3 台主机 分别是 A B C, 上面已经安装了 docker 和 相应的 docker 镜像,A 为接入主机,上面有个 nginx ,所有访问通过它 进行

目前 我有一个小的团队,我需要开发一个小的 web app, 比如就叫 webshow 项目吧

web show 项目 由 3 个部分组成 第一个是一个 php 的 web 前端 假设为 主机 php.webshow.com
一个为 api 模块 假设为 api.webshow.com
最后一个是 静态文件 模块 假设为 cdn.webshow.com

现在的要求是如何在这个系统里多次部署这套系统呢?

比如 用户 a , checjkout 一套 代码 build 了最基本的系统, 然后部署了,最终 我把 3 套模块分别 装载在 3 个 docker 里运行。比如 php 运行在 A 主机 100 号端口 api 运行在 B 主机 200 号端口 cdn 运行在 C 主机 300 号端口
在入口 A 主机的 nginx ,做 3 个 upstream , 那么就好了。

如果此时 用户 b checjkout 一套 代码 修改了一些代码, 重新编译了一下 然后部署
最后结局 第二套系统 的 php 运行在 A 主机 101 号端口 api 运行在 B 主机 201 号端口 cdn 运行在 C 主机 301 号端口

目前第二套系统是运行起来了,但是相互之间无法联通的。因为 A 主机不知道该如何做定向,

能想到的解决方案
1. 每次发布前, 对域名进行改变 比如 第一次部署 就叫 001.php.webshow.com 001.api.webshow.com 001.cdn.webshow.com, 这样是可以的, 当然访问系统 也从访问 php.webshow.com 变成了访问 001.php.webshow.com . 同时这意味着 开发者需要修改内部的代码,把所有的域名都改掉,本来是访问 api.webshow.com 的服务,这下要改成 001.api.webshow.com 002.api.webshow.com。 如果系统很庞大,这样每次部署前修改基本是不可控的。


目标,同一套系统 可以多次运行在这个集群上,从外部可以直接访问。不知道有什么好的设计方案吗?
1448 次点击
所在节点    程序员
2 条回复
blindpirate
2017-06-07 12:43:48 +08:00
你需要 kubernetes
firefox12
2017-06-08 09:45:58 +08:00
是的, 我以为靠 默认网络模式可以绕过去,现在发现必须用 k8s 这样的方法

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

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

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

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

© 2021 V2EX