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

小老外想用 kubernentes,元芳,你怎么看?

  •  
  •   amanbolatbalabek ·
    amanbolat · 2017-07-21 21:37:40 +08:00 · 5035 次点击
    这是一个创建于 2689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想问问大家有木有人在实际工作中使用 kubernetes+docker 或者 rkt ? 由于我们公司系统国内国外都有人在用,但是目前只有一个服务器在国内,外国客户访问有时候都连不上,延迟台大。所以有了个想法在亚马逊 AWS 欧洲 /美国区域和亚洲地区再加中国地区做 3 个 kubernetes cluster, 都在 coreos 上。每个地区加一个 load balancer,然后再设置 Route 53 geo dns,这样的话一个域名下可以有三个 ip 地址,人家访问时会连接到最近的服务器。

    总结下我的目标:

    1. 世界各地访问速度要快
    2. 不能用 cache,数据要最新
    3. 把以前的系统改成 microservices
    4. 价格低

    有几个问题:

    1. 想用 postgres 数据库但是不知道在这种环境下怎么保证同不性?
    2. 你们觉得这种方案如何?
    3. 有木有实际案例?
    4. 可以推荐更好的方案吗?

    *原来考虑 docker swarm 或者亚马逊的 ECS 但据说没有 kunernetes 那么成熟。

    *有些英文词汇不知道中文怎么说,请谅解。

    21 条回复    2017-07-22 19:49:55 +08:00
    cloverstd
        1
    cloverstd  
       2017-07-21 22:29:20 +08:00
    你需要 CDN

    你是要三套 独立的 k8s cluster,还是三个 k8s cluster 是一套 master,node 归这一套 master 管理
    amanbolatbalabek
        2
    amanbolatbalabek  
    OP
       2017-07-21 22:37:38 +08:00 via iPhone
    @cloverstd
    1. CDN 不是为了会缓存静态数据吗?我要的是客户连接最近的服务器然后通过 websocket 跟服务器交接。
    2. 要 3 个独立的 cluster
    stabc
        3
    stabc  
       2017-07-21 22:40:28 +08:00
    你也在网上冲浪啊?!
    lightening
        4
    lightening  
       2017-07-21 22:43:37 +08:00
    这和你用不用 k8s 没什么关系。国外部署 stateless 的 app instance 不管用什么方法都行。主要问题在数据库的同步。
    amanbolatbalabek
        5
    amanbolatbalabek  
    OP
       2017-07-21 22:55:37 +08:00 via iPhone
    @lightening
    我已经把很多后台的的 app 做成 docker 了,有比 k8s 更好的管理工具吗?
    这个也不能说是 stateless,我考虑每个 cluster 里面加个数据库的 replica。
    lightening
        6
    lightening  
       2017-07-21 23:35:57 +08:00 via iPhone
    @amanbolatbalabek 没有更好的。我只是说相对于数据库的 replica 问题来说,用不用 docker 和 k8s 都是小事。
    derek80
        7
    derek80  
       2017-07-21 23:50:20 +08:00 via Android
    我们用了两个 k8s, 在产品环境。网络,存储,健康监控,日志收集等等,虽然每个都有很多选择方案,但是完全维护到产品级还是要花不少时间和精力。
    derek80
        8
    derek80  
       2017-07-21 23:51:00 +08:00 via Android
    数据库的确是比较麻烦些,我们是直接用 RDS
    chenai
        9
    chenai  
       2017-07-21 23:54:07 +08:00
    github 现在都已经在用 k8s 了,大势所趋,哈哈哈
    hantsy
        10
    hantsy  
       2017-07-21 23:59:32 +08:00   ❤️ 2
    1. 上微服务如果 DevOps 不到位,简直是灾难,不要浪费精力盲目跟从。

    我看到国内不少人直接上 Spring Cloud,自称实现微服务,运维却还停留在写 Bash 之类阶段,就如高铁用牛来拉。

    没有做到所有的服务管理,发布,维护全部自动化,如果服务数量到了一两百,加上多分 Replica, 容器数量两三百的时候,就寸步难行。

    同时数据存储切分也是微服务的一部分。

    2. 从描述看,应该在数据同步的一些问题上(而不是微服务)。全球多区域的情况,从可靠性上讲只有 AWS 靠谱,基础架构的东西一应俱全,,,别自己折腾这些基础的容器问题了。最近 Azure 也在抢风头,不过没有用过。AWS 也支持 Docker Swarm, 而且可以用 Docker Cloud ( Docker 官方平台,需要购买) 去统一管理服务。

    3. 目前 K8s 的使用是上升趋势,用的人越来越多,同时也有很多成熟的 Cloud 方案也支持 K8S,如 OpenShift,Bluemix 等。

    4. 除 Docker Swarm,Kubernetes 外,可以试用一下 Apache Mesos 或者商业的 Mesophere, 实际这个资格更老一些。
    travelforlove
        11
    travelforlove  
       2017-07-22 00:27:32 +08:00
    又要价格低又要速度快真以为 ISP 都是傻的啊,
    正规的跨国公司一般都拉专线,
    正规的穷公司一般用 cn2。
    amanbolatbalabek
        12
    amanbolatbalabek  
    OP
       2017-07-22 00:44:00 +08:00 via iPhone
    @travelforlove
    我们公司小,没有钱拉专线,但是要满足国内 /外客户和自己员工的需求。
    PythonAnswer
        13
    PythonAnswer  
       2017-07-22 00:46:02 +08:00
    中亚市场怎么样啊,互联网行业,想学学。还有 5 国之间的关系怎样呢,听说互相有仇?
    ypcs03
        14
    ypcs03  
       2017-07-22 07:11:36 +08:00 via Android
    为啥不用现成的 ECS,省得自己要去部署和维护。
    jyf007
        15
    jyf007  
       2017-07-22 08:24:10 +08:00
    @hantsy 我是拉高铁的牛
    mritd
        16
    mritd  
       2017-07-22 09:22:01 +08:00 via iPhone
    哈哈 又是你,你这中文 10 级真让我感叹,我记着 k8s 是可以建立跨区域的联邦集群的,这样可以整合 3 个集群到一起,静态文件的话可以全部套上 CDN,至于访问业务可以根据你的办法,不过最好预先测试一下,还有,我不建议讲数据库放到集群内,第一是没有多大意义,第二是可能影响性能,还有就是出问题可能不好维护
    hantsy
        17
    hantsy  
       2017-07-22 11:22:44 +08:00
    @jyf007 辛苦了
    jyf007
        18
    jyf007  
       2017-07-22 11:26:56 +08:00
    @hantsy 还有我临座的有为老黄牛
    xdays
        19
    xdays  
       2017-07-22 12:41:42 +08:00
    k8s 不是问题,多个 cluster 做个 federation 即可。问题的核心还是跨 wall 的数据同步,目前还没有见过快速且可靠的方案。
    amanbolatbalabek
        20
    amanbolatbalabek  
    OP
       2017-07-22 13:46:13 +08:00 via iPhone
    想用 k8s 的原因是做这个项目的同时学习 orchestrstion,而 k8s 比 ecs、swarm 的技术要靠谱、丰富些,再说可以全部自己调试。
    需要三个独立的 cluster 的原因是每个地区微服务会有些不同、不是统一的,只有数据库是一样的(比如俄罗斯财务后台和前端和中国地区不一样)。不知道我的这些想法正不正确,现在只是计划阶段而已。
    在公司都是我一个人来做的,所以想问问大家的看法和建议!
    gemini
        21
    gemini  
       2017-07-22 19:49:55 +08:00
    1.其实你们这个场景跟 k8s 关系不大。k8s 只是交付部署层面的问题。
    2.用 pgsql 跟用其他 db 效果一样,遇到的问题也是类似的。
    3.如果没有用户信息管理之后的数据,楼主方案中的架构也是可以的。如果涉及到用户登录、分区等,需要更复杂些的方案。

    业务规模和服务请求量级、需要同步的数据量级,也是方案的一个重要参考。不清楚楼主的这些信息,不好给建议。如果量小,简单 replica 能满足需求。不常来,可以私信微信交流。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2716 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:32 · PVG 15:32 · LAX 23:32 · JFK 02:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.