docker高級應用之集羣與auto scale

以前介紹過docker的單機安裝、多主機網絡互通、如何半自動化更新與回滾代碼,如今在介紹如何進行集羣與auto scale。
前端

集羣通訊軟件

這部分功能使用Python語言編寫,基於TCP Socket與SSL加密通訊。咱們來看下效果展現:web

查看全部節點信息:docker

wKiom1XaeJWSNMuEAAGbpvxDKSM937.jpg

(軟件名是cdocker,分爲客戶端與服務端,服務的名字是cdocker_server.py,客戶端名字是cdocker_client.py,感謝@陳李糧幫我起的名字)後端

上圖的返回信息顯示當前集羣有3個節點(Node)、存放位置與類型(Metadata)、機器惟一標識(Machines_id)、當前宿主機建立容器數量(Container_now_user)以及最大可使用容器的數量(Container_max_use)。服務器

這個程序中也包含了部分Mesos等功能,能夠計算集羣裏可用資源狀況,並顯示具體已使用與可最大使用數量。網絡

查看具體節點裏容器信息ide

wKioL1Xae0Lx8j_4AAMIfkjINPw007.jpg

集羣模塊還有其餘的功能,好比建立集羣、建立auto_scale等,今天我就給你們展現web界面,後臺實現再也不詳細介紹。測試

wKiom1XaeYGAgUA6AAKGdjkmXU0043.jpg

上圖爲集羣總覽界面,包含了當前集羣的部分信息。左上角能夠建立集羣:this

wKioL1Xae_6BwYJOAAJxn1vysG4915.jpg

wKioL1XafCSjGQi8AADfk5RTbUs699.jpg

我對存放區域設計基本思路是按照服務器的配置來選擇類型。具體以下:加密

wKiom1XaekCTHjfGAACey0JV8f0053.jpg

界面中auto_scale開始數量與最大數量,以及內存、cpu閥值的設置都很直觀,再也不贅述。

點擊info按鈕,能夠查看集羣項目信息 、實例信息、公網信息等

wKiom1XaeoLwUeelAAK8Fcqc5KI520.jpg

wKioL1XafLzACnGOAAGsy-_cTLw435.jpg

wKioL1XafOnQZgfRAAI0811C8_8624.jpg

wKioL1XafRDA7t-FAAE32fFZFFc732.jpg

wKioL1XafX6CJrFsAAHI4kwo20o126.jpg

公網ip與防火牆信息均可以動態的調整。

wKioL1XafbDB3LcHAAHQoeHMkAA685.jpg

生效的意思是對新增或者修改後防火牆策略進行生效,主要是放在誤操做。

wKiom1Xae9DwjtcaAAFYifVgCYo590.jpg

這個3個按鈕主要是對集羣進行更新、回滾(這個功能還有點瑕疵,因此先不展現)

下面在介紹一下auto scale

主要是經過自研程序docker_auto_scale.py進行動態擴容與縮減容器數量,這個程序是經過獲取集羣的監控信息以及auto scale設置值與cpu、內存閥值進行綜合判斷後進行操做。

效果以下

好比運行正常(cpu、內存使用量未超過閥值)

wKioL1Xaft2SuKlIAAHDcRE76N8099.jpg

下面修改一下內存閥值

修改前

wKioL1Xafy7C5Qn0AAJMQsUoSFg201.jpg

修改後

wKiom1XafUXA4mKOAAGj8JmLxz0561.jpg

點擊提交

wKiom1XafXjh_2hTAAG2USsc998035.jpg

能夠看到內存閥值已經從95%修改成1%,下面是運行auto scale軟件狀況

wKioL1XagACA_a5mAARCyMavqJQ122.jpg能夠看到擴容了當前的一倍,從4變爲8個了

wKiom1XafiHzZvxdAAOde8O-2ig562.jpg

下面在運行一遍

wKiom1Xafquh7kDlAAaUCAxkC7g620.jpg

能夠看到從8變爲16,翻了一倍

wKioL1XagP6gdaXQAAUWr-7Ti5E866.jpg

另外auto scale縮減也是同樣的效果

wKioL1XahnPCffY7AAk8SB6_-gc738.jpg

wKiom1XahHzSQGt8AAI3Sh59YdU957.jpg

這樣僅是對後端作的操做,但前端訪問確定是經過ip加url,而後負載到後端real server,我這裏是使用程序+etcd+confd+haproxy+keepalived

web訪問效果爲

wKioL1XagcaTPBeaAAWZGBCvD-E954.jpg

url對應的腳本就是獲取容器的內網ip。

至於有幾個ip裏包含this is test update是我本身弄的測試。

目前經過這樣的集羣與auto scale模式,能夠知足動態擴容與縮減,對於資源最大程度使用、高可用、跨機房高可用等都能知足。

相關文章
相關標籤/搜索