译者注:
本文带有一些主观色彩,作者的观点是否客观我还没有去考证,仅供参考。以下是对本文中一些缩写的解释:
- Google GKE = Google Kubernetes Engine
- Microsoft AKS = Microsoft Azure Kubernetes Services
- Amazon EKS = Amazon Elastic Container Service for Kubernetes
之前已经有非常多关于这些托管在云上的Kubernetes供应商之间的对比,但是,或许这次的对比是最有诚意的。
下面是一张Google表格的截图,它对比了GKE、AKS和EKS。你可能注意到有些格子里面已经有了评论。这些评论会链接到我获取信息的地方。
更新:这份表格现在也包含了IBM IKS和阿里云ACK。
如果有任何不正确的地方,请在表格里写下评论或者在文章下面给我留言。
这将会是一次残酷的对比,如果有人能提供一些事实依据,我会很乐意改变我的想法。
就目前的情况,我用过EKS,也是AWS的重度用户。我还接触过一点GKE,但那只是不久前我出于个人目的,制作Kubernetes The Hard way这个教程时在GKE上启了一个简单快速的测试集群。我挺想多使用一下GKE的,但公司里用得是AWS。
自从去年我用了几个月的Azure之后,就一直想回避它。当时我是微软的一个合作伙伴,所以免不了要使用Azure。它的部分功能还不错,但是用户体验和亚马逊相比真是天壤之别。
我会根据不同的场景将我的建议分类。
新上的项目
我一直在试着权衡是否建议人们去评估谷歌、亚马逊以及微软提供的所有云服务。Kubernetes只是一个大型系统中的单一组件,还有其他的因素会影响我们的决定。但不管怎样,其实现在各个云厂商所提供的功能和服务并没有太大的不同。
当然市场团队可能会说并非如此,但当你看看大部分公司所需要的那些功能特性,其实那些云厂商都能提供。
所以我们就简单粗暴一点,比如你就只想用Kubernetes。那答案很清晰,就选GKE吧。
为什么?因为用几乎每一种可量化的方式将它与竞争对手相比,它都是更便宜、更快、更好的那个。
你可能会觉得集群创建时间并不是什么大问题,3分钟和20分钟相比没什么区别。毕竟你有多少次会去真正创建一个集群呢?好吧,如果要花费20多分钟而且有时还会报错,那确实不会经常去创建,因为你会为了适应它而去改变自己的整个工作流程。
但是,如果创建集群只需要3分钟,那你会发现你所用的测试基础架构是可以随时丢弃重建的,这会是一种完全不同的工作方式。
网络功能是另外一个因素,谷歌在这方面可是甩开其他对手10条街的水平。在高可用和扩展性方面也差不多。
我不会说表格中的每一行都是一个原因,因为我觉得数据不言自明。
我们已经被AWS绑定了
那你可能没有太多的选择,光是一个Kubernetes还不足以成为迁移到其他云平台的理由。
希望你能看到这次对比并且认识到情况可能会更糟。EKS刚推出不久,亚马逊团队会快速迭代。我对于亚马逊能否在网络性能或者虚拟机启动时间上赶上谷歌持怀疑态度,但情况还是可以忍受的。
如果他们能在主节点上启用默认的准入控制器就好了。还有,我完全不明白为什么创建集群会这么慢。我在工作中测量过集群构建时间,每次都要花大约20分钟才能达到我能在上面跑集成测试的状态。
更新:准入控制器已经被加上了。
另一个烦人的地方是缺少工作节点的管理。希望EKS的工程师们能像GKE那样都打包集成好。
有意思的是我注意到EKS居然支持i3.metal实例,这是Kubernetes支持裸金属工作节点的唯一解决方案。这对于一些用户来说可能会有用。
我的公司正在考虑用Azure
同样的,你真正能做的也不多。我的建议是准备一个demo来对比AKS和GKE,试着将开放人员的经验传递给做决定的人。
给他们展示Azure上的某些操作是如何通过一个难用的交互页面才能完成,其他的需要Powershell,还有一些乱七八糟的还要用到命令行。试着让人们去说明操作缓慢的原因,以及它在整体上是如何影响DevOps流水线和自动化的。没错,你确实能让Azure跑起来,但生活已经如此艰难,为什么不让自己轻松一点呢?
有可能你被类似Active Directory这样的需求所绑架了,那就真的是不走运了。
我说下面这句话的时候是很认真的:如果我所在的公司决定迁移到Azure上,我会重新找一份工作的。顺便说一句,情况并非总是如此。我年轻的时候管理过Windows服务器,当时每个礼拜我都要修复损坏的TFS(Team Foundation Server),还要走进机房去更换磁带。
现如今我想要用编程的方式来控制基础架构。所以它需要高效又没有太多Bug,这样我才能在上面去构建一些酷炫的自动化工程。而在Azure这样的产品上工作,尤其是我还用了好多年的AWS,真的会让人感到绝望。
更新:为了量化Azure AKS到底有多慢以及有多少bug,有可能会想看看Dolos项目。
对于所有那些正在从本地数据中心往Azure上迁移的人来说,在敏捷性方面可能会是一个进步,所以我祝你好运吧。
好了,现在你清楚了!这个网站需要对比跑在云上的Kubernetes服务。我的建议是只要有可能就用谷歌 GKE.如果你已经上了AWS,那么就试试EKS吧,但现阶段它真的给不了你太多东西。在他们将可管理的工作节点以及其他一些功能集成之前,你可能***先看看Kops和一些其他的云产品。