K8S

是否有必要用 K8S

发布于 2021-06-05 09:51:44

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

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

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

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

查看更多

关注者
0
被浏览
958
6 个回答
calmzhu
calmzhu 2021-06-05
这家伙很懒,什么也没写!

有下面需求 建议上 k8s 。下面需求都可以自己二开实现,但是工作量不比维护 k8s 少。
k8s 的定义是云操作系统,不是基础硬件设施。操作系统上开发应用总比裸机方便。

1.CD 持续部署,k8s 自带机制可以省很多事情。比如蓝绿部署减少当机时间;测试开发过程中防止单个应用部署失败造成其他人工作中断。

2.多个环境的频繁创建维护,甚至动态部署一套全新的应用。

  1. 配置以及密码的集中管理和密码的定期轮换
  2. 可视化展示交互需求。比如获取应用状态信息。k8s 本身 api 交互就比 docker compose 方便
djoiwhud
djoiwhud 2021-06-05
这家伙很懒,什么也没写!

面向练手编程。

应届生:什么新,什么高大上,怎么搞。毕竟只看一下博客写高大上的技术心里没底。搞黄了企业可以再找工作 double 一下。
老员工:什么简单稳定用什么,毕竟瞎搞公司黄了要找工作。

dayeye2006199
dayeye2006199 2021-06-05
这家伙很懒,什么也没写!

给你老板看看这个:F16 战斗机里面跑 k8s - https://www.cncf.io/blog/2020/05/07/with-kubernetes-the-u-s-department-of-defense-is-enabling-devsecops-on-f-16s-and-battleships/

如果你们交付都在一台机器上,只是想用容器,推荐 docker-compose ;
如果你们需要在私有网络内多机部署,推荐轻量级 k3s
如果你们在公有云上部署,推荐云厂商提供的 managed k8s

k8s 的一些好处:

  • 持续交付速度比较快,原生支持 zero downtime 部署
  • 原生支持配置中心
  • 周边生态比较丰富,如果需要动态服务伸缩,监控,日志等服务,都有比较成熟的周边产品

但推荐至少团队里面得有一个老司机对这块比较熟悉,否则至少得做一下 POC,一下直接上生产环境,在 deadline 的逼迫下会比较挣扎。

sangs
sangs 2021-06-05
这家伙很懒,什么也没写!

巧了, 我也是做交付的 (可以加个好友). 目前在用 k8s. 呃, 一直都是 k8s, 就没用过别的.

k8s 的优势:
[1] 使用 helm chart 一键拉起整套环境 (我们有 30 多个应用)
[2] 可以使用 helm chart 应用商店, 可以
[3] 公私有云下, 都可以直接购买 k8s
[4] k8s 带界面, 可以使用 k8s-dashboard, rancher 或者云服务控制台的界面, 对于研发来说, 更新代码非常迅速
[5] CI/CD 方便, 写完代码, 直接提交到 gitlab, 驱动 jenkins 打包, 直接推送到 k8s 集群

k8s 的劣势:
[1] 维护成本高, 门槛高. 想象一下, master 节点报错了, 你们运维不知道怎么处理, 老板慌不慌. 我们是配有 k8s 专家的, 所以这个问题不是很大
[2] 本身需要资源 至少需要 2 台 4c8g 的. 这个每年得多花 1 万块钱吧. 我们 toB 的都是大客户, 对价格不敏感, 这点钱不算啥

我认为, 10 个应用以内用 docker-compose 吧, 反正简单, 随便搞都行. 10+ (像我们 30+) 应用的, 只能用 k8s 了

AlexEzio
AlexEzio 2021-06-05
这家伙很懒,什么也没写!

ToB 交付老油条(4 年经验)来回答:
就你目前所说的信息,完全没有必要上 k8s.
k8s 的优势在私有化部署中并不明显,因为运维成本高,而且不可控,不是所有客户都玩得转 k8s, 而且你评估下一个客户一个 k8s 的维护量?
私有化部署最重要的两点:

  1. 部署效率与标准化(决定了交付速度,现金流的稳定)
  2. 可维护性(决定了后续的维护成本)

在这两点上,k8s 私有化都只有缺点。
k8s 的优势在于应用的 zero downtime,扩容,发布,cicd, 这些私有化都不需要,私有化更新的频率,可能是一个月,基于半年,一年一次。

你这种场景,我之前也设计过部署方案,就是一套 docker-compose 搞定(我司当时是 12 个左右的 image)。定义好 docker entrypoint, 配置变量放在 env 文件里,初始化时脚本替换一下,加下 docker 自带的容器发现,很容易几分钟之内就部署好一套标准的环境出来。

配合上 ansible, 自己二开的 compose 配置平台, 能轻松实现部署,监控,预警,自动发布的效果。

另外,k8s 私有化是什么场景? 都是针对金融,银行机构,做容器平台私有化,像 daocloud, 青云这种,都有相关的业务,一个项目就是上亿,这种都需要客户自己有专业的运维,开发团队的。

wandehul
wandehul 2021-06-05
这家伙很懒,什么也没写!

我是运维,我现在已经不想去没有 k8s 的公司了,累!

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览