时至今日,通过 Kubernetes 编排容器化应用程序已经成为绝大多数人的第一选择,Kubernetes 可以帮助用户轻松实现企业级部署。但是,在安装 Kubernetes 之前,你还需要再了解一件事:Kubernetes 发行版。绝大多数情况下,用户不会直接从源代码中安装 Kubernetes,而是在软件公司和云供应商提供的众多 Kubernetes 发行版中进行选择。
那么,什么是 Kubernetes 发行版?当前又有哪些出众的 Kubernetes 发行版呢?
什么是 Kubernetes?
在讨论 Kubernetes 发行版之前,我们先来回顾一下什么是 Kubernetes。
Kubernetes 是一个用于容器编排的开源平台,它使容器部署应用程序所需的许多任务实现了自动化,包括启动和停止单个容器,以及确定集群中的哪些服务器应当承载哪些容器。如果你还想了解更多关于 Kubernetes 的基础知识,欢迎查阅以下文章:
再也不用担心学不会K8S!17个K8S初学者必须掌握的知识点
Kubernetes 是容器生态系统中的其中一个容器编排平台,另外两个容器编排工具分别是 Docker Swarm 和 Mesos Marathon,在本文中我们不会详述。当我们提及容器编排平台时,我们首先想到的是 Kubernetes——因为 Kubernetes 享有最高的市场关注度,或许还占有最大的市场份额。
什么是 Kubernetes 发行版?
作为一个开源项目,用户可以在 GitHub 上免费获取 Kubernetes 的源代码。任何人都可以使用这个源代码在自己选择的基础架构上下载、编排和安装 Kubernetes。然而,大多数想要安装 Kubernetes 的人并不会选择下载和编排源代码,主要有如下三方面的原因:
费时费力: Kubernetes 源代码数量非常庞大,从头开始构建它们需要花费大量的时间和精力。另外,无论你什么时候要更新安装,都必须重新构建所有内容。
多组件: Kubernetes 不是单一应用程序,而是一套不同的应用程序和工具。如果你从源代码安装它,那么你必须在构建 Kubernetes 集群的所有服务器上分别安装这些组件。
配置复杂: 由于 Kubernetes 没有安装向导或是自动配置脚本,因此你还必须手动配置 Kubernetes 的所有组件。
大多数人选择 Kubernetes 发行版来满足他们的容器编排需求。Kubernetes 发行版是一个提供了预先构建版本的 Kubernetes 的软件包。大多数 Kubernetes 发行版还提供了安装工具,使安装过程变得更加简单。部分 Kubernetes 发行版还集成了其他软件,可以处理集群监控和安全性等任务。
从这个意义上讲,你可以将 Kubernetes 发行版看作是 Linux 发行版的同类。当大多数人想要在 PC 或是服务器上安装 Linux 的时候,他们使用的发行版是一个预先构建的 Linux 内核,该内核与各种其他软件包集成在一起。几乎没有人会选择从头下载 Linux 源代码。
主要的 Kubernetes 发行版有哪些?
从技术上看,任何包含 Kubernetes 预先构建版本的 Kubernetes 的软件包或平台都可以算作 Kubernetes 发行版。就像任何人都可以构建自己的 Linux 发行版一样,任何人都可以建立一个 Kubernetes 发行版。
但是,如果你希望使用 Kubernetes 发行版来完成重要的工作,你可以在以下几个主要的发行版中进行选择:
Rancher :Rancher 容器管理平台是基于 Kubernetes 来构建的,多集群 Kubernetes 部署是 Rancher 的 Kubernetes 发行版强调的重点。如果你想跨多个云部署 Kubernetes,或者由于某些原因不希望使用命名空间隔离 Kubernetes 工作负载,那么 Rancher 将是你的首选项。Rancher 可以部署在本地数据中心和云上,甚至可以在包含两者的跨基础设施架构上工作。Rancher 和 OpenShift 的相似之处在于它在 Kubernetes 上集成了多种工具,但 Rancher 更为灵活,基于 Rancher 你可以自由选择组件。
OpenShift :OpenShift 是一个包含了 Kubernetes 以及其他各种运行、部署和管理容器所需工具的容器化平台。这是一个相对不太灵活的 Kubernetes 发行版,当你在使用工具和平台来构建完整的容器化堆栈时,它并不会给予你太多的选择。另一方面,OpenShift 提供了几乎所有你可能需要的开箱即用的工具,你将获得尽可能接近完整的 Kubernetes。OpenShift 由 Red Hat 开发,可以同时在本地数据中心和云中运行。
Canonical Kubernetes :开发 Ubuntu Linux 的 Canonical 公司提供了功能强大且具有支持良好的 Kubernetes 发行版。除了要求你必须使用 Ubuntu,Canonical 的 Kubernetes 发行版相对“纯粹”,如果你希望安装组件,你可以将它与你所需的任何组件进行集成。它可以在本地数据中心或者云中运行。
Google Kubernetes Engine :当其他云供应商专注于自己的编排工具时,谷歌云就已经押注在 Kubernetes 身上了,这并不稀奇,从 Kubernetes 项目伊始,Google 便是 Kubernetes 的主要支持者。如今,Google Kubernetes Engine 是一种灵活且简单的 Kubernetes 发行版。由于它运行在谷歌云中,因此你无需担心安装问题。
Azure Kubernetes Service :Azure 曾经将赌注押在 Docker Swarm 上,但是 Azure Kubernetes Service(AKS)现在是 Azure 云的主要编排解决方案。这是一款仅运行在云上的 Kubernetes 发行版。
AWS Elastic Kubernetes Service :虽然 AWS 云上的容器服务 Elastic Container Service(ECS)拥有自己的编排器,但 AWS 还提供了 Elastic Kubernetes Service(EKS),这是一种围绕 Kubernetes 构建的替代方案。和 AKS 一样,EKS 仅在云上运行。
结语
Kubernetes 是一个复杂的容器编排平台,并非每个人都可以消化它。但幸运的是,Kubernetes 发行版可以轻松实现 Kubernetes 的优势,而无需自己从头开始建立 Kubernetes。对于大多数用例而言,以上所提及的 Kubernetes 发行版是安装和运行 Kubernetes 最实用的解决方案。
标题:How to Choose the Right Kubernetes Distribution
链接:
https://www.itprotoday.com/hybrid-cloud/how-choose-right-kubernetes-distribution
作者简介
Christopher Tozzi,自 2008 年来以自由职业者的身份对 Linux、虚拟化、容器、数据存储及其相关主题进行报道。
评论