【51CTO.com快译】云计算为微服务架构的部署带来了新的可能性,而托管和非托管的容器服务以及无服务器托管选项彻底改变了云中容器工作负载的部署。
虽然云中容器生态系统的非托管选项或企业采用自己构建的方法可以让其更好地控制堆栈,但需要拥有解决方案的端到端生命周期、安全性和运营。另一方面,托管容器服务由于与企业当前的云生态系统、最佳实践、安全性和模块化的内置集成,可以使其使用更加简单并且更受欢迎。
全球领先的三家云计算提供商(AWS、Azure和GCP)都拥有强大的产品和服务组合,以支持用于云原生和混合部署的容器化工作负载。Kubernetes仍然是云中最受欢迎的容器编排解决方案。这种企业级解决方案也是生产部署的首选平台。每个主要的云计算服务提供商都提供了本地托管的Kubernetes服务以及独立的容器解决方案。这些解决方案都可以轻松地与企业采用的云平台提供的强大支持服务生态系统相集成,其中包括容器注册、身份和访问管理以及安全监控。
本文将探讨在云中部署容器的一些更流行的选项和用例。
云中容器工作负载的流行选项
全球主要的云计算服务提供商都为容器工作负载托管提供了许多可用选项,以下进行下探讨。
1.AWS
AWS云平台为容器工作负载提供了多种服务,最受欢迎的是EKS、ECS和Fargate。它还提供扩展的服务和工具生态系统,例如用于机器学习的AWS深度学习容器、Amazon Elastic Container Registry和用于混合部署的EKS Anywhere(将在今年推出)。
(1)Amazon Elastic Kubernetes Service
Amazon Elastic Kubernetes Service(EKS)可用于在AWS云平台中创建托管的Kubernetes集群,其中部署、扩展和修补都由平台本身管理。该服务已通过Kubernetes认证,并使用Amazon EKS Distro(Kubernetes的开源版本)。
由于控制平台由AWS管理,该解决方案可在零停机时间的情况下自动获取最新的安全更新,并确保容器的安全托管环境。该服务还确保了高可用性,实现了99.95%正常运行时间的服务等级协议(SLA)——通过跨多个AWS可用区部署Kubernetes的控制平台来实现。
AWS对EKS群集的统一费率为每小时0.1美元,并且对工作节点使用的EC2实例或EBS卷收取额外费用。通过选择用于开发和测试环境的EC2 Spot实例,以及用于生产部署的保留实例,可以降低成本。
如果企业计划在AWS云平台上进行基于微服务的应用程序的生产部署、扩展Web应用程序、与机器学习模型集成、批处理作业等,那么采用EKS是最有利的。
(2)AWS Fargate
AWS Fargate是一种适用于容器的无服务器计算服务,可与Amazon EKS和Amazon ECS集成。它减少了运营开销,因为企业不必为托管容器部署和配置底层基础设施,而且只需为用于运行工作负载的计算容量付费。
容器在具有专用内核运行时的隔离环境中运行,从而确保提高工作负载的安全性。企业还可以利用Spot实例(用于开发/测试环境)并计算承诺使用量的节省计划,以降低总体成本。如果企业希望以最小的开发和管理开销从单体架构切换到基于微服务的架构,AWS Fargate可以提供巨大的优势。
(3)Amazon Elastic Container Service
Amazon Elastic ContainerService(ECS)可用于在自我管理的EC2实例集群或Fargate管理的无服务器基础设施中托管容器服务。前一种方法可以更好地控制托管容器工作负载的端到端堆栈。
此外,它还提供了服务的集中可见性以及通过API调用管理它们的能力。如果将EC2用于底层集群,则同样的管理功能也可用于ECS。但是,集群管理、扩展和操作层都由平台处理,从而消除了这种开销。
ECS是一项区域服务,可在AWS区域内的各个可用区中高度可用,确保托管的容器工作负载的可用性。
2.Microsoft Azure
Microsoft Azure提供托管Kubernetes服务以及用于部署独立容器实例的选项。Azure容器注册表、与安全中心的集成和容器映像扫描只是支持容器工作负载生态系统的其他一些Azure增值服务。
(1)Azure Kubernetes Service
托管Kubernetes服务Azure Kubernetes Service (AKS)是当今公共云中最受欢迎的容器托管服务之一。它由托管主节点的控制平台组成,由公开Kubernetes API的Azure平台管理;然后是客户管理的代理节点,其中部署了容器工作负载。
该平台处理所有集群管理活动,例如健康监控和维护。它还提供与Azure RBAC和Azure AD的轻松集成以进行群集管理、与Azure Monitor的内置集成,以及使用Docker Registry或Azure Container Registry检索容器映像的灵活性。
AKS可以在不收取集群管理费用的情况下使用,同时保持99.5%的服务等级协议(SLA)。企业只需按每秒计费模型为用于AKS群集的虚拟机(VM)实例、存储和网络资源付费。还可以选择以每集群每小时0.1美元的价格采用正常运行时间服务等级协议(SLA)。可以在群集部署期间使用Azure可用性区域配置高可用性。如果购买了可选的正常运行时间服务等级协议(SLA),此类群集的服务等级协议(SLA)为99.95%,而不使用可用性区域的群集的服务等级协议(SLA)为99.9%。在这两种情况下,客户都需要为托管工作负载的代理节点付费。
(2)Azure容器实例
Azure容器实例提供了一种易于使用的解决方案,用于在Azure中部署容器,而无需部署编排平台。由于容器实例不需要配置任何虚拟机,因此实例可在几秒钟内启动。该服务还使企业可以灵活地配置工作负载所需的CPU内核和内存,并且只需为此付费。该服务可以与Azure Files集成以进行持久存储、连接到Azure虚拟网络,还可以与Azure Monitor集成以进行资源使用监控。
Azure容器实例更适合为不需要高级功能(如按需缩放或多容器服务发现)的简单应用程序部署隔离的容器实例。
(3)用于容器的Azure Web App
Azure Web App允许企业使用来自Docker Hub或Azure容器注册表的容器映像在服务上部署容器。后端操作系统补丁、容量管理和服务的负载平衡由平台处理,该服务通过基于配置的扩展规则的扩展或向外扩展选项实现按需扩展。这也有助于成本管理,即在非高峰时间自动降低成本。该服务还确保了高可用性,因为容器服务可以跨多个Azure区域部署。
3.谷歌云平台(GCP)
Kubernetes起源于谷歌公司的内部项目,为在云中和内部部署设施托管的托管容器提供了一套强大的产品。
(1)Google Kubernetes Engine
Google Kubernetes Engine(GKE)是来自谷歌云平台的托管Kubernetes服务,可用于托管高度可用且可扩展的容器工作负载。如果企业需要在隔离环境中运行容易受到安全威胁的工作负载,它还提供了GKE沙箱选项。
与其他云计算服务提供商提供的托管Kubernetes服务一样,GKE提供故障节点的自动修复、升级和按需扩展。它还可以与GCP监控服务集成,以深入了解已经部署应用程序的运行状况。
如果企业计划托管图形密集型、高性能计算(HPC)和机器学习工作负载,则可以在部署期间通过GPU和TPU等专用硬件加速器来增强GKE。最后,GKE为每秒计费和可容忍停机的开发环境提供了一个选项,可以为企业的集群使用抢占式虚拟机以进一步降低成本。
(2)Cloud Run
如果企业希望在GCP中运行容器化应用程序,而无需管理底层基础设施的开销,Cloud Run是一种很好的选择。使用这种完全托管的容器无服务器托管服务,只需为容器消耗的资源付费。
Cloud Run也可以部署到Anthos GKE集群或内部部署工作负载中。Cloud Run与其他GCP服务(例如Cloud Code、Cloud Logging、Monitoring、Artifact Registry和Cloud Build)完美集成,可以满足企业所有容器化应用程序开发需求。
4.混合部署
对于许多企业来说,其云采用之旅的第一步是实施混合部署,其中容器化应用程序的某些组件保留在内部部署设施,而其他组件则移至云端。有多种流行的工具和服务可用于帮助满足混合云和多云部署的需求,所有的主要云计算提供商都在这一领域进行了重点投资。
(1)Azure Arc
Azure Arc为在内部部署以及跨多云环境中部署的服务器、数据服务和Kubernetes集群提供基于Azure的统一管理平台。
启用Azure Arc的Kubernetes群集支持多个流行的Kubernetes发行版,这些发行版已通过云原生计算基金会(CNCF)的认证。该服务允许组织在Azure中跨异构环境列出Kubernetes集群以获得统一视图,并支持与Azure管理功能(例如Azure Policy和Azure Monitor)的集成。
(2)Google Anthos
谷歌云平台(GCP)的Anthos是一种全面而先进的解决方案,可用于在云端和内部部署托管的Kubernetes集群。Anthos提供了一个GKE本地选项,企业可以使用它来将新的GKE集群部署到本地私有云中,也可以向Anthos注册现有的非GKE集群。GKE on AWS在多云场景中提供帮助,可以使用Anthos UI中的管理服务在AWS中创建、更新或删除兼容的GKE环境。与此同时,Anthos Config Management和Service Mesh解决方案有助于策略自动化、安全管理和对跨多个集群部署的应用程序的可见性,以获得统一的管理体验。
(3)AWS Outposts
AWS Outposts是一种混合云服务,可将AWS服务(包括EKS等容器服务)引入企业的内部部署的数据中心。这一服务由AWS安装、更新和完全管理。该解决方案可以连接到本地AWS区域以获得混合体验,其中AWS Outposts中的服务可以直接连接到云中的服务。
AWS Outposts的目标客户是那些喜欢在内部部署设施部署容器化工作负载以进行数据驻留、本地处理等,同时可以灵活地将AWS云平台的支持服务用于其应用程序的客户。
最近发布的EKS Anywhere是另一种选择,旨在为混合部署提供与Amazon EKS相同的体验。EKS Anywhere预计将于2021年推出。
选择合适的容器服务
由于云中有各种各样的服务可用于托管容器化工作负载,为企业的需求选择合适的服务的第一步是将其特定应用程序需求映射到给定服务的功能。建议使用主要云计算服务提供商提供的托管容器服务,因为它们可以更好地与企业采用的云平台服务集成。
企业在为其应用程序选择最佳容器服务时,可以选择生产就绪服务,同时避免潜在的供应商锁定。企业还应该考虑解决方案的未来路线图,以及易于监控、日志记录、可用性、可扩展性、安全管理和自动化。
从托管Kubernetes服务开始是一个很好的选择,因为Kubernetes最适合可扩展、安全且高度可用的生产部署。如果对混合集成有明确的要求,其中一些容器化工作负载可能保留在内部部署设施中,可以选择Azur eArc或Google Anthos等混合解决方案。最后,如果企业正在寻找简单的隔离容器部署,那么无服务器解决方案可能是一个最佳的选择。
原文标题:Containers in the Cloud: What Are Your Options?,作者:Kentaro Wakayama
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】