ECS vs Kubernetes:相似但是不同

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 本文讲的是ECS vs Kubernetes:相似但是不同【编者的话】在云计算2.0时代,我们该如何管理大规模的容器应用?ECS和Kubernetes为我们提供了解决方案。本文讨论了容器与基础设施集成、使用公有云的费用等问题,详细内容请浏览下文。
本文讲的是ECS vs Kubernetes:相似但是不同【编者的话】在云计算2.0时代,我们该如何管理大规模的容器应用?ECS和Kubernetes为我们提供了解决方案。本文讨论了容器与基础设施集成、使用公有云的费用等问题,详细内容请浏览下文。

【3 天烧脑式基于Docker的CI/CD实战训练营 | 北京站】本次培训围绕基于Docker的CI/CD实战展开,具体内容包括:持续集成与持续交付(CI/CD)概览;持续集成系统介绍;客户端与服务端的 CI/CD 实践;开发流程中引入 CI、CD;Gitlab 和 CI、CD 工具;Gitlab CI、Drone 的使用以及实践经验分享等。

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

如何适配容器与基础设施

容器是一个隔离元件。在一组主机上,启动容器只是挑战的一小部分。容器位于由存储系统、数据库、域名服务等基础架构和服务组成的空间内。我们可以在哪里运行容器?
  • 亚马逊网络服务(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是一个好的选择。

原文链接:ECS vs. Kubernetes: Similar, but Different(翻译:Jack Yue)

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

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

本文作者:Jack Yue

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

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

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes Linux Docker
【kubernetes】修复 linux 服务器重启后,kubelet 启动失败的问题
【kubernetes】修复 linux 服务器重启后,kubelet 启动失败的问题
1971 1
|
1月前
|
弹性计算 运维 Kubernetes
云原生K8S场景自动化响应ECS系统事件
客户云原生K8S场景下,通过社区开源NPD+Draino+Autoscaler零开发,对接响应ECS主动运维事件,通过自动响应事件减少非预期宕机。
|
2月前
|
Kubernetes 网络协议 网络架构
「译文」比较开源 k8s LoadBalancer-MetalLB vs PureLB vs OpenELB
「译文」比较开源 k8s LoadBalancer-MetalLB vs PureLB vs OpenELB
|
6月前
|
存储 Kubernetes NoSQL
【K8S系列】第七讲:有状态服务 VS 无状态服务
【K8S系列】第七讲:有状态服务 VS 无状态服务
206 0
|
8月前
|
Kubernetes Devops 关系型数据库
阿里云内部K8s、ECS、RDS、DevOps实战手册,超赞
有不少小伙伴,一直在后台问我要一些资料,同时,我也在想,其实大家谁都不缺资料,缺的是有实战价值,能够看了之后在实际的工作环境可以用起来的实战技术资料,而并非那些纸上谈兵的理论,所以。。。
|
9月前
|
Kubernetes 负载均衡 网络协议
简单操作:10分钟实现在kubernetes(k8s)里面部署服务器集群并访问项目(docker三)
简单操作:10分钟实现在kubernetes(k8s)里面部署服务器集群并访问项目(docker三)
|
Kubernetes 安全 Java
超 38 万个 Kubernetes API 服务器暴露于互联网
超 38 万个 Kubernetes API 服务器暴露于互联网
120 0
|
存储 Kubernetes API
探索使用Kubernetes扩展专用游戏服务器:第3部分 - 扩展节点
探索使用Kubernetes扩展专用游戏服务器:第3部分 - 扩展节点
301 0
探索使用Kubernetes扩展专用游戏服务器:第3部分 - 扩展节点
|
Kubernetes 数据可视化 API
探索使用Kubernetes扩展专用游戏服务器:第2部分-管理CPU和内存
探索使用Kubernetes扩展专用游戏服务器:第2部分-管理CPU和内存
128 0
探索使用Kubernetes扩展专用游戏服务器:第2部分-管理CPU和内存
Kubernetes----安装部署NFS服务器
Kubernetes----安装部署NFS服务器
253 0