很多用户采用Kubernetes协调其容器化应用程序。Kubernetes使用户可以轻松实现企业级部署。但是在实际安装Kubernetes之前,需要考虑的一件事是:Kubernetes发行版。在大多数情况下,用户不会以源代码形式安装Kubernetes,通常会使用软件提供商和云计算供应商提供的各种Kubernetes发行版。
以下是有关Kubernetes发行版以及当今领先的Kubernetes发行版的入门知识。
什么是Kubernetes?
在讨论Kubernetes发行版之前,先简要介绍一下Kubernetes是什么。Kubernetes是一个用于容器编排的开源平台。Kubernetes将使用容器部署应用程序所需的许多任务实现自动化,其中包括启动和停止单个容器,以及确定集群中的哪些服务器应该托管哪些容器。
Kubernetes只是几种可用的容器协调器之一;其他受欢迎的选项包括Docker Swarm和Mesos Marathon。但是在容器编排方面,Kubernetes占有更多的市场份额。
什么是Kubernetes发行版?
作为一个开源项目,Kubernetes使其源代码可在GitHub上免费获得。任何人都可以使用此源代码在自己的基础设施上下载、编译和安装Kubernetes。但是大多数想要安装Kubernetes的用户却不会下载和编译源代码,其原因如下:
- 省时省力:网上有很多免费的Kubernetes源代码,而从头开始构建都将需要大量时间和精力。另外,无论何时需要更新安装,都必须重新构建所有内容。
- 多个组件:Kubernetes不是单一应用程序,它是一套不同的应用程序和工具。如果从源代码安装,则必须在用于构建Kubernetes集群的所有服务器上分别安装所有这些组件。
- 复杂的配置:由于Kubernetes没有安装向导或自动配置脚本,因此还必须人工配置Kubernetes的所有各种组件。
大多数用户采用Kubernetes发行版来满足他们的容器编排需求。Kubernetes发行版是一个软件包,提供了Kubernetes的预构建版本。大多数的Kubernetes发行版还提供安装工具,以简化安装过程。有些发行版还带有其他软件集成,以帮助处理诸如监视和安全性之类的任务。
从这个意义上来说,可以认为Kubernetes发行版类似于Linux发行版。当大多数用户想要在个人电脑或服务器上安装Linux时,他们使用的发行版提供了与各种其他软件包集成在一起的预构建Linux内核。因此几乎没有人下载全部的Linux源代码。
主要的Kubernetes发行版有哪些?
从技术上来说,任何包含Kubernetes预先构建版本的软件包或平台都可以算作Kubernetes发行版。就像任何人都可以构建自己的Linux发行版一样,任何人都可以创建Kubernetes发行版。
但是,如果用户希望使用Kubernetes发行版来完成重要的工作,则可以使用以下几个主要选项:
- OpenShift:OpenShift是一个容器化平台,其中包括Kubernetes以及运行、部署和管理容器所需的各种其他工具。从某种意义上来说,它不是一种相对灵活的Kubernetes发行版,因为它在可用于构建完整的容器化堆栈的工具和平台方面并没有提供太多选择。另一方面,OpenShift几乎附带了所有需要的东西。用户将获得接近全包的Kubernetes。OpenShift由Red Hat公司开发,可以在内部部署数据中心和云平台中运行。
- Canonical Kubernetes:开发Ubuntu Linux的Canonical公司提供了功能强大且得到良好支持的Kubernetes发行版。除了要求使用Ubuntu,Canonical的Kubernetes发行版相对“纯粹”,因为可以选择将其与所需的任何其他组件集成(用户可以自行安装)。它可以在内部部署数据中心和云平台中运行。
- Google Kubernetes引擎:当其他云计算供应商专注于他们自己的编排工具时,谷歌云押注Kubernetes(这并不奇怪,因为从项目开始,谷歌公司就是Kubernetes的主要支持者)。如今,Google Kubernetes Engine是一种灵活、简单的Kubernetes发行版。由于它在谷歌云平台中运行,因此不必担心安装它。
- Azure Kubernetes服务:微软Azure曾经将赌注押在Docker Swarm上,但Azure Kubernetes服务(AKS)现在是Azure云平台中的主要编排解决方案。这是只能在云中运行的Kubernetes发行版。
- AWS Elastic Kubernetes服务:尽管AWS云平台上的原始容器服务Elastic Container Service(ECS)具有自己的编排器,但AWS公司还提供Elastic Kubernetes Services(EKS),它是围绕Kubernetes构建的替代方案。像Azure Kubernetes Services(AKS)一样,Elastic Kubernetes Services(EKS)只能在云中运行。
- Rancher:Rancher的容器平台现在基于Kubernetes。Rancher公司的Kubernetes发行版特别着重于多集群Kubernetes部署,如果用户想跨多个云平台部署Kubernetes或出于某些其他原因不想使用命名空间,这可能会很有用(Kubernetes功能可让用户划分单个集群服务器划分为虚拟区域)。Rancher可以在内部部署数据中心、云平台中甚至跨基础设施(包括两者)进行工作。Rancher与OpenShift相似之处在于,它将Kubernetes与其他各种工具集成在一起,但它更加灵活,因为它在确定使用哪些组件方面提供了一些选择。
结论
Kubernetes发行版使用户可以轻松利用Kubernetes,而无需再从头开始设置Kubernetes。对于大多数使用情况,以上的Kubernetes发行版是使用Kubernetes进行安装和运行的最实用方法。