2

成本翻倍,部署复杂!为什么要停止使用Kubernetes

 1 year ago
source link: https://blog.csdn.net/csdnnews/article/details/129575147
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
aac70b6c7759d7f5d7f6581cf1bae6de.gif

【CSDN 编者按】如果你正在犹豫是否使用 Kubernetes,请仔细衡量优缺点,认真做比较。

原文链接:https://thetechtrailblazer.blog/2023/02/14/dont-use-kubernetes-please/

未经授权,禁止转载!

作者 | aly kafoury    译者 | 弯月

出品 | CSDN(ID:CSDNnews)

我在软件行业摸爬滚打了十余年,形形色色的角色都担任过。以前,遇到一些新兴的工具,人们会认真比较优缺点,而如今却变成了无脑跟着潮流走。

Kubernetes 就是其中之一。如今,在 Kubernetes 上托管应用程序已成为部署应用程序的标准,而无论 Kubernetes 能否带来切实的好处。我希望通过本文,说明使用 Kubernetes 的缺点, Kubernetes 对软件开发周期的破坏、成本的增加,以及对敏捷性的负面影响,从而唤醒软件行业的理智。

e759e42e9e14b67b510adfb84771d426.png

使用 Kubernetes 会导致成本增加

假设你是一家中小型初创公司,你的应用程序由几个后端服务、一个数据库、一个缓存服务和一个负载均衡器组成。这个设置包括 2 个托管服务(数据库和缓存)、6 个用于后端服务冗余的小型机器和 2 个负载均衡器(如果正常部署到云的话)。

如果在这个配置中加入 Kubernetes,则仅仅是为了运行额外的sidecar,就不得不使用两倍的机器:三台机器运行Kubernetes的控制平面,另外三台运行etcd集群,同时还需要添加多个内部服务,比如Ingress控制器以及日志和指标收集。

虽然加入 Kubernetes 会导致你的成本翻倍,但实际上对于中小型企业来说,你根本使用不了 Kubernetes 的任何功能。

d3e660b28ffc8e386642564ba185eeb1.png

Kubernetes 的部署非常复杂

一般,正常的设置需要占用 CI/CD 工程师几天的时间,而调试与基础设施相关的问题用时不会超过一两个小时。

然而,Kubernetes 的部署需要渲染模板、设置 CI/CD 运行器、动态生成 kubeconfigs 以确保安全等,通常要占用 CI/CD 工程师不少于一个月的时间才能准备好生产级的环境。为了调试错误,你可能需要花费数天时间来弄清楚哪些涉及底层基础设施、哪些是 Kubernetes,而哪些关系到应用程序本身。我曾经花了 6 个小时调查为什么 CoreDNS 无法注册新服务,最后却发现只是一个非常小的错误。

16e0ee07a08de1849f476c3191dd4e33.png

Kubernetes 不稳定

由不同的维护者部署许多不同版本的组件,这个想法就注定了 Kubernetes 集群不可能没有错误,从网络 CNI 到控制器,再到自定义操作符,这些对象往往很容易破坏https。

把真实的网络组件封装后放在云的网络虚拟化中,只会让一切变得非常复杂。

ae69709525983e8a1ca52ae43bdc2adc.png

版本管理困难

跟踪集群上部署的所有组件的所有版本需要耗费大量时间。你需要投入一个专职工程师来维护第三方平台上的配置,还需要处理由于更新引发的各种故障。

988769a848d35cc7ecde0f3f5dcb5eed.png

DevOps 工程成本飙升

如果你选择了面向那些资金充裕、不在乎 Kubernetes 带来额外成本的大型企业方案,那么成本飙升是必然的。

c89fa04aae97587bc16c523ac411ab84.png

 受攻击的范围更大

Kubernetes 有其自身的安全漏洞,因此会导致你的应用程序的受攻击的范围翻倍。你是否有预算雇佣安全工程师来处理这个问题,还是说你只有一位 DevOps 工程师,采纳 Kubernetes 后,工程师需要承担更多的安全工作?

Kubernetes 攻击每天都在发生,管理它们并非易事。长期来看,最终你还是需要聘请一名安全工程师来保护这些没有必要的技术栈。

11f01c2f63b80ca7a091ce7fc15e5263.png

总结

我希望通过这篇文章,让大家看到一些疯狂的技术决策趋势,这些决策只是盲目跟风,并没有太大受益。

最后,如果你正在犹豫是否使用 Kubernetes,请仔细衡量优缺点,认真做比较。

48d1f4ac0eec8f8f457a4c34e8945282.gif

0d1d390b3f70eda78de97e3afa870938.jpeg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK