Kubernetes 的 5 个误区

15,762

CNCF 在 2021 年 12 月的报告中显示,目前已经有 560 万开发人员在使用 Kubernetes 。因此,有必要向大家介绍一下对 Kubernetes 的五个常见认识误区。

1. Kubernetes 很难学

著名的未来学家阿尔文·托夫勒(Alvin Toffler)提出了一个观点:“21 世纪的文盲不是那些不会读写的人,而是那些无法自主学习的人。”

Kubernetes 与 AWS、Google 和 Azure Cloud 的定位是不同的,开始使用 Kubernetes 的阻碍因素更多的是不学习而不是学习。与三大云供应商的 PaaS 产品服务不同,Kubernetes 使用声明性模型抽象和控制底层基础设施。

过去的时候,设置和操作 Kubernetes 很困难。现在,托管 Kubernetes 提供商的价格非常实惠。在正式决定是否使用 Kubernetes 之前,可以考虑避免自己管理 Kubernetes。

2. 不需要 Kubernetes

根据以往的经验,重新搭建平台或者重构服务代码以应对大规模并发的最糟糕的时间就是当问题出现的时候。当这种情况发生时,后果是很严重的。其实,大家更应该关注的是何时而不是为什么应该使用 Kubernetes。

现在,Kubernetes 是运营成本相对较低的技术之一,并且可以随着客户群的增长而变化。尽管最开始的时候,由于应用程序简单并且客户负载较低,不需要使用 Kubernetes,但是依然部署了,总好过之后需要时再重构代码要来得方便。

3. 你需要一个用于 Kubernetes 的 Heroku

构建可扩展的云平台需要有基础的设施和管道,而这属于基础业务范畴,并不具备战略意义。在 Kubernetes 之上引入一个易于使用的管理层会为未来简化一些学习成本,此时不仅需要面临重构平台的挑战,还面临着组织培训的挑战。

判断 Kubernetes 是不是合理的标准就要看它有没有让繁琐、重复、脆弱的任务变得更容易、更快、更简单。

4. Docker 为开发者,Kubernetes 为 Ops

在开发过程中,技术团队最喜欢使用本地运行的 IDE 和调试器等工具。面对架构复杂的产品时,开发人员就需要在本地模拟最小闭环的生成环境。但这也会导致一个问题,就是一个功能可能在本地调试环境是好的,但是在生产环境中却存在问题。如果使用 Kubernetes 容器模拟的环境就可以避免这个问题。

虽然 Kubernetes 容器模拟环境不可能 100% 等同于生产环境,但开发团队应该努力减少本地环境、预生产环境和生产环境之间的差异,这对团队生产力、软件质量和安全性都有积极的影响。

5. 必须在 Kubernetes 中运行一切

容器是交付和扩展工作单元的强大工具,它们可以作为混合技术的一部分。因此,不要求把所有的服务都运行在 Kubernetes 环境中,可以分阶段或者混合应用的方式搭建符合自己业务需要的架构形式。