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

2017-07-21 21:37:40 +08:00
 amanbolatbalabek

想问问大家有木有人在实际工作中使用 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 那么成熟。

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

5027 次点击
所在节点    程序员
21 条回复
cloverstd
2017-07-21 22:29:20 +08:00
你需要 CDN

你是要三套 独立的 k8s cluster,还是三个 k8s cluster 是一套 master,node 归这一套 master 管理
amanbolatbalabek
2017-07-21 22:37:38 +08:00
@cloverstd
1. CDN 不是为了会缓存静态数据吗?我要的是客户连接最近的服务器然后通过 websocket 跟服务器交接。
2. 要 3 个独立的 cluster
stabc
2017-07-21 22:40:28 +08:00
你也在网上冲浪啊?!
lightening
2017-07-21 22:43:37 +08:00
这和你用不用 k8s 没什么关系。国外部署 stateless 的 app instance 不管用什么方法都行。主要问题在数据库的同步。
amanbolatbalabek
2017-07-21 22:55:37 +08:00
@lightening
我已经把很多后台的的 app 做成 docker 了,有比 k8s 更好的管理工具吗?
这个也不能说是 stateless,我考虑每个 cluster 里面加个数据库的 replica。
lightening
2017-07-21 23:35:57 +08:00
@amanbolatbalabek 没有更好的。我只是说相对于数据库的 replica 问题来说,用不用 docker 和 k8s 都是小事。
derek80
2017-07-21 23:50:20 +08:00
我们用了两个 k8s, 在产品环境。网络,存储,健康监控,日志收集等等,虽然每个都有很多选择方案,但是完全维护到产品级还是要花不少时间和精力。
derek80
2017-07-21 23:51:00 +08:00
数据库的确是比较麻烦些,我们是直接用 RDS
chenai
2017-07-21 23:54:07 +08:00
github 现在都已经在用 k8s 了,大势所趋,哈哈哈
hantsy
2017-07-21 23:59:32 +08:00
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
2017-07-22 00:27:32 +08:00
又要价格低又要速度快真以为 ISP 都是傻的啊,
正规的跨国公司一般都拉专线,
正规的穷公司一般用 cn2。
amanbolatbalabek
2017-07-22 00:44:00 +08:00
@travelforlove
我们公司小,没有钱拉专线,但是要满足国内 /外客户和自己员工的需求。
PythonAnswer
2017-07-22 00:46:02 +08:00
中亚市场怎么样啊,互联网行业,想学学。还有 5 国之间的关系怎样呢,听说互相有仇?
ypcs03
2017-07-22 07:11:36 +08:00
为啥不用现成的 ECS,省得自己要去部署和维护。
jyf007
2017-07-22 08:24:10 +08:00
@hantsy 我是拉高铁的牛
mritd
2017-07-22 09:22:01 +08:00
哈哈 又是你,你这中文 10 级真让我感叹,我记着 k8s 是可以建立跨区域的联邦集群的,这样可以整合 3 个集群到一起,静态文件的话可以全部套上 CDN,至于访问业务可以根据你的办法,不过最好预先测试一下,还有,我不建议讲数据库放到集群内,第一是没有多大意义,第二是可能影响性能,还有就是出问题可能不好维护
hantsy
2017-07-22 11:22:44 +08:00
@jyf007 辛苦了
jyf007
2017-07-22 11:26:56 +08:00
@hantsy 还有我临座的有为老黄牛
xdays
2017-07-22 12:41:42 +08:00
k8s 不是问题,多个 cluster 做个 federation 即可。问题的核心还是跨 wall 的数据同步,目前还没有见过快速且可靠的方案。
amanbolatbalabek
2017-07-22 13:46:13 +08:00
想用 k8s 的原因是做这个项目的同时学习 orchestrstion,而 k8s 比 ecs、swarm 的技术要靠谱、丰富些,再说可以全部自己调试。
需要三个独立的 cluster 的原因是每个地区微服务会有些不同、不是统一的,只有数据库是一样的(比如俄罗斯财务后台和前端和中国地区不一样)。不知道我的这些想法正不正确,现在只是计划阶段而已。
在公司都是我一个人来做的,所以想问问大家的看法和建议!

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

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

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

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

© 2021 V2EX