大家所熟知的docker容器排程引擎包括,k8s, swarm, mesos和rancher,這些排程引擎都是開源的國外引擎,各有各的特點。在同客戶和圈内人士溝通中,很多人直言國内容器創業公司大多隻是将各種開源元件內建在一起,同質化嚴重,沒有核心競争力。作為國内第一批的容器創業公司——ghostcloud精靈雲,深知國内需要在容器的諸多領域擁有真正完全可控,同時具有核心競争力的産品。是以,容器雲平台最核心的排程引擎迫切需要一個完全可控,自主的産品,在這種背景下newbon應運而生。newbon取自“牛犇”的諧音,意在建構一個穩定的,牢固的容器排程引擎。接下來就簡單介紹一下newbon的實作細節,并通過一系列視訊進行功能展示。
newbon包含幾個核心部分:
l
<b>api-server : </b>為ui和第三方內建提供調用接口。
<b>scheduler :</b> 負責解釋定義,收集資料和執行排程。
<b>dns/etcd :</b> 負責服務注冊,服務發現,訂閱和容器主機通路。
<b>executer :</b>負責執行server端下發指令。
<b>monitor : </b>負責監控主機和容器的各種狀态。
<b>heapster :</b> 負責健康檢查。
<b>calico+ :</b> 經過二次開發的基于calico的網絡插件。
<b>nginx : </b>七層負載均衡器。
<b>haproxy :</b> 四層/七層負載均衡器。
<b>keepalive :</b> 高可用元件。
下面是典型的邏輯結構圖:

最上層是高可用叢集,中間接負載均衡器,底層接多個應用服務,從這幅圖就能看出,newbon從設計之初就支援高可用,負載均衡和彈性伸縮,以及多服務挂載。
接下來我們重點介紹下newbon中負責解釋定義,收集資料和執行排程的核心元件scheduler。
解釋服務定義
選擇合适的節點建立容器
監控節點和容器運作狀态
服務注冊和登出
自動擴容和縮容
灰階更新(rolling upgrade)
結合解釋服務定義,下面是一個服務示例:
應用支援的擴充配置:
健康檢查配置支援(tcp):
健康檢查配置支援(http):
服務配置:
排程配置:
高可用叢集:
在容器排程引擎中,這三個過程可以說是最核心的地方。newbon借鑒了多個排程引擎的優點,使用了etcd和dns并結合控制伺服器來實作以下功能:
·
建立服務後自動建立dns記錄用于通路相關容器:
§
a記錄,通過域名通路單個容器和一組容器。
srv記錄,記錄容器提供的服務協定、端口、優先級和提供服務的ip清單。
容器狀态健康後注冊srv資訊:
·
當容器停止或處于不健康狀态時,會登出dns a記錄和srv資訊。
下面就是一個dns紀錄示例:
這一部分主要通過以下方式實作:
agent
monitor 子產品實時監測容器cpu和記憶體使用情況:
定義性能名額門檻值和容器運作上限和下限。
擴容:
當容器平均性能名額超過門檻值一段時間(1分鐘)後啟動自動擴容,建立更多容器以達到
閥值要求的90%。
當沒有主機資源運作新容器時,自動申請新主機(限公有雲環境)。
縮容:
當一段時間(3分鐘)負載持續低于門檻值80%啟動縮容。
優先删除新建立容器和主機,以釋放資源和降低營運成本。
下面是一個擴容的示意圖:
接下來我們将通過視訊的方式給大家展示newbon所支援的一系列功能,本期重點展示newbon的自動擴充功能:
<a href="https://v.qq.com/x/page/i03670gm0fh.html">https://v.qq.com/x/page/i03670gm0fh.html</a>
q: 既然已經有k8s, swarm,
mesos, rancher等排程引擎,為什麼精靈雲還要自主研發排程引擎newbon呢?
a: 排程引擎是容器雲平台最核心的部分,開源固然可以快速上手,快速搭建系統,但是任何一個開源系統實際是由一個或多個公司主導的,是以在使用中經常會受制于國外。開源系統由于需求和貢獻者多,是以會導緻系統異常龐大,企業往往隻需要使用20%功能,但是卻要去維護80%的其他系統。是以,精靈雲從一開始就選擇自主研發排程架構,做到完全自主可控,為企業級使用者提供更好的服務。
q:
newbon 跟其他容器排程相比有何優勢?
a:
newbon吸取各排程引擎的長處,可以說是目前國内定制能力最強,支援功能豐富的排程架構,包括在網絡、應用遷移、應用快照、模闆、負載均衡、彈性伸縮、高可用、ci/cd內建、灰階釋出和復原、鏡像內建、日志監控等方面都有着非常大的優勢。
newbon穩定嗎?有多少使用者在使用?
newbon雖然是最近才對外公布,但實際是精靈雲核心研發團隊多年的積累。團隊在核心和分布式領域有豐富的經驗,主要來自于veritas, emc,微軟和ibm,平均擁有10年以上分布式系統研發經驗,曾負責華為存儲軟體的oem工作。veritas可以說是分布式領域的兵工廠,它的veritas cluster
server是最早的分布式中間件,k8s容器負責人dawn chen也曾就職于veritas。是以,newbon是集衆家之所長,并且在精靈雲的公有雲上得到了充分的驗證,支撐數萬使用者和數十萬的容器排程。newbon從ecos 2.0開始内置,目前已經在多家中大型企業得到運用。