ECS vs. Kubernetes 类似而又不同

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: C2Container Service (ECS)和Kubernetes (K8s) 都解决了同样的问题:跨越主机集群管理容器。ECS和Kubernetes之间的斗争让我想起了vi和Emacs之间的编辑器之战:激烈的讨论集中于技术问题和个人信仰上。

C2Container Service (ECS)和Kubernetes (K8s) 都解决了同样的问题:跨越主机集群管理容器。ECS和Kubernetes之间的斗争让我想起了vi和Emacs之间的编辑器之战:激烈的讨论集中于技术问题和个人信仰上。接下来的问题将帮助你明智的选择。考虑到问题和答案包含了我的主张——ECS和K8s之间的区别,基于我最近项目上的经验。


它合适吗?

一个容器是一个隔离的元素。但是跨主机集群启动容器只是挑战的一小部分。你的容器在一个由基础设施和服务组成的世界中存在:举几个来说,存储系统,数据库,域名服务。

你打算在哪运行你的容器?

  • Amazon Web Services (AWS)
  • Google Cloud Platform (GCP)
  • 其他IaaS供应商

本地部署

能够整合容器管理解决方案到基础设施中是关键。

ECS在容器和其他AWS服务之间提供最无缝的集成。下面是几个例子:

  • 分配IAM角色给每个容器,允许细粒度访问控制其他服务。
  • 在外部负载均衡器注册容器(应用负载均衡器)。
  • 基于集使用扩展EC2实例(自动伸缩)。
  • 收集日志(监测日志)。

在K8s和AWS之间实现一个类似水平的集成是一个大量的工作。例如,用etcd构建一个生产就绪的关键值存储,需要K8s,需要高可用,加密,和几周的滚动更新。通过负载均衡器和域名系统集成K8s是另一个重大的障碍。

另一方面,K8s提供了与GCP免费的集成。Google Container Engine提供以下内容:

  • 在多个高可用区域之间分布集群。
  • 基于使用扩展集群。
  • 为容器提供持久的磁盘。

K8s在使用Google Container Engine(GKE)时提供了最大的价值,因为它与GCP集成。

如果你正在使用其他IaaS供应商,而不是Amazon和谷歌,或运行在本地部署上,那么K8s是唯一的选择,因为ECS只在AWS上运行。可比较的ECS在AWS上或在K8s在GCP上,在这种情况下,构建一个类似的基础设施将是大量工作。

它和你的架构匹配吗?

ECS和K8s在服务发现上遵循不同的策略。

ECS使用负载均衡器进行服务发现。通过负载均衡器可以访问外部和内部服务。应用程序负载均衡器(ALB)提供路径和基于主机的路由以及内部或外部连接。

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

如果你的微服务架构严重依赖服务到服务通信,K8s提供较少的通信成本。除此之外,ECS也为微服务体系结构提供了朴素而简单的方法。特别是,如果大部分的服务需要从互联网上进行访问。

谁运营它?

我强烈反对你自己去运营一个容器集群,只要可能。或者,一个自己动手的容器基础设施是否有有价值会增加你的业务?

通过ECS提供的集群管理是一个完成的管理服务,提供高可用,可扩展性和安全。使用ECS没有额外费用,而且它也被AWS支持计划所覆盖。但是,你仍然对由EC2和VPC组成的底层基础设施负责。

Google Container Engine(GKE)也提供管理服务。GKE提供管理K8s集群包括底层基础设施。如果你的集群由超过5个节点组成,Google的管理费用是每月100美元。

它成功了吗?

K8s在Apache许可2.0下获得许可,然而ECS是AWS提供的专有服务。尽管如此,AWS发布了Blox,这是一个开源项目的集合,用于在ECS上进行容器管理和编排。

K8s社区充满活力,产生了许多创新的解决方案。开源生态系统提供了灵活性。但是不要期望除了K8s核心之外的生产解决方案。

厂商锁定一个流行的争论在ECS与K8s讨论中。我认为,ECS和K8s都将你锁定在他们的解决方案中。尽管K8s是开源的,但是谷歌在技术演变和商业化其云平台方面是主要贡献者。

总结

你有在用AWS作为基础设施供应商吗?使用ECS来管理和调度容器,并从高度集成和完全托管的服务中获益。

你是否使用GCP作为基础设施提供商?使用谷歌容器引擎(GKE)提供完全管理的K8s集群,并集成到GCP基础设施中。

你是在本地部署上运行还是使用另一个IaaS提供商?运营K8s集群可能是你唯一的选择。在集成你现有的基础设施,构建一个高可用和伸缩的K8s集群时,预期会有大量的eff。

本文转自中文社区-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 启动失败的问题
1965 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 无状态服务
199 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 服务器暴露于互联网
119 0
|
存储 Kubernetes API
探索使用Kubernetes扩展专用游戏服务器:第3部分 - 扩展节点
探索使用Kubernetes扩展专用游戏服务器:第3部分 - 扩展节点
301 0
探索使用Kubernetes扩展专用游戏服务器:第3部分 - 扩展节点
|
Kubernetes 数据可视化 API
探索使用Kubernetes扩展专用游戏服务器:第2部分-管理CPU和内存
探索使用Kubernetes扩展专用游戏服务器:第2部分-管理CPU和内存
127 0
探索使用Kubernetes扩展专用游戏服务器:第2部分-管理CPU和内存
Kubernetes----安装部署NFS服务器
Kubernetes----安装部署NFS服务器
253 0

热门文章

最新文章