做者简介安全
Christopher Tozzi,自2008年来以自由职业者的身份对Linux、虚拟化、容器、数据存储及其相关主题进行报道。服务器
本文来自Rancher Labs架构
时至今日,经过Kubernetes编排容器化应用程序已经成为绝大多数人的第一选择,Kubernetes能够帮助用户轻松实现企业级部署。可是,在安装Kubernetes以前,你还须要再了解一件事:Kubernetes发行版。绝大多数状况下,用户不会直接从源代码中安装Kubernetes,而是在软件公司和云供应商提供的众多Kubernetes发行版中进行选择。工具
那么,什么是Kubernetes发行版?当前又有哪些出众的Kubernetes发行版呢?blog
在讨论Kubernetes发行版以前,咱们先来回顾一下什么是Kubernetes。开发
Kubernetes是一个用于容器编排的开源平台,它使容器部署应用程序所需的许多任务实现了自动化,包括启动和中止单个容器,以及肯定集群中的哪些服务器应当承载哪些容器。若是你还想了解更多关于Kubernetes的基础知识,欢迎查阅如下文章:部署
不再用担忧学不会K8S!17个K8S初学者必须掌握的知识点get
Kubernetes是容器生态系统中的其中一个容器编排平台,另外两个容器编排工具分别是Docker Swarm和Mesos Marathon,在本文中咱们不会详述。当咱们说起容器编排平台时,咱们首先想到的是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发行版。就像任何人均可以构建本身的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最实用的解决方案。