引领容器革命的10款Kubernetes

2019-07-09 04:15:16 计算机世界2019年23期

Serdar Yegulalp

Kubernetes和容器改变了应用程序的构建、部署和管理方式。本文介绍一些比较优秀的版本。

如果你需要进行大规模的容器编排,那么Kubernetes(K8s)可以说是最佳选择。谷歌推出的开源容器编排系统备受好评,得到了很好的支持,而且发展非常迅速。

但是,K8s也非常庞大、复杂,并且难于设置和配置。不仅如此,很多繁重的工作都留给了最终用户。因此,最好的方法不是抓取数据然后单独去处理数据,而是寻找一套完整的容器解决方案,其中包括K8s作为受支持的、受维护的组件。

在这里,我列出了10款最突出的K8s产品——它们相当于包含了K8s和容器工具的发行版本,从某种意义上来说,类似于各家供应商提供的Linux内核及其用户群的发行版。

请注意,所列出的并不包括专用云服务,例如,亚马逊EKS或者谷歌K8s引擎,而重点放在了能够在本地运行或者作为云托管选项运行的软件版本。

CoreOS Tectonic/Red Hat CoreOS

CoreOS是一家专注于容器的Linux发行版的提供商,与Docker兼容,但有自己固定的图像格式和运行时,以及一个“企业级K8s”发行版。它们共同构成了CoreOS Tectonic堆栈的基础。

CoreOS操作系统——Container Linux之所以与众不同,主要因为它是作为一组容器化的组件而交付的。这样,就可以在不关闭正在运行的应用程序的情况下,顺利地对产品进行操作系统的自动更新。CoreOS还支持对K8s进行“一键式”更新。CoreOS Tectonic可以运行在亚马逊网络服务(AWS)、Microsoft Azure和裸金属上。

Red Hat最近收购了CoreOS,并计划将其整合到Red Hat OpenShift中。容器Linux将被重新命名为Red Hat CoreOS。这一举措预计要到2020年才能完成,而在此之前,容器Linux将继续得到支持。据Red Hat,CoreOS Tectonic“几乎所有”的特性在过渡后仍然可用。

K8s的Canonical版本

Ubuntu Linux的制造商Canonical提供了自己的發行版K8s。K8s的Canonical发行版的一大卖点是其备受好评、易于理解而且部署广泛的底层Ubuntu Linux发行版。Canonical声称其堆栈将在任何云或者本地部署中工作,同时支持带有CPU和GPU的工作负载。付费客户可以让Canonical工程师远程管理他们的K8s集群。

Canonical的K8s发行版也有微型版本——Microk8s。开发人员和K8s新用户可以在笔记本或者台式机上安装Microk8s,将其用于测试、实验,甚至用于低配置硬件进行生产。

Canonical和Rancher实验室(见下文)共同开发了一款产品,即,云原生平台,它结合了Canonical的K8s发行版与Rancher的容器管理平台。其思想是使用K8s管理每个集群中运行的容器,并使用Rancher管理多个K8s集群。云原生平台将与Rancher 2.0一起提供,后者目前是beta预览版。

Docker社区版/Docker企业版

对我们很多人来说,Docker就是容器。从2014年开始,Docker就有了自己的集群和编排系统Docker Swarm,直到最近它还是K8s的竞争对手。然后在2017年10月,Docker宣布将在其Docker社区版和Docker企业版2.0及其更高版本中加入未经修改的普通状态下的K8s,这将作为标准包。

Docker企业版3.0增加了Docker K8s服务,这其实是一种K8s集成,使开发人员桌面和产品部署之间的K8s版本保持一致。

简而言之,Docker公司已经阅读了容器协调墙上的文字,并承认K8s比Swarm更适合管理大型和复杂的容器环境。然而,Docker仍然包括其原始的集群系统“Swarm模式”,用于更简单的工作——例如,在防火墙应用程序后面的本地应用程序,这类程序不会增长太多,或者维持不需要修改的现有Swarm模式集群。

Heptio K8s订购版

K8s的两位创造者,Craig McLuckie和Joe Beda成立了Heptio,为K8s提供服务和产品。他们的第一款主要产品是Heptio K8s订购版(HKS),这种K8s部署由Heptio提供7×24小时付费支持。起价为每月2000美元。

Heptio的主要卖点是不锁定供应商的企业级K8s。其部署可以运行在公有云或者专用硬件上。Heptio提供的用于管理K8s配置的所有工具都是开源的,修复程序直接提供给所支持的集群。

VMware于2018年收购了Heptio,但此次收购并未影响Heptio的系列产品计划。

Kontena Pharos

被称为“用起来不错的K8s”,Kontena Pharos遵循与Red Hat的Linux产品大致相同的规程。底层是一个CNCF认证的K8s发行版,可以在Apache 2许可下使用(每一Fedora或者CentOS许可)。资金富裕的企业(每一Red Hat企业版Linux许可)可以购买专业级的功能、咨询、支持服务以及某些不砍价的服务,例如,迁移到云原生基础设施。

核心Pharos发行版标配了自动安全更新和多个容器运行时等基本功能。付费产品增加了企业工具,例如,Kontena Lens仪表盘、Kontena存储分布式存储系统、备份、负载平衡,并且能够在空气散热环境中部署集群。

专业版有30天的试用期,支持订购版起价为每月375欧元。开源版本没有时间限制,也没有许可成本。

Pivotal容器服务(PKS)

Pivotal以其在Cloud Foundry上的工作而闻名,它提供了企业级的K8s,即Pivotal容器服务(PKS)。PKS的灵感来自很多其他Pivotal项目。例如,它使用Kubo项目(也在Pivotal的Cloud Foundry中使用)来启动和管理K8s集群。

PKS的突出特点是与VMware虚拟化堆栈的紧密集成;事实上,PKS是一个联合的VMware-Pivotal项目。在PKS上运行的容器可以访问通常仅对在vSphere上运行的虚拟机可用的服务,例如,VMware VSAN中的持久存储。此外,可以通过VMware Cloud Foundation来管理PKS,这是用于管理公有云和私有云环境中的VMware基础设施。

总之,任何投资了VMware,并且对K8s越来越感兴趣的企业,都希望研究PKS,以充分利用他们现有的VMware设置。

Rancher 2.0

Rancher实验室已经将K8s集成到了它的容器管理平台中,这个平台简称为2.0版的Rancher。Rancher 2.0比其他K8s发行版级别更高,位于Linux主机、Docker容器和K8s节点之上,无论位置或者基础设施怎样,都可以对它们进行管理。它甚至可以在亚马逊EKS、谷歌K8s引擎、Azure K8s服务和其他K8s即服务云上管理K8s集群。

Rancher也有自己的K8s发行版。Rancher想要去掉建立K8s集群和为特定环境定制K8s的过程中大量繁重的工作,要求这些定制工作不能妨碍K8s的顺利更新——这是这类快速变化和不断更新项目的关键考虑因素。

Rancher还提供一个名为K3s的最小K8s发行版。K3s针对低配置部署进行了优化,每个服务器实例只需要512 MB的RAM和200 MB的硬盘空间。它通过省略所有老的、alpha级别的和非必需的特性,以及很多不常用的插件(但是在需要时,可以把这些插件重新添加回来),从而能够布放到这种布局中。

Red Hat OpenShift

Red Hat OpenShift是Red Hat的PaaS产品,最初使用类似Heroku Buildpack的“黑盒”对应用程序进行打包,然后将其部署在称为“变速箱”的容器中。后来有了Docker,OpenShift被重新设计以利用新的容器镜像和运行时标准。不可避免地,Red Hat也采用了K8s作为OpenShift中的编排技术。

开发OpenShift的目的是为了给PaaS中的所有组件提供抽象和自动化功能。这种抽象和自动化功能也扩展到了K8s中,它仍然带来了相当多的管理负担,因此,OpenShift可以作为部署PaaS的更大任务的一部分,以减轻这一负担。

如上所述,CoreOS Tectonic被并入Red Hat OpenShift,尽管技术合并预计要到2020年才能完成。

如果希望了解更详细的信息,请参阅InfoWorld对Red Hat OpenShift 3的评论。

SUSE容器即服务平台

SUSE以在欧洲广泛流行的Linux发行版而闻名,它还提供了SUSE CaaS平台。从概念上讲,SUSE CaaS平台让人想起了CoreOS Tectonic,它结合了运行容器的裸金属“微型”操作系统、用于容器编排的K8s、内置的图像注册表,以及集群配置工具。

SUSE CaaS平台3于2018年发布,它添加了多主机功能,使集群能够更灵活地应对主节点崩溃,并提供了内核调优功能,以便对所包含的Linux内核进行定制调整。

SUSE CaaS平台可以在公有云和本地裸金属上运行,但需要注意的是,“SUSE目前不支持任何与底层云基础设施的集成。”这意味着SUSE CaaS平臺不是为完善亚马逊EKS或者谷歌K8s引擎而设计的,而是为了规避它们,支持跨多个云和数据中心来运行容器。

Gravity

Teleport SSH服务器的制造商Gravitational推出了Gravity,这是一种“产品增强型”的K8s发行版,运行在本地或者远程集群上。Gravity被定位为一种私有SaaS平台的解决方案,也可以用于在多个区域或者托管提供商那里运行K8s即服务。

Gravity上的应用程序必须做好准备才能在K8s容器中运行。它们还必须打包成“Bundles”,然后发布到K8s集群进行分发。除了部署基于容器的应用程序所需的所有其他准备工作之外,Bundles还需要一些额外的工作,而Bundles清单是需要维护的唯一与Gravity相关的附加内容。

Gravity还允许对整个K8s集群(包括其所有应用程序和配置)进行快照,并将快照部署到任何其他K8s环境中。

Serdar Yegulalp是InfoWorld的资深作家,专注于机器学习、容器化、Devops、Python生态系统,并且经常发表评论文章。

原文网址

https://www.infoworld.com/article/3265059/10-kubernetes-distributions-leading-the-container-revolution.html