小編今天帶大家了解Paas平臺集群Container容器管理的方法是什么,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內(nèi)容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學(xué)習(xí)“Paas平臺集群Container容器管理的方法是什么”的知識吧。
站在用戶的角度思考問題,與客戶深入溝通,找到莆田網(wǎng)站設(shè)計與莆田網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋莆田地區(qū)。
最近CloudFoundry 和 Docker的發(fā)展勢頭確實很猛啊,使用這兩個開源項目來搭建Paas平臺的公司也逐漸的多了起來,但是很多公司僅僅是代搭建了一套試驗環(huán)境,或者生產(chǎn)環(huán)境的規(guī)模還很小,很多問題都沒有暴露出來,京東云擎(JAE.JD.COM)也是使用CloudFoundry框架搭建的,在此框架的基礎(chǔ)上做的二次開發(fā)。隨著JAE項目的逐漸擴張,用戶數(shù)越一天比一天多,要管理好上萬個Container確實讓我們頭疼了好久。
其實大家都知道Container的管理主要集中在幾個方面,第一個就是從Router進來的流量如何能快速的定位到指定的Container,第二個就是Container容器的健康情況如何快速發(fā)現(xiàn)和恢復(fù)
其實只要接觸過CloudFoundry的人都知道,CF架構(gòu)中不管是Container的快速定位還是Container的的健康檢查這一塊都強依賴NATS消息中間件,通過DEA定時上報Container的心跳(包括了URL和Container的host:port 映射情況),前端Router通過注冊NATS的 router.register或router.unregister來更新容器的信息,HM 通過注冊心跳來對比用戶的期望狀態(tài)和容器的實際運行狀態(tài)是否一致,其實這本來是一個很好的組件解耦架構(gòu),但是當(dāng)Container發(fā)展到一定規(guī)模的時候,nats的消息量就會很大,router或hm要處理的數(shù)據(jù)也會很多,最主要的問題還是,Container的數(shù)據(jù)不是經(jīng)常變動的,也就是說每次傳輸?shù)男畔?5%都是一致的。從而導(dǎo)致了Nats和Router做了很多重復(fù)的工作。通過定時上報這種模式還有一個缺點就是必須通過設(shè)置心跳超時來判斷數(shù)據(jù)的準確性這樣就會導(dǎo)致一定的數(shù)據(jù)延遲性。
既然Container的數(shù)據(jù)有一個明顯的特點就是不經(jīng)常變法,那么能不能每次只發(fā)生變法的數(shù)據(jù)呢,如果真能這樣就可以大大減少NATS的數(shù)據(jù)傳輸和Router處理的壓力。我想到的一個辦法就是通過zookeeper+NATS來做Container的管理
具體的思路是這樣的,每臺DEA在啟動的時候向zookeeper注冊一個臨時節(jié)點(節(jié)點的內(nèi)容里面保存了dea所管理的所有Container信息),當(dāng)有容器創(chuàng)建的時候通過nats發(fā)布一條Container創(chuàng)建的消息,同時改變dea臨時節(jié)點的內(nèi)容,當(dāng)有Contaienr銷毀(包括人為銷毀或Container異常掛掉的銷毀)的時候向Nats發(fā)布一條容器消費的消息,同時改變dea臨時節(jié)點的內(nèi)容,如果VM掛掉或DEA異常掛掉因為DEA注冊的是臨時節(jié)點,所以zookeeper會自動刪除這個不存活的dea節(jié)點, 在router或hm模塊里面 注冊dea發(fā)布的Container創(chuàng)建或銷毀的topic用來處理Container碧昂更的情況, 同時router 在啟動的時候需要從zookeeper中獲取所有的dea臨時節(jié)點信息,循環(huán)處理每個節(jié)點將節(jié)點中的Container取出來存在內(nèi)存里面,當(dāng)zookeeper發(fā)現(xiàn)dea臨時節(jié)點刪除或創(chuàng)建的時候會以事件的方式通知 客戶端(比如router),此時router根據(jù)事件的類型,如果是刪除節(jié)點,則刪除該dea里面的所有容器,如果是新增節(jié)點則增加節(jié)點里面的所有Container信息。
這樣一來既可以很好的管理所有Container還減少了很多重復(fù)的消息傳遞和處理,最主要的一個還是不用設(shè)置心跳超時從而達到容器的變法更加實時的體現(xiàn)在管理端。具體的邏輯圖大概是這個樣子。
感謝大家的閱讀,以上就是“Paas平臺集群Container容器管理的方法是什么”的全部內(nèi)容了,學(xué)會的朋友趕緊操作起來吧。相信創(chuàng)新互聯(lián)小編一定會給大家?guī)砀鼉?yōu)質(zhì)的文章。謝謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!