ECS vs K8S
ECS vs. Kubernetes 類似而又不同
C2Container Service (ECS)和Kubernetes (K8s)?都解決了同樣的問題:跨越主機(jī)集群管理容器。ECS和Kubernetes之間的斗爭(zhēng)讓我想起了vi和Emacs之間的編輯器之戰(zhàn):激烈的討論集中于技術(shù)問題和個(gè)人信仰上。接下來的問題將幫助你明智的選擇。考慮到問題和答案包含了我的主張——ECS和K8s之間的區(qū)別,基于我最近項(xiàng)目上的經(jīng)驗(yàn)。
?
它合適嗎?
一個(gè)容器是一個(gè)隔離的元素。但是跨主機(jī)集群?jiǎn)?dòng)容器只是挑戰(zhàn)的一小部分。你的容器在一個(gè)由基礎(chǔ)設(shè)施和服務(wù)組成的世界中存在:舉幾個(gè)來說,存儲(chǔ)系統(tǒng),數(shù)據(jù)庫,域名服務(wù)。
你打算在哪運(yùn)行你的容器?
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP)
- 其他IaaS供應(yīng)商
本地部署
能夠整合容器管理解決方案到基礎(chǔ)設(shè)施中是關(guān)鍵。
ECS在容器和其他AWS服務(wù)之間提供最無縫的集成。下面是幾個(gè)例子:
- 分配IAM角色給每個(gè)容器,允許細(xì)粒度訪問控制其他服務(wù)。
- 在外部負(fù)載均衡器注冊(cè)容器(應(yīng)用負(fù)載均衡器)。
- 基于集使用擴(kuò)展EC2實(shí)例(自動(dòng)伸縮)。
- 收集日志(監(jiān)測(cè)日志)。
在K8s和AWS之間實(shí)現(xiàn)一個(gè)類似水平的集成是一個(gè)大量的工作。例如,用etcd構(gòu)建一個(gè)生產(chǎn)就緒的關(guān)鍵值存儲(chǔ),需要K8s,需要高可用,加密,和幾周的滾動(dòng)更新。通過負(fù)載均衡器和域名系統(tǒng)集成K8s是另一個(gè)重大的障礙。
另一方面,K8s提供了與GCP免費(fèi)的集成。Google Container Engine提供以下內(nèi)容:
- 在多個(gè)高可用區(qū)域之間分布集群。
- 基于使用擴(kuò)展集群。
- 為容器提供持久的磁盤。
K8s在使用Google Container Engine(GKE)時(shí)提供了最大的價(jià)值,因?yàn)樗cGCP集成。
如果你正在使用其他IaaS供應(yīng)商,而不是Amazon和谷歌,或運(yùn)行在本地部署上,那么K8s是唯一的選擇,因?yàn)镋CS只在AWS上運(yùn)行。可比較的ECS在AWS上或在K8s在GCP上,在這種情況下,構(gòu)建一個(gè)類似的基礎(chǔ)設(shè)施將是大量工作。
它和你的架構(gòu)匹配嗎?
ECS和K8s在服務(wù)發(fā)現(xiàn)上遵循不同的策略。
ECS使用負(fù)載均衡器進(jìn)行服務(wù)發(fā)現(xiàn)。通過負(fù)載均衡器可以訪問外部和內(nèi)部服務(wù)。應(yīng)用程序負(fù)載均衡器(ALB)提供路徑和基于主機(jī)的路由以及內(nèi)部或外部連接。
K8s使用不同的策略。只有來自集群外部的請(qǐng)求通過負(fù)載均衡器。虛擬IP提供對(duì)內(nèi)部服務(wù)的訪問,而不需要負(fù)載均衡器。
如果你的微服務(wù)架構(gòu)嚴(yán)重依賴服務(wù)到服務(wù)通信,K8s提供較少的通信成本。除此之外,ECS也為微服務(wù)體系結(jié)構(gòu)提供了樸素而簡(jiǎn)單的方法。特別是,如果大部分的服務(wù)需要從互聯(lián)網(wǎng)上進(jìn)行訪問。
誰運(yùn)營(yíng)它?
我強(qiáng)烈反對(duì)你自己去運(yùn)營(yíng)一個(gè)容器集群,只要可能。或者,一個(gè)自己動(dòng)手的容器基礎(chǔ)設(shè)施是否有有價(jià)值會(huì)增加你的業(yè)務(wù)?
通過ECS提供的集群管理是一個(gè)完成的管理服務(wù),提供高可用,可擴(kuò)展性和安全。使用ECS沒有額外費(fèi)用,而且它也被AWS支持計(jì)劃所覆蓋。但是,你仍然對(duì)由EC2和VPC組成的底層基礎(chǔ)設(shè)施負(fù)責(zé)。
Google Container Engine(GKE)也提供管理服務(wù)。GKE提供管理K8s集群包括底層基礎(chǔ)設(shè)施。如果你的集群由超過5個(gè)節(jié)點(diǎn)組成,Google的管理費(fèi)用是每月100美元。
它成功了嗎?
K8s在Apache許可2.0下獲得許可,然而ECS是AWS提供的專有服務(wù)。盡管如此,AWS發(fā)布了Blox,這是一個(gè)開源項(xiàng)目的集合,用于在ECS上進(jìn)行容器管理和編排。
K8s社區(qū)充滿活力,產(chǎn)生了許多創(chuàng)新的解決方案。開源生態(tài)系統(tǒng)提供了靈活性。但是不要期望除了K8s核心之外的生產(chǎn)解決方案。
廠商鎖定一個(gè)流行的爭(zhēng)論在ECS與K8s討論中。我認(rèn)為,ECS和K8s都將你鎖定在他們的解決方案中。盡管K8s是開源的,但是谷歌在技術(shù)演變和商業(yè)化其云平臺(tái)方面是主要貢獻(xiàn)者。
總結(jié)
你有在用AWS作為基礎(chǔ)設(shè)施供應(yīng)商嗎?使用ECS來管理和調(diào)度容器,并從高度集成和完全托管的服務(wù)中獲益。
你是否使用GCP作為基礎(chǔ)設(shè)施提供商?使用谷歌容器引擎(GKE)提供完全管理的K8s集群,并集成到GCP基礎(chǔ)設(shè)施中。
你是在本地部署上運(yùn)行還是使用另一個(gè)IaaS提供商?運(yùn)營(yíng)K8s集群可能是你唯一的選擇。在集成你現(xiàn)有的基礎(chǔ)設(shè)施,構(gòu)建一個(gè)高可用和伸縮的K8s集群時(shí),預(yù)期會(huì)有大量的eff。
總結(jié)
以上是生活随笔為你收集整理的ECS vs K8S的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZLMediaKit_wiki
- 下一篇: ubuntu20.04 sshd 配置r