难怪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不同发行版的比较