对IT企业而言,很难确定哪个容器管理工具是最好的。对某一个企业来说复杂的东西,或许对另一个企业而言是灵活且易于扩展的。IT团队一般是通过考量对工具的支持、交互操作性这些方面,来确定哪一个工具是适合自己的。

一个IT企业拥有50个本地数据中心,而另一家是完全在云上部署,那么它们对于容器管理软件就有不同的需求。
每个公司和团队在部署容器上都有不同的目标和需求。在选择容器管理平台时,技术差异虽然不是唯一的,但却是最大的影响因素之一。

员工的能力、企业的预算、决策实施以及现有的生态系统和底层基础设施,这些因素都在企业选择相关服务商、工具、技术时起到重要的作用。

Bret Fisher,他是一名DevOps和Docker的顾问、培训师和讲师,同时也是开源社区的积极参与者,他在纽约的O'Reilly Velocity Conference 2017上表示:“很多人喜欢使用Docker产品,是因为Docker产品所提供的生命周期用户体验,以及对于简单性和安全性的专注。有些人选择Kubernetes,因为它看起来是目前最好的编排工具,而其他人则选择Mesos和[Mesosphere] DC/OS,这是因为它们的灵活性和成熟度。”

管理工具的当前市场情况其实也反映出容器的成熟状况。Fisher说:“我们现在正在为容器执行和容器镜像进行标准化的定义。Kubernetes和Docker企业版(EE)这些容器管理平台间的差异性,这暗示着一场生态系统的竞争,不由得让人联想到iPhone和Droid手机间的交锋。在编排和调度上它们有75%的特性是相似的,因此,争夺的重点往往归结到哪一个能让用户易于上手,且用户体验良好。

Dealer Tire是一个位于俄亥俄州克利夫兰(Cleveland)的汽车行业分销商。它在几年前将自己的物理机器升级成虚拟机,现在它的Web平台运营团队已经使用了6个月的容器技术,并在两个数据中心的私有服务器上用VMware虚拟化出主机层。他们对包括Docker、Kubernetes、Mesos和Rancher在内的容器管理工具进行了评估。

Web平台负责人Andrew Maurer说:“Mesos和Kubernetes看起来很复杂,团队并不希望通过命令行界面来管理本地的Docker。而Rancher似乎是个不错的选择,入门的门槛低,而且在启动和运行上也非常简单。”

无关容器,还有内核问题!

Bret Fisher说:“团队们在使用容器时会遇到许多难题,原因之一就是他们把应用都部署到更早的内核上,比如linux的3.10内核。现在的容器和编排器都使用了许多内核中的新特性,因此当用户尝试在老的Linux发行版上执行容器编排时,他们会遇到许多4.x内核系列中并不会出现的错误。”

“容器编排和部署对于IT的未来影响非常大——将如此多的工作负载塞到一个操作系统上——它们影响了如今Linux内核开发的方向,同时也影响到了Windows系统。”

“未来我们要将更多的容器整合到更少的操作系统上,我们正在努力突破这个限制,而这就意味着你需要去获取最新的内核,”Fisher表示。操作系统必须更加高效地工作,并且以不同的方式进行管理,举例子来说,现在操作系统要管理100个容器中的100个Apache进程,这些容器都部署在一个装有一个操作系统的虚拟机上。而以前很有可能是使用100个虚拟机去一对一管理100个Apache进行,每一个虚拟机还需要运行完整的操作系统。

“Dealer Tire关注的不仅仅是容器的采用问题,还有如何改变对服务器的使用方式,原先我们对待服务器仿佛对待宠物般需要小心呵护,其实我们希望能让服务器变得像耕牛一样能随意使用、服务于我们即可。”Maurer说。

而与此同时,其他公司的IT团队已经开始考虑采用原生Docker之外的工具了。

随着Docker部署的增长,Cox Automotive的库存解决方案部门正在评估Kubernetes和Mesos技术,该集团的生产工程总监Jason Riggins在San Diego举办的Delivery of Things World USA时已经针对公司的DevOps和云采用方案进行了讨论。

在选择容器管理平台以及其他工具时,公司主要考量的指标是产品的稳定性。Riggins说:“我们知道如何快速迭代,但如果不好的东西也被快速迭代了,那情况只会更加不妙。”他的团队也希望有一个原生Docker之外更动态的工具,特别是对容器镜像仓库能有优化。由此可见,不少企业对容器管理平台选择,将取决于平台需要企业在维护和管理上的投入多少。

很多时候企业在选择容器管理平台时的偏好,与企业本身是使用数据中心还是云也有关系。Fisher说:“使用Google Cloud(平台)的多倾向于使用Kubernetes。而管理复杂的私有数据中心的人往往会考虑使用Mesos。不过随着数据中心供应商开始支持Kubernetes和Docker企业版,这种情况开始发生变化。”Cox AutoMotive正在整合数据中心,同时还使用了公有云,因此容器管理产品必须与本地的基础设施和公有云的部署配合使用。

Riggins表示, Cox对Kubernetes和Mesos评估的内容是要测试先前部署容器时出现的“scar tissue”。另外,在做出选择时,同领域企业对技术的选择以及实践的经验对他们而言也很有参考价值。

图片描述

何时改变?

“大多数公司在从试点到大规模生产的整个过程中,都不会改变自己最初选择的容器管理平台,只有在遇到瓶颈的时候才改变现有方案。容器编排的主要目标就是实现组件间更加灵活的整合。”Fisher说。

Social Tables,是一个实现了100%云端本地化的Amazon Web Services用户,它们放弃了最开始选择的AWS弹性计算云容器服务(ECS)。

“我们从ECS 切换到Rancher,是因为我们想从ELB(Elastic Load Balancing,弹性负载均衡)中迁移出来,运行我们自己的全球负载均衡服务,更好地控制我们的流量。”Michael Dumont是华盛顿一家公司的DevOps首席系统工程师,该公司提供社交活动策划和管理SaaS服务。除此之外,该公司还需要Cassandra集群、Elasticsearch集群、Redis以及Prometheus的永久化存储,通过Rancher还获得了基于DNS的service discovery、Docker-Compose支持以及用于身份验证和授权的GitHub OAuth集成。

虽然企业不太可能在投产后改变选择容器编排方案,不过有时候它们也别无选择。在这个特殊的阶段,容器编排、调度、以及相关的存储及网络管理工具都在不断、快速地变化着。例如,Rancher Labs将在Rancher 2.0中全面拥抱Kubernetes。Maurer和Dumont都希望Rancher可以让Rancher Kubernetes保持他们一直喜欢的极简的操作体验及友好的用户界面,同时更加丰富它的功能。

新兴技术,良好的技术支持是必须

对于IT企业来说,在快速迭代的环境中,考量任何新兴的工具时,除了对必要的技术本身的考量,是否能得到良好的技术支持也是企业非常看重的。

Riggins表示,Cox Automotive会选择支持Kubernetes或Mesos的版本,而不是单纯的上游开源版本,因为开源版本在企业环境下,容器部署中的启动和运行会出现问题。虽然他们的工程师熟悉开源版本,但对企业而言,如此操作仍然不是很合适。

在Dealer Tire对容器管理平台进行评估期间,Rancher技术支持团队工程师们帮他们解决了不少技术问题。“而那时我们还没有给Rancher付一分钱,”Maurer说。今天,他的团队背后有企业的支持,他相信开源技术的商业版本是IT企业最好的选择,IT企业希望业务能平滑安全地迁移到新领域,并且尽可能避免花费太多时间和金钱在寻找运行平台上。

“我在采购软件上遇到的最大挑战是,如果供应商给我们限制了两周的试用期,我们真的是很难模拟真正的使用情况,”他说,“能够部署、配置一些重要的东西然后做决定,这实际上很棒。我已经在软件中投入了相当多的业务——我需要购买支持来确保我的业务顺利进行下去。”

了解自身,合理规划

Social Tables的cloud-native、startup pedigree就是为容器化而量身打造的案例,而企业的IT工程师也可以通过容器来满足他们传统的应用程序部署。

在Dealer Tire公司,Maurer的团队从一个简单的应用出发,这个应用并不是面向用户的,而是作为容器的最低风险入口。该团队与应用程序的所有者沟通,来决定哪些适合于容器而哪些不适合。100%的完全容器化对Dealer Tire来说应该是不可能的,但Maurer希望能将所有的Web应用容器化。而与此同时,公司会将新的软件开发部署到容器中,他认为这是天赐良机。

Dealer Tire还决定在容器化上线之前保持原有的模式。Maurer说这回公司一次性做了太多的改变,把原有的工作转换成了一个云模型,而公司有些应用程序还不适用于云上操作。但是,将这些工作负载封装在Docker容器中,未来的云迁移过程会变的更加顺利。

“我们需要一定的时间去学习适应。因为这是一个新的系统,你必须在每个方面都设定新的期望值,”Maurer表示,“你在使用什么目录?你的日志怎么处理?错误和metrics怎么处理?”在一切都稳定部署到服务器上之前,目前的系统是暂时不够稳定的。“这绝不是简单的迁移到容器——因为你改变了一切环境。”Maurer如是说。


Rancher
1.2k 声望2.5k 粉丝

Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐,被Forrester评为“2020年多云容器开发平台领导厂商...