引领容器革命的12款Kubernetes发行版

引领容器革命的12款Kubernetes发行版

如果你需要大规模的容器编排,Kubernetes已成为值得依赖的项目。这个出自谷歌的开源容器编排系统备受好评,受到良好的支持,而且发展迅速。

同时Kubernetes庞大而复杂,设置和配置起来有难度。不仅如此,许多繁重的工作留给了最终用户。因此,最好的方法就是别试图单枪匹马去搞,而是找一款含有Kubernetes这个受到支持和维护的组件的整套容器解决方案。

我在这里列出了12个最知名的Kubernetes产品,实际上就是整合了Kubernetes及容器工具的发行版,就像许多开发商提供Linux内核及其用户空间(userland)的众多发行版那样。

请注意,本文不包括专用的云服务,比如亚马逊EKS或谷歌Kubernetes引擎,而是重点介绍可在本地运行或作为一种云托管选项的软件发行版。

1.CoreOS Tectonic

CoreOS提供专注于容器的Linux发行版,与Docker兼容,但又有自成一体的镜像格式和运行时环境,还提供一款“企业级Kubernetes”发行版。它们一起构成了CoreOS Tectonic架构的基础。

CoreOS操作系统Container Linux与众不同,主要是它作为一组容器化的组件来加以交付。这样一来,操作系统的自动更新版可以在不影响应用程序正常运行的情况下推送到生产环境。CoreOS还宣称可以“一键式”更新Kubernetes。CoreOS Tectonic可以在亚马逊网络服务(AWS)、微软Azure和裸机上运行。

相关链接:https://coreos.com/tectonic/

2.Canonical的Kubernetes发行版

Ubuntu Linux的开发商Canonical提供自家的Kubernetes发行版。Canonical的Kubernetes发行版的一大卖点是,底部是备受推崇、为人所熟知、经常部署的Ubuntu Linux发行版。Canonical声称,其架构可以在任何云或本地部署环境中运行,还支持CPU驱动的工作负载和GPU驱动的工作负载。付费客户可以让Canonical工程师远程管理Kubernetes集群。

Canonical和Rancher Labs(见下文)共同开发了一个产品Cloud Native Platform,该产品结合了Canonical的Kubernetes发行版和Rancher的容器管理平台。其想法是,使用Kubernetes来管理每个集群中运行的容器,并使用Rancher来管理多个Kubernetes集群。Cloud Native Platform将随Rancher 2.0一同发布,该版本目前提供测试预览版。

相关链接:https://www.ubuntu.com/kubernetes

3.Docker社区版/ Docker企业版

对于许多人来说,Docker就是容器。自2014年以来,Docker就有自己的集群和编排系统Docker Swarm,就在不久前它还是Kubernetes的竞争对手。然后在2017年10月,Docker宣布添加Kubernetes(未加任何改动),作为Docker社区版和Docker企业版的标准插入式组件。

简而言之,Docker公司已察觉到了容器编排领域的不祥之兆,承认Kubernetes比Swarm更适合管理大型的复杂容器环境。然而,Docker仍包括一种“swarm模式”,面向相对一般的集群作业DD比如不太可能急剧增长的防火墙后面的本地应用程序。

相关链接:https://www.docker.com/kubernetes

4.Heptio Kubernetes Subscription

Kubernetes的两位开发者Craig McLuckie和Joe Beda创立了Heptio,提供围绕Kubernetes的服务和产品。他们的第一个主要产品是Heptio Kubernetes Subscription(HKS),这个Kubernetes发行版得到Heptio提供的24/7全天候收费支持。起价为每月2000美元。

Heptio的主要推销口号是不会有厂商锁定的企业级Kubernetes。该发行版可以在公共云或私有硬件上运行。Heptio提供的用于管理Kubernetes配置的所有工具都是开源工具,修补程序直接发送到受支持的集群。

相关链接:https://heptio.com/products/kubernetes-subscription/

5.Mesosphere DC/OS

Mesosphere DC/OS使用Apache Mesos将一群机器变成可以为多个应用程序动态划分的单一资源。Kubernetes作为众多应用软件包之一在DC/OS上受到支持,那样你可以跨DC/OS集群安装、运行和更新Kubernetes。

DC/OS本身是不是Kubernetes发行版有待商榷,这是由于Kubernetes并不完全是DC/OS的一部分,但是可以借助DC/OS像其他受支持的应用程序那样来部署DD这有点像借助Linux发行版的软件包管理系统来提供Linux应用程序那样。然而,Mesosphere对Kubernetes采取的方法恪守Kubernetes的工作方式DD比如说,它使用Kubernetes的主线社区发行版来确保与现有的工具集高度兼容。

相关链接:https://mesosphere.com/solutions/kubernetes/

6.Mirantis云平台

正如Mirantis所言,Mirantis云平台整合OpenStack、Kubernetes或两者的组合体,作为一种“敏捷基础设施平台”的底层。简而言之,Mirantis云平台是一种单一的集成解决方案,用于编排虚拟机、容器和裸机服务器。部署在该平台上的应用程序在整个生命周期内以“devops方式”加以管理,使用Salt作为配置管理工具,并整合了持续集成/持续交付(CI/CD)支持功能,确保应用程序正确部署。

Mirantis云平台可以直接在裸机上、OpenStack集群中或公共云上运行Kubernetes。 Mirantis声称,Mirantis云平台让用户更容易使用Kubernetes,因为配置Kubernetes底层的基础设施这项工作不会落到最终用户身上。

相关链接:https://www.mirantis.com/software/mcp/

7.Platform9 Managed Kubernetes

大多数Kubernetes发行版专注于让Kubernetes从内到外和从上到下都易于管理。 Platform9 Managed Kubernetes可以在你部署它的任何环境中运行,无论是本地裸机还是远程公共云,但可以由Platform9的工程师来远程管理。

Platform9在客户的监督下大概每周六对Managed Kubernetes进行一次更新。Platform9提供了通常要手动添加到Kubernetes集群的功能,比如针对多租户场景的用户配额。还包括与Platform9的Fission项目集成的功能,Fission项目是一种无服务器计算(又叫“函数即服务”)系统,与几乎任何编程语言兼容,拥有容器化的运行时环境。

相关链接:https://platform9.com/managed-kubernetes/

8.Rancher 2.0

Rancher Labs已将Kubernetes集成到其版本2.0的容器管理平台(名为Rancher,目前处于测试阶段)。Rancher 2.0在比其他Kubernetes发行版更高的层面上运行,位于Linux主机、Docker容器和Kubernetes节点上,无论是什么位置或基础设施,它都可以轻松管理这一切。它甚至可以管理亚马逊EKS、谷歌Kubernetes引擎、Azure Container Service及其他Kubernetes即服务云上的Kubernetes集群。

Rancher还随带自己的Kubernetes发行版。Rancher旨在消除为特定的环境搭建Kubernetes集群和定制Kubernetes这个过程中的许多麻烦,又避免那些定制妨碍顺利升级到KubernetesDD对于一个迅速发展、不断更新的项目而言这是重要的考量因素。

相关链接:https://rancher.com/kubernetes/

9.Red Hat OpenShift

Red Hat的PaaS产品Red Hat OpenShift最初使用类似Heroku构建包的“cartridge”来打包应用程序,然后将应用程序部署在名为“gear”的容器中。后来出现了Docker,OpenShift作了改动,以充分利用新的容器镜像和运行时标准。Red Hat还采用了Kubernetes作为OpenShift中的编排技术,这是不可避免的。

开发OpenShift的目的是为PaaS中的所有组件提供抽象和自动化机制。这种抽象和自动化还扩展到了Kubernetes,这仍带来了相当大的管理负担,于是OpenShift用来缓解这个负担,以完成部署PaaS这个更重大的任务。

相关链接:https://www.redhat.com/en/technologies/cloud-computing/openshift

10.Stackube

HyperHQ提供用于运行容器的Hyper.sh云服务,它开发了Stackube,这是一款“以Kubernetes为中心的OpenStack发行版”。通常,OpenStack使用一个名为Nova的组件来配置和管理计算节点,Stackube而是使用Kubernetes。但除此之外,它使用“普通版”OpenStack和Kubernetes,其他所有细节由OpenStack插件来处理。

HyperHQ声称Stackube具有的一大优势是,它可以根据所用的容器运行时环境来提供不同程度的多租户机制。针对“软”多租户模式,有Docker;若想更可靠地隔离资源,则有HyperContainer,它使用虚拟机管理程序级别的隔离。

相关链接:https://github.com/openstack/stackube

11.SUSE云即服务(CaaS)平台

SUSE是一款在欧洲非常流行的Linux发行版,它提供SUSE CaaS平台。从概念上来讲,它让人联想到CoreOS TectonicDD该系统捆绑了运行容器的裸机“微型”操作系统、作为容器编排系统的Kubernetes、内置的镜像注册中心和集群配置工具。

SUSE CaaS平台在公共云和本地裸机上都可以运行,不过?要注意“SUSE目前不支持整合到底层云基础设施的任何功能”。这意味着SUSE CaaS平台的初衷并不是补充亚马逊EKS或谷歌Kubernetes引擎,而是为了避开它们,让用户可以跨多个云和数据中心运行容器。

相关链接:https://www.suse.com/products/caas-platform/

12.Telekube

Teleport SSH服务器系统的开发商Gravitational还开发Telekube,这是一款可在本地或远程集群上运行的“针对生产环境作了强化”的Kubernetes发行版。Telekube的定位是作为一款面向专有SaaS平台的解决方案,或者跨多个地区或多家主机托管提供商将Kubernetes作为服务来运行。

Telekube上的应用程序必须准备好,才可以在Kubernetes上的容器中运行。它们还必须打包成“Bundle”,然后发布到Kubernetes集群上进行分发。除了所有其他的准备外,捆绑(Bundling)还需要做一些另外的工作,那样才能部署基于容器的应用程序,但Bundle清单文件是你需要维护的Telekube所特有的唯一的附加部分。

相关推荐