博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECS vs Kubernetes:相似但是不同
阅读量:6831 次
发布时间:2019-06-26

本文共 2067 字,大约阅读时间需要 6 分钟。

本文讲的是ECS vs Kubernetes:相似但是不同【编者的话】在云计算2.0时代,我们该如何管理大规模的容器应用?ECS和Kubernetes为我们提供了解决方案。本文讨论了容器与基础设施集成、使用公有云的费用等问题,详细内容请浏览下文。




ECS容器服务(EC2)和Kubernetes(K8s)解决了同样的问题:管理跨主机集群的容器。ECS和Kubernetes之间的容器管理服务竞争,让我想起了vi和Emacs之间的编辑器之争:热烈的讨论集中于技术价值和个人信仰,以下问题将有助于你作出明智的选择。根据我最近的项目经验,问题和答案包含了我对ECS和Kubernetes之间差异的看法。


如何适配容器与基础设施

容器是一个隔离元件。在一组主机上,启动容器只是挑战的一小部分。容器位于由存储系统、数据库、域名服务等基础架构和服务组成的空间内。我们可以在哪里运行容器?

  • 亚马逊网络服务(AWS)
  • 谷歌云平台(GCP)
  • 其他IaaS服务供应商
  • 私有云

把容器管理解决方案集成到你的基础设施中是关键。ECS提供了容器和其他AWS服务之间无缝的集成,下面是开箱即用的几个例子:

  • 将IAM角色分配给每个容器,允许它们对其他AWS服务精细的访问控制
  • 在外部负载均衡器上注册容器
  • 基于集群扩展(自动缩放)EC2实例
  • 收集日志(CloudWatch日志)

集成K8s和AWS需要很多工作:使用具有高可用性、加密、滚动更新功能的K8s,需要花费几个星期。而且,K8s与负载均衡器、域名系统的集成也是一个问题。


另一方面,Kubernetes与谷歌云平台(GCP)无缝集成。谷歌云平台(GCP)提供以下服务:

  • 在多个区域之间,分配工作负载到集群,实现服务高可用性。
  • 根据使用情况调整集群。
  • 为容器提供持久化存储。

因为与谷歌云平台(GCP)无缝集成,Kubernetes与Google容器管理引擎(GKE)一起使用,将发挥最大效益。除了AWS和GCP之外,如果你选择其他IaaS服务供应商,或者在私有云中运行工作负载,Kubernetes会提供如AWS ECS一样的服务。但是,上述使用方式会需要更多的工作量。

与你的基础架构匹配

ECS和Kubernetes遵循不同的服务发现策略。


ECS使用负载均衡器实现服务发现,内部和外部服务都需要通过负载均衡器访问。与内外部服务一样,应用程序负载均衡器(ALB)提供基于主机路由的连接。


Kubernetes使用与ECS不同的服务发现策略。只有来自集群外部的请求才能通过负载均衡器访问。虚拟IP提供对内部服务之间的访问,而不需要通过负载均衡器。


如果你的微服务架构很依赖于内部服务之间的通信,Kubernetes会减少通信开销。如果你的服务需要从外部互联网访问,ECS也为微服务架构提供了简单的方法。

如何运维

我反对你自己操作容器集群。如果有必要的话,请你思考容器基础设施是否增加了重要的业务价值?


ECS提供的集群管理是一种完全管理的服务,它包括高可用性、可扩展性和安全性。但你需要对由EC2和VPC组成的基础设施负责。使用ECS不需要额外的费用,并且你的AWS支持计划也包含在内。


Google容器管理引擎(GKE)也提供容器集群管理服务。GKE提供了一个受管理的Kubernetes集群,包括底层基础设施。如果你的集群由五个以上的主机节点组成,那么Google每月会收取100美元的管理费用。

是否付费

Kubernetes是根据Apache 2.0许可证授权的开源软件,而ECS是AWS提供的专有服务。尽管如此,AWS还公布了Blox,这是容器管理和ECS协调开发的结果。


Kubernetes社区充满活力,创造了许多创新的解决方案,这使得K8s的开源生态更具有灵活性。但是,除了Kubernetes核心之外,你不要指望生产环境的解决方案。


供应商锁定是ECS和K8s的一个受争议话题。无论使用ECS或Kubernetes,你都会被云服务供应商锁定。即便开放了源码,Google依然对Kubernetes的云平台发展和盈利感兴趣。

总结

你是否将AWS作为基础设施供应商,使用ECS管理和编排你的容器,并从高度集成和完全管理的服务中受益?


你是否将GCP作为基础设施供应商,使用Google容器管理引擎(GKE)完全管理的K8s集群?


你是否使用其他IaaS服务供应商或者在私有云中运行你的工作负载?与现有基础架构集成高可用、可扩展的集群时,Kubernetes是一个好的选择。


原文链接:(翻译:Jack Yue)


译者介绍: Jack,开源软件研究者,研究方向是容器技术和深度学习,目前积极活跃于DockOne、Kubernetes、Tensorflow技术社区。

原文发布时间为:2017-07-30

本文作者:Jack Yue

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:ECS vs Kubernetes:相似但是不同

转载地址:http://xfikl.baihongyu.com/

你可能感兴趣的文章
Jboss集群session一致性
查看>>
在CentOS6.8下用脚本安装SaltStack
查看>>
自动拆箱导致空指针异常
查看>>
将博客搬至CSDN
查看>>
关于网银项目完工总结
查看>>
centos 7 安装和配置vncserver
查看>>
git的一些基本概念,及单分支操作
查看>>
accesskey属性 显示“快捷键清单”
查看>>
物理机转换虚拟机 VMware vCenter Converter Standalone 5.5
查看>>
Spring文件上传,包括一次选中多个文件
查看>>
Server2008R2DC安装笔记
查看>>
知识链-数据结构
查看>>
开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm
查看>>
SOA架构
查看>>
如何给magento的分类添加自定义属性
查看>>
2014-07-09 Java Web的学习(5)-----会话管理(Cookie和Session)
查看>>
图片截取TKImageView
查看>>
Java开发教程(5)
查看>>
暑期系列①对想学点编程的初学者们扯点
查看>>
Storm概念详解和工作原理,topology、spout、bolt的细节和API讲解之一
查看>>