Kubernetes的开源性质及其受欢迎程度催生了容器管理平台的许多不同发行版。
2014年,Kubernetes作为内部Google orchestrator Borg开源版本推出,目前已是最成功和发展最快的IT基础架构项目之一。2018年,Kubernetes已广泛应用于各种业务,从软件开发商到航空公司。Kubernetes得以迅速普及的原因之一就是其开源架构及由社区提供的大量手册、文档和支持。
就像所有成功的开源项目一样,Kubernetes也存在很多发行版,开源版本固然好,但太过基础和存在很多错误,因此开发者需要不同的发行版提供额外功能。虽然市面上也有很多云供应商支持Kubernetes,但本文侧重梳理可在本地运行或作为云托管选项的发行版,减少被单一供应商绑定的风险。
原版开源Kubernetes
Kubernetes由Cloud Native Computing Foundation(云原生计算资金会)和Kubernetes用户组成的多样化社区支持,也是第一个从CNCF毕业的项目。
开发者对原版Kubernetes最为熟悉,通过官网或者Github开源网站可轻松找到原版Kubernetes的功能列表和官方文档。需要注意的是,如果选择该版本,你可以享受所有开源功能和社区支持,但原生开源版本往往存在一些问题或者无法第一时间获得社区帮助。
许可和定价模型
开源且100%免费,可以像所有开源产品一样安装、使用和更新。
安装
设置Kubernetes集群的方法有很多,从非常容易到中等难度。 开发者可使用minikube在本地安装Kubernetes并进行实验和测试,或使用kubeadm在云中引导集群。对于故障排除或最佳实践示例,可以查阅各种资源或者在GitHub社区发问。
Kubernetes很强大,但绝对不容易。如果没有准备就绪或者经验不足,处理问题时可能会导致停机,因此在将Kubernetes用于最终用户服务之前,开发者需要花一些时间在沙箱模式下练习。
红帽OpenShift
在Kubernetes之前,OpenShift作为一个单独项目并使用完全不同的技术运行。后来,红帽意识到Kubernetes的能力越来越强大,因此在第3版中明智地将其作为OpenShift的核心。
与原生开源Kubernetes相比的主要区别在于:
- 集成用户管理
- 集成Docker注册表
- 集成CI管道
- 集成资源模板
- 使用类似但略有不同的概念,如路由器而不是Ingresses,Projects而不是Namespaces等。
OpenShift由红帽提供支持,根据Stackalytics的说法,红帽是继谷歌和社区之后Kubernetes项目的第三大贡献者,因此可能是维持Kubernetes发行版最合法的公司之一。
许可和定价模型
OpenShift有三种定价模式:
- OKD,OpenShift免费发布的Kubernetes。
- OpenShift Enterprise,由红帽托管和管理,也可由客户端部署在本地,托管版本的起价为每年48,000美元,包括3个master,3个etcd和4个应用程序节点。
- OpenShiftOnline,在线提供的PaaS版本。每2 Gb RAM的成本约为每月50美元,与其他Kubernetes即服务提供商相比,这有点贵。
安装
该发行版的安装过程不是很复杂,但需要特定配置。安装使用Ansible,因此建议使用此配置管理工具。
OpenShift显然是一个企业级发行版,目标是稳定而不是功能,因此该发行版总是比原生开源版本的发布速度慢一些。
Platform9 Managed Kubernetes
这是一个非常重要的商业发行版,可在任何环境中部署Kubernetes,无论是公有云还是本地,Platform9的工程师也可以远程管理,该发行版基本每周六都会对Managed Kubernetes进行一次更新,也会与该公司开发的无服务期计算项目相集成,与几乎所有编程语言兼容。
许可和定价模型
可以免费试用,也有相关开源工具支持,但持续使用需要付费。
安装
安装过程比较容易,适合各种环境
Tectonic
Tectonic是一种非常受欢迎的Kubernetes发行版,目前正在与红帽集成。与开源Kubernetes相比,优势功能如下:
- 易于设置
- 用户友好的Web UI
- 用户管理
- 对供应商的支持
Tectonic由CoreOS创建,CoreOS是一家致力于发展容器技术公司,但已被红帽收购,因此可能会看到RedHat在集成路线图中宣布OpenShift和Tectonic融合。
许可和定价模型
Tectonic拥有商业许可模式,最多可免费提供10个节点,而对于更大的集群,每10个节点的定价约为每月1000美元,其中包括支持。
安装
可以通过安装程序或Terraform安装。但是,Tectonic的未来方向尚不确定,很可能将完全消失并最终与OpenShift集成。因此,从长远来看,Tectonic可能不是最佳选择。
Stackube
HyperHQ提供用于运行容器的Hyper.sh云服务,Stackube是一款以Kubernetes为中心的OpenStack发行版。Stackube的一大优势是可根据所用容器运行时环境提供不同程度的多租户机制,用户可选择Docker或者虚拟机进行配置。
Kubernetes Distribution by Containerum
Containerum有两种不同但互补的产品,其中一个是Kubernetes发行版称为KDC;另一个是开源Containerum平台,可作为UI安装在Kubernetes之上,具有一些额外功能,比如用户管理,指标监控,CI/CD管道等。
许可和定价模型
KDC和Containerum平台都是100%开源,因此可以自由部署解决方案。
安装
设置相对容易,与vanilla Kubernetes安装非常相似,开发者可以在具有Helm图表的现有Kubernetes集群之上安装Containerum Platform。
KDC + Containerum平台可能是最简单的Kubernetes发行版,也符合已经拥有Kubernetes集群但需要比开源Kubernetes集群更多功能的用户需求。
Rancher
Rancher是一个包含Kubernetes的容器管理平台,因此可以将其视为Kubernetes发行版。与开源Kubernetes相比,Rancher的主要特点如下:
- 跨供应商集群部署
- 用户管理
- Web用户界面
- 集成CI/CD管道
Rancher Kubernetes由成立于2014年的创业公司Rancher Labs提供支持,该公司的明星产品是Rancher容器平台,但也创建RancherOS,一个以容器为中心的Linux发行版。
许可和定价模型
Rancher是100%开源,该公司可提供咨询和支持服务,但此部分报价不公开。
安装
开发者可使用名为RKE的Kubernetes安装工具。
Canonical Kubernetes
该发行版由Linux发行版Ubuntu背后的公司Canonical支持,相当于是一个可在主流公有云提供商和OpenStack等私有云解决方案上轻松部署的vanilla Kubernetes,能够轻松设置并管理跨供应商的Kubernetes集群,用户界面是官方Kubernetes仪表板。
许可和定价模型
Canonical Kubernetes完全免费。但是,每个虚拟节点有几个支持包,起价为每年200美元(至少应用2,500美元),支持包从每十个节点14,600起步。
安装
开发者可使用Canonical开发的部署工具Conjure-up或Juju来完成安装。
Canonical Kubernetes并没有给Kubernetes增添太多新功能,但是,它允许设置跨供应商和位置的Kubernetes集群,并提供企业级支持。
结论
对于这些发行版,不同公司有不同的盘算,有的愿意花时间培养内部人员的专业知识,从原生开源版本开始搭建;有些公司则更倾向于使用第三方服务。
如果将Kubernetes用于小型项目或仅仅是为了练习,更好的选择是原生开源版本;对于大型项目和关键应用程序,建议使用第三方供应商提供的Kubernetes发行版,以便即时访问支持和故障排除。
参考链接:https://dzone.com/articles/kubernetes-distributions-how-do-i-choose-one