Kubernetes是目前最为成功和发展最快的IT基础架构项目之一。Kubernetes在2014年作为内部的Google orchestrator Borg的开源版本推出。在2017年各企业使用Kubernetes的情形有所增加,而到了2018年,从软件开发商到航空公司,它已经被广泛应用在各类业务上,Kubernetes之所以能够迅速普及发展的原因之一就在于其开源的架构,以及忠实的社区中所提供的大量帮助手册,各类文档以及技术支持等。
难怪Kubernetes就像任何成功的开源项目一样,在市场上总可以找到几个不同的发行版本(如同Linux一样),用来提供各种额外功能并针对特定类别的用户。
为什么我们会有这么多的发行版本?答案也很明显:每家供应商都希望保证它们的性能。而既然Kubernetes是开源的,提供自有的Kubernetes发行版的公司也就不能出售它,但是,它们却提供对Kubernetes群集的支持和维护(也就是所说的“托管Kubernetes”)。当然,他们更愿意支持他们自己的产品,因此即使他们不对代码进行任何更改,他们也会去测试他们的发行版以了解他们的产品,并且关注在正式场景下的工作表现。
假如现在贵公司正计划采用Kubernetes,同时并不急于设置和维护集群本身。该如何选择供应商?现在的供应商第一梯队有哪些公司?让我们把目光转向市场上存在的一些Kubernetes发行版,看看它们之间的不同,也同时和原版Kubernetes发行版来进行对比。
Kubernetes开箱即用的特性对于那些已经熟悉该技术或想要试验它的人来说其实非常棒,但要知道Kubernetes虽然很强大,却绝不容易操作。如果在没有做好准备,以及具备丰富的经验的情况下,就投入生产,在处理问题时可能会导致严重的服务宕机,因此在将Kubernetes用于最终正式服务之前,建议还是应该多花一点时间去先学习下沙盒模式中的Kubernetes。
它与经典Kubernetes的主要区别在于:
所以,OpenShift是面向那些更看重软件运行稳定性而不是功能性的企业客户。
与其他发行版相比,这个价格是非常有竞争力的。
难怪Kubernetes就像任何成功的开源项目一样,在市场上总可以找到几个不同的发行版本(如同Linux一样),用来提供各种额外功能并针对特定类别的用户。
为什么我们会有这么多的发行版本?答案也很明显:每家供应商都希望保证它们的性能。而既然Kubernetes是开源的,提供自有的Kubernetes发行版的公司也就不能出售它,但是,它们却提供对Kubernetes群集的支持和维护(也就是所说的“托管Kubernetes”)。当然,他们更愿意支持他们自己的产品,因此即使他们不对代码进行任何更改,他们也会去测试他们的发行版以了解他们的产品,并且关注在正式场景下的工作表现。
假如现在贵公司正计划采用Kubernetes,同时并不急于设置和维护集群本身。该如何选择供应商?现在的供应商第一梯队有哪些公司?让我们把目光转向市场上存在的一些Kubernetes发行版,看看它们之间的不同,也同时和原版Kubernetes发行版来进行对比。
"Vanilla Kubernetes"
它有什么特点?
如果我们从官方仓库安装Kubernetes,我们会得到......Kubernetes!鉴于Kubernetes有着大量的功能,所以在这里列出Kubernetes的所有功能是没有多大意义的。如果你不知道Kubernetes是什么,可以去参考下 官方文档 。简而言之,如果你安装了经典版Kubernetes,所有的功能都是可以使用的。其实你是获得了一款优缺点并存的开源产品,诸如版本更新,自由定制,社区中能得到的难以置信的支持,以及你不得不面对的或者向同行寻求帮助的各类bug(这是开源软件的常态,不要责怪Kubernetes!)。它背后的支持者是谁?
Kubernetes是由CNCF和Kubernetes用户组成的多样化社区所共同支持的项目。如果你不知道CNCF是什么,请去仔细 了解下 ——这是一个致力于云化技术、声誉良好的组织。Kubernetes是第一个从CNCF毕业的项目,其第二个项目Prometheus也宣布将于2018年8月毕业。如果你听说过Helm,containerd,CoreDNS等工具(如果没有,应该去再了解下),你就应该知道是CNCF支持着他们的发展。它的商业许可和定价是怎样的?
Kubernetes是款完全免费的开源软件,你可以像其他任何开源产品一样,来安装、使用、以及升级到新版本。它易于安装吗?
从易到难,有很多种安装Kubernetes集群的方法,你可以使用minikube在本地安装Kubernetes进行实验和测试,或者使用kubeadm在云中引导群集。对于故障排除或最佳实践案例,你可以查阅各种资源,或者在官方GitHub 仓库里 创建提交问题。它的用途和目标受众是谁?
RedHat OpenShift
它有什么特点?
OpenShift在Kubernetes之前就已经是一个独立的项目了,并且采用了一种完全不同的技术路线。然而,RedHat也意识到Kubernetes越来越受到关注,所以他们在OpenShift第3版中明智地将其作为了核心。它与经典Kubernetes的主要区别在于:
- 高级和集成的用户管理
- 集成Docker仓库
- 集成CI流水线
- 集成资源模板
- 使用类似但有些许不同的术语,如用路由器代替了Ingresses,Projects代替了Namespaces等等。
它背后的支持者是谁?
OpenShift是由RedHat提供支持,众所周知,RedHat是一个开源软件社区。根据Stackalytics的数据,RedHat是仅次于Google的Kubernetes项目的第三大社区贡献者,因此他们很有可能也是发行Kubernetes正式版本的的合法公司之一。它的商业许可和定价是怎样的?
OpenShift有三种定价模式:- OKD模式,OpenShift免费发行Kubernetes。
- OpenShift 企业模式,可以由RedHat托管和管理,也可用客户端部署在本地。托管版本的起价为48,000美元/年,包括了3台主服务器,3台etcd服务器和4台应用程序节点。
- OpenShift 在线模式,是在线提供的PaaS版本。每2 Gb内存规格价格约为每月50美元,与其他Kubernetes-as-a-Service提供商相比,还是有点贵的。
它易于安装吗?
它并不是很复杂,但是需要一些特定的配置,因此还是建议你使用Ansible这个配置管理工具用于安装配置。它的用途和目标受众是谁?
OpenShift显然是一个企业级的发行版本,注重稳定性大于功能性。这就是为什么它发布的版本总是落后于Kubernetes一步。所以目前,虽然Kubernetes已经发布了1.11版本,但OpenShift才发布了基于Kubernetes 1.10的3.10版本。所以,OpenShift是面向那些更看重软件运行稳定性而不是功能性的企业客户。
Tectonic
它有什么特点?
Tectonic是一款非常受欢迎的Kubernetes发行版本,它目前正在与RedHat一起做集成。与原版Kubernetes相比,其特性如下:- 易于安装
- 用户友好的Web界面
- 用户管理
- 对运营者的原生支持
它背后的支持者是谁?
Tectonic是由CoreOS所创建的,这是一家致力于容器技术的公司。他们的产品组合包括了许多有价值和受欢迎的产品,譬如CoreOS Linux,Quay Docke仓库,Etcd K-V存储以及Flannel容器网络接口等。该公司已经被RedHat收购,因此我们可能会看到RedHat在未来几个月的集成演进路线图中宣布OpenShift和Tectonic的融合。它的商业许可和定价是怎样的?
Tectonic提供商业许可,最多可免费使用10个节点,而对于更大的集群,每10个节点(含支持服务)的定价约为1,000美元/月。它易于安装吗?
是的,很容易,可以通过安装程序或Terraform来安装它。它的用途和目标受众是谁?
Tectonic可以用于企业客户。然而,它未来发展方向却是不确定的。很可能该版本将完全退出舞台并将与OpenShift集成。因此如果你计划部署Kubernetes的话,从长远来看,Tectonic并不是一个最佳选择。Rancher
它有什么特点?
Rancher是一个包含了Kubernetes的容器管理平台,所以我们也可以将其视为Kubernetes的一个发行版。它在原版Kubernetes中加入了一些新特性,主要是:- 跨程序群集部署
- 用户管理
- Web界面
- 集成的CI / CD流水线
它背后的支持者是谁?
Rancher Kubernetes是由成立于2014年的Rancher Labs公司所支撑的,他们的拳头产品就是Rancher容器管理平台,他们同时也开发了RancherOS,一个以容器为中心的Linux发行版本。它的商业许可和定价是怎样的?
Rancher是百分之百的开源软件,他们的商业模式是提供咨询和支持服务,但是其定价却是不公开的。它易于安装吗?
非常容易,并且有着很好的文档支持,可以使用它自己的名为RKE的Kubernetes安装工具。它的用途和目标受众是谁?
很难说Rancher的目标客户是谁,因为他们自己也对此并不是很清楚。从功能特性上来看,这个版本其实是适用于任何类型公司的。Canonical Kubernetes
它有什么特点?
这个发行版本可以算是一个能在主要公有云供应商以及类似OpenStack这样的私有云解决方案上轻松部署的vanilla Kubernetes,能够轻松设置和管理跨供应商和跨地域的Kubernetes集群。它的用户界面其实就是官方的Kubernetes仪表板。它背后的支持者是谁?
该版本是由广受欢迎的Linux发行商Ubuntu背后的公司Canonical所支持。它的商业许可和定价是怎样的?
Canonical Kubernetes是完全免费的。但是,每个虚拟节点也可以选用一些服务支持包,起价是每年200美元(至少需要2500美元),维护服务包是从每十个节点14,600美元起售。它易于安装吗?
可以使用由Canonical开发的部署工具Conjure-up或Juju来完成安装。它的用途和目标受众是谁?
Canonical Kubernetes并没有在Kubernetes上增加太多的功能,它和原版Kubernetes具有一样的功能。并且,它允许跨供应商和跨地域来设置Kubernetes集群,并且提供了企业级的支持。我们推荐那些已经或计划与Canonical有商业合作的公司来使用它。Kubernetes Distribution by Containerum
它有什么特点?
Containerum有两款不同而互补的产品:- 针对Kubernetes的产品称为KDC——Kubernetes Distribution by Containerum。KDC也是Kubernetes的原版版本,由Containerum团队来进行测试和支持。
- 开源Containerum平台,能以界面的方式安装在Kubernetes上,具有其他的额外功能,譬如用户管理,用量监控,CI / CD流水线等等。
它背后的支持者是谁?
Containerum由拉脱维亚一家致力于容器技术的创业公司Exon LV提供支持。它的商业许可和定价是怎样的?
KDC和Containerum平台都是完全开源的,因此你可以自由部署它们。他们公司的商业收入有两个来源:- DevOps和基础设施咨询服务
- 通过Containerum支持Kubernetes发行版。安装和支持服务起价为每10个节点/年550美元。
与其他发行版相比,这个价格是非常有竞争力的。
它易于安装吗?
它的设置相对简单,跟原版Kubernetes安装很相似。你还可以在已有了Helm图表的Kubernetes集群之上安装Containerum平台。它的用途和目标受众是谁?
KDC + Containerum平台可能是最简单的Kubernetes发行版。它也可以满足那些已经拥有Kubernetes集群但又比原版Kubernetes集群需要更多功能的用户的需求。总结
我们这里给出的版本列表其实也并没有那么详尽——我试图收集一些著名的参与者以及还有一些并不为人所知的参与者。当然,最终的选择还是得取决于你自己现状考虑——一些公司愿意花费时间来提升培养内部能力,而有些公司则更愿意使用第三方服务。如果你只是在小型项目上使用Kubernetes或者仅仅是出于兴趣(当然,Kubernetes是很有趣的),而且不会上来就启动数百个微服务的话,最好还是选择使用标准版本。但是,如果对于大型项目和关键应用,建议还是使用第三方供应商提供的Kubernetes发行版,以便可以获得即时的技术支持以及故障排除。你觉得呢?
本文转自DockOne-Kubernetes不同发行版的比较