当前位置: 首页 > 科技观察

云中的容器:您有哪些选择?

时间:2023-03-12 09:23:25 科技观察

【.com快译】云计算为微服务架构的部署带来了新的可能性,而托管和非托管容器服务以及无服务器托管选项已经彻底改变了容器工作负载在云中的部署。虽然云中容器生态系统的非托管选项或构建自己的方法可以让企业更好地控制堆栈,但仍需要拥有解决方案的端到端生命周期、安全性和运营。另一方面,由于与企业当前的云生态系统、最佳实践、安全性和模块化的内置集成,托管容器服务可以使其更易于使用和更受欢迎。全球三大领先的云计算提供商(AWS、Azure和GCP)各自拥有强大的产品和服务组合,以支持云原生和混合部署的容器化工作负载。Kubernetes仍然是云中最受欢迎的容器编排解决方案。这个企业级解决方案也是生产部署的首选平台。每个主要的云计算服务提供商都提供本地托管的Kubernetes服务以及独立的容器解决方案。这些解决方案都可以轻松地与企业云平台提供的支持服务的强大生态系统集成,包括容器注册、身份和访问管理以及安全监控。本文探讨了在云中部署容器的一些更流行的选项和用例。云中容器工作负载的热门选项全球主要的云计算服务提供商提供了许多可用于容器工作负载托管的选项,下面将对其进行探讨。1.AWSAWS云平台为容器工作负载提供多种服务,最受欢迎的是EKS、ECS和Fargate。它还提供了一个扩展的服务和工具生态系统,例如用于机器学习的AWSDeepLearningContainers、AmazonElasticContainerRegistry和用于混合部署的EKSAnywhere(将于今年推出)。(1)AmazonElasticKubernetesServiceAmazonElasticKubernetesService(EKS)可用于在AWS云平台中创建托管的Kubernetes集群,部署、扩容、打补丁均由平台自行管理。该服务已通过Kubernetes认证,并使用AmazonEKSDistro(Kubernetes的开源版本)。由于控制平面由AWS管理,该解决方案可自动获取最新的安全更新,零停机时间,并确保容器的安全托管环境。该服务还确保高可用性,实现99.95%正常运行时间的服务级别协议(SLA)——通过跨多个AWS可用区部署Kubernetes的控制平面实现。AWS对EKS集群采用每小时0.10美元的固定费率,并对工作节点使用的EC2实例或EBS卷收取额外费用。通过为开发和测试环境选择EC2Spot实例以及为生产部署选择预留实例来降低成本。如果企业计划在AWS云平台上进行基于微服务的应用程序的生产部署、扩展Web应用程序、与机器学习模型集成、批处理作业等,则采用EKS最为有利。(2)AWSFargateAWSFargate是一种面向容器的无服务器计算服务,可以与AmazonEKS和AmazonECS集成。它减少了运营开销,因为企业不必部署和配置底层基础设施来托管容器,而且他们只需为用于运行工作负载的计算能力付费。容器在具有专用内核运行时的隔离环境中运行,确保更高的工作负载安全性。企业还可以利用Spot实例(用于开发/测试环境)并计算承诺使用的节省计划,以降低总体成本。对于希望以最小的开发和管理开销从单体架构切换到基于微服务的架构的企业,AWSFargate可以提供巨大的优势。(3)AmazonElasticContainerServiceAmazonElasticContainerService(ECS)可用于在自我管理的EC2实例集群或Fargate管理的无服务器基础设施中托管容器服务。前一种方法可以更好地控制托管容器工作负载的端到端堆栈。此外,它还提供服务的集中可见性以及通过API调用管理它们的能力。如果EC2用于底层集群,则相同的管理功能也可用于ECS。然而,集群管理、扩展和操作层都由平台处理,从而消除了这种开销。ECS是一种区域服务,在AWS区域内的各个可用区中具有高可用性,可确保托管容器工作负载的可用性。2.MicrosoftAzureMicrosoftAzure提供托管的Kubernetes服务和用于部署独立容器实例的选项。Azure容器注册表、与安全中心的集成以及容器映像扫描只是支持容器工作负载生态系统的其他一些Azure增值服务。(1)AzureKubernetesService托管Kubernetes服务AzureKubernetesService(AKS)是当今公有云中最流行的容器托管服务之一。它由一个托管主节点的控制平面组成,由公开KubernetesAPI的Azure平台管理;然后是客户管理的代理节点,其中部署了容器工作负载。该平台处理所有集群管理活动,例如健康监控和维护。它还提供与AzureRBAC和AzureAD的轻松集成以进行集群管理、与AzureMonitor的内置集成以及使用DockerRegistry或AzureContainerRegistry检索容器映像的灵活性。使用AKS无需集群管理费用,同时保持99.5%的服务水平协议(SLA)。企业只需按秒计费模型为AKS群集中使用的虚拟机(VM)实例、存储和网络资源付费。还可以选择以每集群小时0.10美元的价格应用正常运行时间服务级别协议(SLA)。可以使用Azure可用性区域在集群部署期间配置高可用性。如果购买了可选的正常运行时间SLA,则此类集群的SLA为99.95%,不使用可用区的集群为99.9%。在这两种情况下,客户都需要为托管其工作负载的代理节点付费。(2)AzureContainerInstanceAzureContainerInstance提供了一种简单易用的解决方案,可以在不部署编排平台的情况下在Azure中部署容器。由于容器实例不需要配置任何虚拟机,因此实例可在数秒内启动。该服务还为企业提供了配置的灵活性,并且只需为工作负载所需的CPU内核和内存付费。该服务可以与AzureFiles集成以进行持久存储,连接到Azure虚拟网络,并与AzureMonitor集成以进行资源使用监控。Azure容器实例更适合为不需要按需缩放或多容器服务发现等高级功能的简单应用程序部署隔离的容器实例。(3)用于容器的AzureWebAppAzureWebApp允许企业使用来自DockerHub或AzureContainerRegistry的容器镜像在服务上部署容器。后端操作系统补丁、容量管理和服务的负载平衡由平台处理,服务根据配置的缩放规则通过横向扩展或横向扩展选项按需扩展。这也有助于成本管理,即在非高峰时段自动降低成本。该服务还确保高可用性,因为容器服务可以跨多个Azure区域部署。3.谷歌云平台(GCP)Kubernetes起源于谷歌的内部项目,为托管在云端和本地设施中的托管容器提供了一套强大的产品。(1)GoogleKubernetesEngineGoogleKubernetesEngine(GKE)是来自GoogleCloudPlatform的托管Kubernetes服务,可用于托管高可用性和可扩展的容器工作负载。如果企业需要在隔离环境中运行易受安全威胁影响的工作负载,它还提供GKE沙箱选项。与其他云计算服务提供商提供的托管Kubernetes服务一样,GKE提供故障节点的自动修复、升级和按需扩展。它还可以与GCP监控服务集成,以深入了解已部署应用程序的健康状况。如果企业计划托管图形密集型、高性能计算(HPC)和机器学习工作负载,则可以在部署期间使用GPU和TPU等专用硬件加速器增强GKE。最后,GKE为按秒计费和容忍停机的开发环境提供了一个选项,可以为企业集群使用抢占式VM以进一步降低成本。(2)CloudRun如果企业希望在GCP中运行容器化应用,又不想管理底层基础设施,CloudRun是一个不错的选择。使用这种完全托管的容器无服务器托管服务,只需为容器消耗的资源付费。CloudRun也可以部署到AnthosGKE集群或本地工作负载。CloudRun与CloudCode、CloudLogging、Monitoring、ArtifactRegistry和CloudBuild等其他GCP服务完美集成,可满足企业所有容器化应用程序开发需求。4.混合部署对于许多企业来说,云采用之旅的第一步是实施混合部署,其中容器化应用程序的一些组件保留在本地,而其他组件则迁移到云端。有多种流行的工具和服务可用于帮助满足混合云和多云部署的需求,所有主要的云计算提供商都在该领域进行了大量投资。(1)AzureArcAzureArc为部署在本地和跨多云环境的服务器、数据服务和Kubernetes集群提供基于Azure的统一管理平台。支持AzureArc的Kubernetes集群支持多种流行的Kubernetes发行版,这些发行版已获得云原生计算基金会(CNCF)的认证。该服务允许组织列出Azure中跨异构环境的Kubernetes集群以获得统一视图,并支持与Azure管理功能(如AzurePolicy和AzureMonitor)的集成。(2)GoogleAnthosGoogleCloudPlatform(GCP)Anthos是一个全面的高级解决方案,用于在云端和本地部署托管Kubernetes集群。Anthos提供了一个GKE本地选项,企业可以使用该选项将新的GKE集群部署到本地私有云中,或者将现有的非GKE集群注册到Anthos。GKEonAWS通过使用AnthosUI中的管理服务在AWS中创建、更新或删除兼容的GKE环境,从而在多云场景中提供帮助。同时,AnthosConfigManagement和ServiceMesh解决方案促进了策略自动化、安全管理和对跨多个集群部署的应用程序的可见性,以提供统一的管理体验。(3)AWSOutpostsAWSOutposts是一种混合云服务,可以将AWS服务(包括EKS等容器服务)引入企业内部数据中心。此服务由AWS安装、更新和完全管理。该解决方案可以连接到本地AWS区域以获得混合体验,其中AWSOutposts中的服务可以直接连接到云中的服务。AWSOutposts的目标客户是喜欢在本地部署容器化工作负载以实现数据驻留、本地处理等,同时可以灵活地为其应用程序使用AWS云平台的支持服务。最近发布的EKSAnywhere是另一个选项,旨在为混合部署提供与AmazonEKS相同的体验。EKSAnywhere预计将于2021年推出。选择合适的容器服务由于云中提供了多种服务来托管容器化工作负载,选择适合企业需求的合适服务的第一步是将其特定应用程序需求映射到功能给定的服务。推荐使用各大云计算服务商提供的托管容器服务,可以更好的与企业采用的云平台服务相结合。当企业为其应用程序选择最佳容器服务时,他们可以选择生产就绪服务,同时避免潜在的供应商锁定。企业还应该考虑解决方案的未来路线图,以及监控、日志记录、可用性、可扩展性、安全管理和自动化的易用性。从托管Kubernetes服务开始是一个很好的选择,因为Kubernetes最适合可扩展、安全和高可用性的生产部署。如果对混合集成有明确的要求,其中一些容器化工作负载可能会保留在本地,并且AzureeArc或GoogleAnthos等混合解决方案可能是一种选择。最后,如果企业正在寻找简单、隔离的容器部署,无服务器解决方案可能是最佳选择。原标题:ContainersintheCloud:WhatAreYourOptions?,作者:KentaroWakayama