云中的容器:你有哪些選擇?
譯文【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】