是否有必要用 K8S

2021-06-02 20:29:40 +08:00
 beryl

公司是做 ToB 私有化部署,预估每个月有 5-10 个项目,产品加上中间件 大约十几个进程,有专门的交付同学,需要交付部署。现在方案是采用 docker 容器方式,准备上 K8S 。

但是老板今天质疑为什么要上 K8S,主要是两点:

  1. 多了 K8S, 部署的时候服务资源就要多占用,毕竟 K8S 本身也需要资源
  2. K8S 能够带来哪些显著收益

这两个问题也是自己在纠结的,同时也在想 K8S 能够带来什么,交付更快?

19722 次点击
所在节点    Kubernetes
109 条回复
leeyom
2021-06-03 17:40:57 +08:00
k8s 但是实际跑起来后,投入生产,确实挺方便的,扩充节点,下线节点,滚动更新,一把梭,目前我们用的是腾讯云的 tke,如果自己搭建 k8s 的话,运维成本确实很高
yalin
2021-06-03 17:45:56 +08:00
先熟悉传统同城双活和异地多活,再上 k8s 也不迟。开发团队人员和人员水平可以考虑 k8s
bdnet
2021-06-03 19:19:43 +08:00
私有部署,没有突发流量扩容场景,docker-compose 就够,确实不需要 k8s 。
beryl
2021-06-03 19:36:10 +08:00
@bdnet 但是想稳定性,监控运维,和多机器部署,配置和维护,也是需要成本的吧
defunct9
2021-06-03 20:04:36 +08:00
@lucays 可以协助上 k8s 。刚帮一家从 docker-compose 转换到 k8s
johnsona
2021-06-03 20:21:08 +08:00
@libook portainer 是 ui 界面吧 可以管理两台主机吗
firefox12
2021-06-03 22:41:55 +08:00
https://github.com/xiaojiaqi/deploy-microservices-to-a-Kubernetes-cluster 你需要这个,先入个门

如果是大公司,得利很多,小公司 ToB 可以多收钱啊。 建议学, 早 10 年 也许大家觉得 spring 复杂没必要,回头看 spring 占领了市场,回头看 k8s 也一样, 基本是标准配置了。 你逃不开。
sangs
2021-06-04 10:25:58 +08:00
@AlexEzio 你们目前还是只有 12 个 image 吗, 如果你们的项目有 52 个 image, 你对 k8s 私有化部署的态度还会是这样吗?

说下我对你回复的看法哈 (纯讨论)

[1] 部署效率与标准化(决定了交付速度,现金流的稳定)

使用 helm chart 一键拉起所有的应用. 有些时候因为应用启动顺序的问题, 做不到一键拉起. 我们现在项目 30 多个应用其实就做不到, 需要先拉起基础设施, 再拉业务应用, 大概 3~4 次拉起流程吧. 但是 3 次, 每次只需要执行 helm install 命令, 我认为很快啊. 我认为 k8s 的标准化和部署效率真的很高.

[2] 可维护性(决定了后续的维护成本)

可维护性的确是个问题, 需要客户或者自己团队有运维 k8s 的能力. 但是你后面也提到自己团队也搞了一个简单的部署系统, 但是这个部署系统再简单也是需要维护的. 对于客户来说, 一个是 k8s, 一个是乙方自建的系统, 我觉得客户会更容易接受 k8s, 对乙方自建的部署系统更加排斥吧 (因为出了问题不好找解决方案).

[3] 扩容,发布,cicd, 这些私有化都不需要

这一点是我最不认同的一点. 容器技术最大的优势就是能保证业务代码和基础设施在各个环境保持一致. 而 k8s 能够做到研发态和部署态一致. 虽然私有化部署以后很少升级, 但是研发态需要啊, 如果能够让研发态和部署态保持一致, 能少多少学习成本.
libook
2021-06-04 10:26:11 +08:00
@johnsona #86 是 UI,可以做为 K8s 的前端,如果不装 K8s 的话,本身就支持添加多台机器作为 Endpoint 分别进行管理,虽说此时没有集群管理的能力,但是比手打指令方便太多了,特别是给容器更新镜像的时候。
bdnet
2021-06-04 10:36:36 +08:00
@beryl #84 k8s 必然有很多优点,缺点在学习成本(能否驾驭 要不熟悉 遇到 BUG 没经验 估计难排查)

(这个场景 除了 k8s,ansible 等自动化工具也可以实现的)

在技术角度难免想用新技术,这是好事

站在老板角度考虑,首要考虑成本收益、风险承担,如果你准备好了,有一个 demo(先弄个 k3s),他或许会愿意给机会尝试
AlexEzio
2021-06-04 14:12:53 +08:00
@sangs
不要跳脱上下文噻,讨论是基于题主那个情况, 如果真有 52 个 image, 那项有化项目整体规模都不一样了,对应技术方案肯定是变化的。
另外我强调的几点, 是就题主这个情况,docker,和 k8s 私有化部署
1. docker 部署效率 > k8s 部署效率
2. docker 可维护性 >> k8s 可维护性
3. docker 私有化也是容器部署,不存在你说的生产研发不一致的情况,docker 和 k8s 对研发来讲都是一样的,最终部署都是一个 image,无非是 k8s 有更完善的扩容,抽象资源,调度机制。
OneMan
2021-06-04 14:16:17 +08:00
最多一个 docker,这个搞 k8s 就是加戏。。
746215017chen
2021-06-04 16:23:14 +08:00
我们之前也是用的 docker-compose 就行开发部署的后来改成了 k8s 的方案目前遇到下面几种情况
docker-copose 不增加机器的情况下部署的比较省事,只需要装 docker 和 docker-compose 不需要再装额外的东西,但是如果服务更新的时候无法平滑更新会有短暂的服务不可用,还有一点就是如果要临时多家几台机器的话,部署起来会比较麻烦,后台改了用了 k8s,首先解决了平滑更新的问题,更新的时候线上服务可以正常使用的,其次就是如果需要加机器的话只需要执行一次安装节点脚本将节点安装在新增的机器上,之后服务更新的时候就自动分散到多个节点中,也不不需要在配置环境变量之类的东西和代码配置的东西
beryl
2021-06-04 17:25:59 +08:00
@746215017chen docker-compose 在不加机器的情况下, 如果机器比较多,是不是也比较麻烦,要每台单独安装
momocraft
2021-06-04 17:41:28 +08:00
如果有 staging 先把这个换成 k8s 看看 不要
momocraft
2021-06-04 17:41:45 +08:00
>96

不要急着上 prod
locoz
2021-06-05 05:43:11 +08:00
@dayeye2006199 #32 绝了,这也行...
plko345
2021-06-05 16:54:19 +08:00
@calmzhu 可以简单的说下第 3 点吗?这个轮换是指
zhoujinjing09
2021-06-05 17:16:23 +08:00
是要去客户环境部署吗?那客户没 k8s 咋办?
hotsymbol
2021-06-05 21:17:30 +08:00
现在这个时代不上 k8s 简直就是原罪,就像某些老年人口中说的 不买华为你就不爱国一样,业界不上 k8s 就感觉要被时代淘汰了一样

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

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

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

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

© 2021 V2EX