菜单

此页面上的内容由机器翻译完成。某些内容的质量可能并不完美。

分享反馈

AWS ECS 与 Kubernetes:不公平的比较?

目录

分享该页面

Yifat Perry
Yifat Perry

AWS Elastic Container Service (ECS) 是 Amazon 自主开发的容器编排平台。它在易用性方面表现出色,但它是 Kubernetes 的真正替代品吗?Kubernetes 是非常流行的容器编排事实标准。

在这篇文章中,我们认为将 ECS 与普通 Kubernetes 进行比较并不完全准确,因为 ECS 提供了 Kubernetes 无法提供的完全托管体验。我们还将 Amazon Elastic Kubernetes Service (EKS) 视为公平竞争的第三种选择。此外,我们还展示了NetApp Cloud Volumes ONTAP如何帮助在 AWS 上为 ECS、EKS 或普通Kubernetes配置存储。

 在本文中,您将了解: 

什么是 AWS ECS?

Amazon Elastic Container Service (Amazon ECS) 是一种运行和管理 Docker 容器的容器编排服务。它在 Amazon 云上运行虚拟机群集,同时跨多个可用区 (AZ) 管理、扩展和调度这些计算机上的容器组。

ECS 提供了一种方便的编程方式来检查和修改群集的状态,对容器执行操作,并直接访问与群集相关的 Amazon 服务,例如 IAM、CloudWatch 和 CloudTrail。

图表 - 任务定义图片来源:AWS

Amazon ECS 的优势包括:

  • 无服务器基础架构: ECS 让您可以操作容器,而无需直接管理虚拟机。ECS 服务部署 VM 并在其上管理容器,无需用户干预。
  • 内置安全性:默认情况下,Amazon ECS 是安全的,所有容器都在具有隔离、安全网络的虚拟私有云中启动。
  • AWS 集成: ECS 与其他 Amazon 服务顺利集成,这些服务可用于容器化工作负载,例如 Elastic Load Balancing、CloudWatch、CloudFormation 和 IAM。
  • Spot 实例:由于容器是不可变的,因此您可以使用 Amazon EC2 Spot 实例(无需提前通知即可关闭)运行许多工作负载,并节省 90% 的按需实例成本。

什么是 Kubernetes?

Kubernetes 是一个开源容器编排框架。它最初是由 Google 根据多年运行世界上最大的容器化系统的经验开发的。Kubernetes 被广泛采用,如今已成为容器编排的实际标准。

Kubernetes 的主要功能包括服务发现和负载平衡、协调存储,包括持久存储、容器化应用程序的自动回滚、Kubernetes 集群的自我修复、机密和配置管理。

Kubernetes 集群图图片来源:Kubernetes.io

AWS ECS 与 Kubernetes

将 Kubernetes 与 Amazon ECS 进行比较并不完全公平。Amazon ECS 在一个产品中提供两个元素:容器编排平台,以及运行该平台并配置硬件资源的托管服务。Kubernetes 仅提供这些元素之一。

越来越多的组织正在采用托管 Kubernetes 服务,这可以降低 Kubernetes 的复杂性,并帮助他们更快地投入生产。此类服务的示例包括 Amazon Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS) 和 Google Kubernetes Engine (GKE)。这些服务为 Kubernetes 添加了一个管理层,使其完全可以与 Amazon ECS 相媲美。

Kubernetes 的优势包括:

  • 无服务器基础设施:无需直接访问虚拟机即可运行 Kubernetes 容器。此外,还有一些 Kubernetes 解决方案是真正的无服务器解决方案,可与 AWS Fargate 或 Azure Container Instances 集成。
  • 内置安全性: Kubernetes 创建自己的私有网络,拥有自己的隔离、安全网络。
  • 供应商无关:与 Amazon ECS 不同,Kubernetes 是一个与供应商无关的平台,可以在任何云提供商或本地运行。Kubernetes 工作负载是便携式的,支持混合和多云策略。
  • 开源: Kubernetes 由庞大的开源社区提供支持,拥有庞大的工具和插件生态系统、强大的支持和雄心勃勃的开发路线图。
  • 久经考验: Kubernetes 拥有任何容器编排平台中最广泛的生产经验。它在几乎任何规模上都被证明是坚固可靠的。

AWS ECS 与 EKS

AWS ECS 为您提供了一种在 AWS 中管理容器服务的方法,但如果您想从 AWS 服务中运行 Kubernetes,该怎么办?Amazon Elastic Kubernetes Service (Amazon EKS) 是 AWS 中用于 Kubernetes 的管理平台。它由 Kubernetes 项目认证,因此保证运行您可能在 Kubernetes 生态系统中使用的任何现有应用程序、工具或插件。

以下是 ECS 和 EKS 之间的一些主要区别。

  Amazon ECS Amazon EKS
定价 ECS 本身是免费的,您只需为使用的
Amazon EC2 资源付费。
EKS 管理层每个集群每月产生 $144 的额外成本。
易于部署 直接从 AWS 管理控制台无缝部署任务。 通过 Kops 或 CloudFormation 模板配置和部署集群,这更加复杂。
兼容性 特定于 Amazon。 支持多云和混合云部署。

AWS ECS、EKS 或普通 Kubernetes:您应该选择哪一个?

在 Amazon ECS、EKS 和自我管理的 Kubernetes 之间进行选择取决于项目的规模和性质:

  • 小型部署 更喜欢 ECS,因为它具有无缝的部署和配置。
  • 大型或混合部署 更喜欢 EKS,因为它在云和本地系统之间具有更强的定制性和更好的可移植性。
  • 传统工作负载转换到容器化环境可能会从使用纯 Kubernetes 中获得最大收益,因为它将允许您在本地构建开发/测试/生产环境,然后在需要时将其移动到云中。

ECS、Kubernetes 和 Cloud Volumes ONTAP

在部署容器化工作负载时,Kubernetes 和 Amazon ECS 都有一定的限制,可能会在没有帮助的情况下阻碍它们在企业级别的使用。例如,当容器中的数据需要持久存储时(例如在数据库的情况下),成本可能是一个相当大的因素。如果容器中的数据需要用于测试目的,该怎么办?这就是 NetApp Cloud Volumes ONTAP 可以提供帮助的地方。

NetApp Cloud Volumes ONTAP是领先的企业级数据管理解决方案,提供基于 AWS、Azure 和 Google Cloud 云计算和存储的安全、成熟的存储管理服务。借助 NetApp Trident,可以自动动态配置 Azure Disk、Amazon EBS 或 Google Persistent Disk 上的存储卷,无需用户付出任何努力。

Cloud Volumes ONTAP 支持企业用例,如文件服务、数据库、DevOps 和应用程序工作负载。在Kubernetes存储领域Cloud Volumes ONTAP容器化工作负载的持久存储需求提供Kubernetes集成方案,并支持一系列云原生环境无法提供的强大功能,包括:Kubernetes NFS 共享高可用性、经济高效的持久数据存储保护、通过NetApp存储效率功能降低Kubernetes云存储成本、云自动化等。

Drift chat loading