当前位置:数码通 > 摄影

不使用 Kubernetes 发行版的 5 个理由

来源于 数码通 2023-10-02 14:20

目前很多公司都基于Kubernetes封装了自己的商业Kubernetes发行版,丰富了开发生态,为开发者提供了更多选择。

最近有人建议,发行版选择总体上需要较少的精力和专业知识,但出于多种原因,组织实际上应该考虑原生 Kubernetes。

为了帮助大家理解,我先介绍一下文章中“Vanilla Kubernetes”这个术语。 Vanilla Kubernetes 指的是纯粹的、原生的 Kubernetes。一般还有 Vanilla JavaScript / Vanilla Linux 等用法,指的是原生 JavaScript 或 Linux,而不是他们的。方言版本或发布版本。

作者:克里斯托弗·托齐

原文:5 Reasons Not to Use Kubernetes Distributions》

Kubernetes 发行版可能无法为组织节省他们认为的时间和金钱。

部署 Kubernetes 主要有两种方式。一是选择数十家软件公司开发的 Kubernetes 发行版之一;另一种是通过 Kubernetes 官方源码自行安装 Vanilla Kubernetes,即原生 Kubernetes。

传统观点认为,很多时候,使用原生 Kubernetes 并不是一个好主意。大多数人会说,除非您是 Kubernetes 开发人员并且想要使用核心代码,否则最好使用提供完整安装和部署服务的发行版。这在过去可能是个好建议,但现在我们有更充分的理由使用原生 Kubernetes 而不是发行版。

什么是原生 Kubernetes?

Native Kubernetes 是指原生未修改的 Kubernetes 版本,提供源码下载。

之所以称为原生版本,是因为软件行业有数十年的传统,当贴有“Vanilla”原生标签的软件部署到任何应用程序或平台时,就意味着它没有经过修改。正式版。同样,我们也会听到“原生Linux”,它指的是使用纯粹的、官方的Linux内核源代码构建Linux内核,这与Linux发行版中修改Linux内核程序不同。

与原生 Kubernetes 相对的是 Kubernetes 发行版,例如 Rancher、Red Hat OpenShift;或基于云的 Kubernetes 服务,例如 Amazon EKS。这些发行版采用核心开源 Kubernetes 代码并将其集成到更广泛的平台中,这些平台通常包括不属于 Kubernetes 本身的管理、监控和安全工具。其中许多平台还提供了简化 Kubernetes 安装过程的安装程序。

当 Kubernetes 发行版没有意义时

Kubernetes 发行版绝对有优势。我只是想推翻一个传统的观点:在95%的使用场景中,分布式Kubernetes比原生Kubernetes更适合。

以下是本机版本优于发行版本的 5 个原因:

1。 Kubernetes 不是 Linux,复杂度比较低

对于初学者来说,围绕原生 Kubernetes 的很​​多争议在于它是一个复杂的平台,很难从头开始安装和构建。

Linux 实际上比 Kubernetes 复杂得多。要从头开始构建一个可用的、基于 Linux 的操作系统,必须构建和安装数十个(如果不是数百个)单独的组件。

Kubernetes 包含大约十几个组件,其中一些是可选的,可以在您的空闲时间每天安装一次。但并非 Linux 发行版中的所有实用程序和应用程序都是如此。

选择 Linux 发行版的部分原因是通过发行版的包管理器更容易保持软件最新。同样,Kubernetes 发行版的优点之一是它比原生版本更容易更新。不过,由于 Kubernetes 中需要更新的组件少了很多,所以这个优势并不是那么明显。

2。 Kubernetes 发行版锁定生态系统

如果您使用 Kubernetes 发行版,您就会陷入该发行版周围的生态系统中。

虽然有时使用 Kubernetes 发行版在部署过程中也可以使用第三方开源软件,而且大多数 Kubernetes 发行版都有一些组件本身是开源的。

但是,在大多数情况下,发行版比本机版本更有可能依赖某些核心工具或依赖项。例如,如果您使用 OpenShift,您就会受到 各种组件的限制。如果您正在运行基于 AWS EK 或 Azure AKS 的基于云的 Kubernetes 发行版,那么您将被锁定在该云提供商的生态系统中。

如果您安装了本机 Kubernetes,您可以更自由地选择构建部署所需的组件。

3。使用 Kubernetes 发行版是有代价的

成本因素也值得考虑。大多数 Kubernetes 发行版都是由商业公司开发的,大规模运行需要花钱,尽管有些发行版确实为小型部署提供免费套餐。

当然,原生 Kubernetes 也有一定的货币成本。源代码可能是免费的,但您的工程师需要花时间管理和维护它。这个论点长期以来一直被引用为使用 Kubernetes 发行版的理由。

但是说到 Kubernetes,我不确定原生 Kubernetes 的人工维护成本是否一定高于发行版本的人工成本。因为无论你如何部署,即使你使用发行版,你都需要支付工程师大量的钱来维护和监控部署的有效性。

此外,鉴于上述情况,Kubernetes 只有大约十几个组件,因此安装和设置不会浪费团队太多时间。从这个意义上说,简化安装过程的发行版并不会降低太多成本。

4。 Kubernetes 发行版可能会消亡

Kubernetes 仍然是一个非常年轻的平台。目前可用的大多数主流 Kubernetes 发行版都只有几年的历史,有些(例如 OpenShift)甚至最初并不是围绕 Kubernetes 构建的平台。

一些 Kubernetes 发行版(例如 Kontena Pharos)已经失败。 Kublr 和 Rancher 等其他几个项目是由已有 5-10 年历史的初创公司维护的。即使像IBM的发行版(指Red Hat OpenShift)或AWS的发行版这样的大型企业,在不知道的情况下也可以被杀死。

可以肯定地说,开源的 Kubernetes 项目会持续很长时间,使用release版本很可能会面临版本消失或被迫迁移到新版本的风险。

5。原生 Kubernetes 变得更易于安装和维护

最后,Kubernetes 已经取得了长足的进步,并且变得更加用户友好。

和大多数开源项目一样,Kubernetes 的早期发展非常坎坷。它犯了很多错误,没有完整的记录,集成通常只是工作的一半。因此,许多团队选择发行版来规避问题。

但今天,这些错误或多或少已得到修复,并且Kubernetes 的文档 在组织、导航和清晰度方面堪称典范。

结论

可以肯定的是,组织选择发行版的原因有很多,通常需要较少的精力和专业知识。但发行版也有缺点,例如需要较高的成本、较低的灵活性以及长期可用性的保证。

在开始安装 Kubernetes 发行版之前,请记住 Kubernetes 不是 Linux,并记得给原生 Kubernetes 一个机会。

登录后参与评论