V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firefox12
V2EX  ›  程序员

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

  •  
  •   firefox12 · 2017-06-02 22:58:54 +08:00 · 1517 次点击
    这是一个创建于 2730 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前有一个想法,希望做一个基于 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。 如果系统很庞大,这样每次部署前修改基本是不可控的。


    目标,同一套系统 可以多次运行在这个集群上,从外部可以直接访问。不知道有什么好的设计方案吗?
    2 条回复    2017-06-08 09:45:58 +08:00
    blindpirate
        1
    blindpirate  
       2017-06-07 12:43:48 +08:00
    你需要 kubernetes
    firefox12
        2
    firefox12  
    OP
       2017-06-08 09:45:58 +08:00
    是的, 我以为靠 默认网络模式可以绕过去,现在发现必须用 k8s 这样的方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2452 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:41 · PVG 23:41 · LAX 07:41 · JFK 10:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.