容器編排平臺(tái)使容器的使用變得更加容易,在容器上運(yùn)行任何應(yīng)用程序?qū)⑹蛊淇蛇w移。但是,當(dāng)需要擴(kuò)展或添加服務(wù)時(shí),如果企業(yè)沒(méi)有一個(gè)平臺(tái)來(lái)管理和組合所有功能,那么將會(huì)遇到問(wèn)題,并且很快將變得難以處理。
AWS的容器編排平臺(tái)有三個(gè)主要選項(xiàng),每個(gè)都有自己的優(yōu)點(diǎn)和缺點(diǎn)。企業(yè)做出的選擇最終將取決于其業(yè)務(wù)需求和持續(xù)的維護(hù)能力。
為了幫助企業(yè)做出決定,以下是每種托管容器編排的優(yōu)缺點(diǎn):
彈性容器服務(wù)(ECS):原生選擇
彈性容器服務(wù)(ECS)是AWS公司推出的第一個(gè)托管容器編排產(chǎn)品。對(duì)于許多人來(lái)說(shuō),這是最簡(jiǎn)單的選擇,并且它當(dāng)然具有最少的組件數(shù)量。
作為一個(gè)高度集成的編排平臺(tái),對(duì)于任何對(duì)AWS生態(tài)系統(tǒng)感到滿(mǎn)意并希望獲得AWS服務(wù)和支持的好處和熟悉度的人來(lái)說(shuō),這都是一個(gè)絕佳的選擇。它也具有成本效益,因?yàn)槠髽I(yè)不必為使用其控制平臺(tái)支付費(fèi)用,并且可以使用內(nèi)置的AWS代碼工具,還可以享受服務(wù)和任務(wù)的細(xì)粒度身份和訪(fǎng)問(wèn)管理(IAM)。
當(dāng)企業(yè)要將應(yīng)用程序部署到彈性容器服務(wù)(ECS)上時(shí),可以分別為每個(gè)應(yīng)用程序定義操作,例如,指示哪些容器可以訪(fǎng)問(wèn)S3,哪些容器沒(méi)有訪(fǎng)問(wèn)權(quán)限。
彈性容器服務(wù)(ECS)什么時(shí)候不是最好的選擇?
作為專(zhuān)有的AWS解決方案,如果企業(yè)使用彈性容器服務(wù)(ECS),則將應(yīng)用程序克隆到其他云計(jì)算供應(yīng)商并不是一件容易的事。此外,業(yè)務(wù)流程平臺(tái)對(duì)路由的支持有限,目前僅支持基于路徑的路由,不支持基于主機(jī)的路由。要考慮的另一個(gè)因素是,香港免備案主機(jī),彈性容器服務(wù)(ECS)對(duì)狀態(tài)更改的響應(yīng)比三個(gè)云計(jì)算行業(yè)巨頭中的其他服務(wù)器響應(yīng)還要慢,因此,如果企業(yè)要尋求高性能的解決方案,那就不是最好的選擇。
彈性容器服務(wù)(ECS)適合誰(shuí)?
如果企業(yè)希望進(jìn)行一個(gè)物有所值的投資,而這些因素都不適合,那么彈性容器服務(wù)(ECS)是一個(gè)不錯(cuò)的初學(xué)者選擇,對(duì)于沒(méi)有經(jīng)驗(yàn)豐富的DevOps進(jìn)行業(yè)務(wù)編排的任何企業(yè)和用戶(hù)來(lái)說(shuō),它都是完美的選擇。如果企業(yè)要在云平臺(tái)上部署的服務(wù)數(shù)量有限(少于10個(gè)),建議可以這樣做。否則將會(huì)使解決方案變得更加復(fù)雜,企業(yè)可能會(huì)發(fā)現(xiàn)彈性容器服務(wù)(ECS)可能更適合。
EKS:Kubernetes的選擇
EKS是AWS的Kubernetes產(chǎn)品,Kubernetes是一種流行的開(kāi)源容器編排平臺(tái)。由于EKS是AWS公司的托管服務(wù),因此消除了Kubernetes的初始安裝和維護(hù)帶來(lái)的許多麻煩。
Amazon EKS在Kubernetes上運(yùn)行。它的風(fēng)格不同,因此企業(yè)獲得的功能與創(chuàng)建自己的Kubernetes集群時(shí)相同,如果將來(lái)要運(yùn)行多云,則可以輕松克隆該平臺(tái)。
作為一個(gè)開(kāi)源平臺(tái),EKS受益于大量的開(kāi)發(fā)人員,他們不斷開(kāi)發(fā)和改進(jìn)這種技術(shù),積極地開(kāi)發(fā)新功能。值得一提的獨(dú)特賣(mài)點(diǎn)包括空間隔離,企業(yè)可以在其中用邏輯邊界分割集群,例如,限制開(kāi)發(fā)人員使用特定數(shù)量的集群資源。此外,它還提供了運(yùn)行Cron作業(yè)和有狀態(tài)工作負(fù)載的功能。
與彈性容器服務(wù)(ECS)相比,EKS的部署時(shí)間要快得多,只需幾秒鐘,因此企業(yè)每天可以部署幾次,并且快速反饋更改。可以使用Kubectl命令行工具聲明所有內(nèi)容,并且有很多集成。這些功能包括服務(wù)到服務(wù)的通信以及Pod和Worker節(jié)點(diǎn)的本地?cái)U(kuò)展,使企業(yè)的開(kāi)發(fā)人員可以專(zhuān)注于其業(yè)務(wù)邏輯并提供新功能。在此需介紹Helm,這是一個(gè)程序包管理器,它具有將多個(gè)應(yīng)用程序或業(yè)務(wù)邏輯捆綁在一起以用于整體部署和更新整個(gè)單元的功能。
使用EKS應(yīng)該注意什么?
人們必須意識(shí)到,Kubernetes只適合一部分企業(yè)。企業(yè)每個(gè)月將增加控制平臺(tái)的成本,并且學(xué)習(xí)曲線(xiàn)比使用彈性容器服務(wù)(ECS)時(shí)要陡得多,并且目前與AWS云平臺(tái)的集成較少。與彈性容器服務(wù)(ECS)不同,AWS公司的身份和訪(fǎng)問(wèn)管理(IAM)不是內(nèi)置的,因此企業(yè)的開(kāi)發(fā)人員或DevOps將需要安裝其他工具來(lái)實(shí)現(xiàn)此功能。
另一個(gè)嚴(yán)重的限制是容器密度,這是EKS的獨(dú)特問(wèn)題。每個(gè)容器(pod)都綁定到虛擬私有云(VPC)中的某個(gè)專(zhuān)用IP,directadmin安裝,并且如果企業(yè)的應(yīng)用程序使用許多副本或微服務(wù),則集群可以擴(kuò)展,但不是由于企業(yè)的實(shí)例耗盡了CPU或內(nèi)存,而是因?yàn)閷?shí)例已經(jīng)運(yùn)行IP分配給工作節(jié)點(diǎn)。
這將導(dǎo)致額外的成本,并且可能會(huì)受到限制,因?yàn)槠髽I(yè)的開(kāi)發(fā)人員將為工作節(jié)點(diǎn)使用的較小實(shí)例提供有限的IP。如果企業(yè)的微服務(wù)快速并且大規(guī)模擴(kuò)展,這是需要考慮的一個(gè)重要因素。
EKS適合誰(shuí)?
這里的關(guān)鍵問(wèn)題是,一旦安裝完成,誰(shuí)將負(fù)責(zé)獲得它的所有權(quán)?管理和維護(hù)EKS需要專(zhuān)門(mén)的專(zhuān)家,如果企業(yè)沒(méi)有人手,則另一種選擇可能更合適。
Fargate:容器按需選擇