以前介紹過docker的單機安裝、多主機網絡互通、如何半自動化更新與回滾代碼,如今在介紹如何進行集羣與auto scale。
前端
這部分功能使用Python語言編寫,基於TCP Socket與SSL加密通訊。咱們來看下效果展現:web
查看全部節點信息:docker
(軟件名是cdocker,分爲客戶端與服務端,服務的名字是cdocker_server.py,客戶端名字是cdocker_client.py,感謝@陳李糧幫我起的名字)後端
上圖的返回信息顯示當前集羣有3個節點(Node
)、存放位置與類型(Metadata
)、機器惟一標識(Machines_id
)、當前宿主機建立容器數量(Container_now_user
)以及最大可使用容器的數量(Container_max_use
)。服務器
這個程序中也包含了部分Mesos等功能,能夠計算集羣裏可用資源狀況,並顯示具體已使用與可最大使用數量。網絡
查看具體節點裏容器信息ide
集羣模塊還有其餘的功能,好比建立集羣、建立auto_scale等,今天我就給你們展現web界面,後臺實現再也不詳細介紹。測試
上圖爲集羣總覽界面,包含了當前集羣的部分信息。左上角能夠建立集羣:this
我對存放區域設計基本思路是按照服務器的配置來選擇類型。具體以下:加密
界面中auto_scale開始數量與最大數量,以及內存、cpu閥值的設置都很直觀,再也不贅述。
點擊info按鈕,能夠查看集羣項目信息 、實例信息、公網信息等
公網ip與防火牆信息均可以動態的調整。
生效的意思是對新增或者修改後防火牆策略進行生效,主要是放在誤操做。
這個3個按鈕主要是對集羣進行更新、回滾(這個功能還有點瑕疵,因此先不展現)
下面在介紹一下auto scale
主要是經過自研程序docker_auto_scale.py進行動態擴容與縮減容器數量,這個程序是經過獲取集羣的監控信息以及auto scale設置值與cpu、內存閥值進行綜合判斷後進行操做。
效果以下
好比運行正常(cpu、內存使用量未超過閥值)
下面修改一下內存閥值
修改前
修改後
點擊提交
能夠看到內存閥值已經從95%修改成1%,下面是運行auto scale軟件狀況
下面在運行一遍
能夠看到從8變爲16,翻了一倍
另外auto scale縮減也是同樣的效果
這樣僅是對後端作的操做,但前端訪問確定是經過ip加url,而後負載到後端real server,我這裏是使用程序+etcd+confd+haproxy+keepalived
web訪問效果爲
url對應的腳本就是獲取容器的內網ip。
至於有幾個ip裏包含this is test update是我本身弄的測試。
目前經過這樣的集羣與auto scale模式,能夠知足動態擴容與縮減,對於資源最大程度使用、高可用、跨機房高可用等都能知足。