Supergiant.io —— 服務于有狀態(tài)應用的容器平臺

責任編輯:editor006

作者:Hrishikesh Barua

2016-05-23 16:22:15

摘自:INFOQ

Supergiant是一個使用Kubernetes打造的容器托管平臺,適用于分布式的有狀態(tài)應用。部署在Supergiant平臺上的應用中所涉及的存儲功能都被分配在高可用的陣列中,但它并沒有使用Kubernetes中的持久化數(shù)據(jù)卷。

Supergiant是一個使用Kubernetes打造的容器托管平臺,適用于分布式的有狀態(tài)應用。Supergiant是由Qbox.io團隊所開發(fā)的,該團隊同時還提供了托管版本的Elasticsearch。

Supergiant是一種能夠運行Docker容器、以托管有狀態(tài)、集群化應用的框架。它的內部實現(xiàn)利用了Kubernetes的功能,但也開發(fā)了自有的結構與代碼,以避免出現(xiàn)Kubernetes無法滿足需求的場景,例如持久化保存以及外部的負載均衡。InfoQ與Qbox的CEO和聯(lián)合創(chuàng)始人,同時也是Supergiant的創(chuàng)建者Mark Brandon進行了一次訪談,以深入了解Supergiant的技術細節(jié)。

QBox.io團隊早期的業(yè)務是提供托管版本的Elasticsearch,當時他們經(jīng)歷過各種問題,其中包括由于因“吵鬧的鄰居”效應(本意是指某個VM由于存儲而產生的大量I/O操作對同一環(huán)境中其他VM的影響)而難以實現(xiàn)擴展的情況。根據(jù)團隊的博客文章所說,對于管理互聯(lián)的容器與卷的管理,Docker與Kubernetes看起來是一種正確的選擇。

部署在Supergiant平臺上的應用中所涉及的存儲功能都被分配在高可用的陣列中,但它并沒有使用Kubernetes中的持久化數(shù)據(jù)卷。AWS目前已經(jīng)提供了對Supergiant的支持,Supergiant使用了AWS中的Elastic Block Store(EBS),因此數(shù)據(jù)卷可隨意在集群中移動。EBS中的數(shù)據(jù)卷的行為類似于硬盤,可接入虛擬機中或者撤消(也可進行掛載與卸載)。由于EBS數(shù)據(jù)卷的持久化可支持節(jié)點服務器的重啟,因此即便某個節(jié)點變得不可用,數(shù)據(jù)也不會丟失。

Kubernetes內置了負載均衡與高可用性方面的特性。按照Brandon的說法,Supergiant特意為外部的負載均衡功能編寫了代碼,因為“雖然Kubernetes的內部負載均衡功能十分出色,但它的外部負載均衡策略對于Elasticsearch這樣的分布式應用來說并非最佳。”

為了使你的軟件作為一個Supergiant應用運行,它必須被打包為一個“組件”。這種組件既可以是一個NoSQL數(shù)據(jù)庫,也可以是一個web服務器或node.js應用。根據(jù)Brandon所說:“任何一種可被Docker化的應用都可以成為一個組件”。Supergiant還提供了一套基于HTTP的API,用于組件的定義。

運行在AWS環(huán)境中的應用都需要滿足一個要求,即可以忍受可用性地域(AZ)的故障,而對跨區(qū)域可用性的支持則是更高級別的能力。根據(jù)Brandon的說法,Supergiant可管理跨多個AWS地域的集群。

查看英文原文:Supergiant.io - Container Platform for Stateful Applications

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號