Docker的應(yīng)用虛擬化技術(shù)通常被稱為容器,其技術(shù)處于快速發(fā)展階段,推廣勢(shì)頭極為迅猛而且隨著技術(shù)的成熟,各種商業(yè)應(yīng)用也隨之增長(zhǎng)。制訂容器管理策略時(shí),選擇正確的工具只是萬(wàn)里長(zhǎng)征邁出的第一步,在實(shí)踐中那些在云應(yīng)用開發(fā)和程序遷移過(guò)程中應(yīng)用容器技術(shù)(例如Docker)的用戶,很快就會(huì)認(rèn)識(shí)到使用容器管理工具的必要性,這些工具能夠幫助用戶管理容器的運(yùn)行和規(guī)模,并監(jiān)控容器的性能和安全性。
管理容器可能需要用戶付出大量的精力,做很多工作。首先需要考慮的問題就是選擇一個(gè)合適的管理工具。對(duì)于基于容器技術(shù)的應(yīng)用程序來(lái)說(shuō),主要有兩種類型的管理工具,分別是容器集群管理器以及容器運(yùn)行管理器。
容器集群管理器
容器集群管理器主要是指Docker Swarm、CoreOS Tectonic以及谷歌Kubernetes,它整合了一個(gè)由多個(gè)服務(wù)器或節(jié)點(diǎn)組成的共享計(jì)算環(huán)境,其中集成資源可用于支持工作負(fù)載和程序在集群內(nèi)的正常運(yùn)行。用戶可以在集群內(nèi)使用程序來(lái)創(chuàng)建任務(wù),然后使用這些任務(wù)以滿足特定業(yè)務(wù)或者IT的需求,同時(shí)也涉及使用這些任務(wù)來(lái)創(chuàng)建工作。
如果需要退出這個(gè)功能,用戶就應(yīng)使用集群管理框架來(lái)管理一個(gè)或多個(gè)集群,而這個(gè)框架通常包括了一個(gè)資源管理器,它可用于跟蹤諸如內(nèi)存、CPU以及存儲(chǔ)等資源。當(dāng)任務(wù)運(yùn)行需要資源時(shí),必須通過(guò)資源管理器來(lái)獲取所需的資源,用戶還可以訪問資源,這意味著可以管理集群的性能、響應(yīng)時(shí)間以及其他,這使集群可擁有虛擬或物理上的可擴(kuò)展性。
容器集群管理器的其他組件還包括一個(gè)任務(wù)管理器,它主要負(fù)責(zé)任務(wù)執(zhí)行和狀態(tài)的管理。集群管理器中存在一個(gè)調(diào)度管理組件,可對(duì)組成工作的各個(gè)任務(wù)之間的依賴關(guān)系進(jìn)行管理,并為各個(gè)節(jié)點(diǎn)分配任務(wù)。這個(gè)調(diào)度管理組件是集群管理器的一個(gè)核心組件,如果沒有它,管理器將無(wú)法實(shí)現(xiàn)工作和任務(wù)的啟動(dòng)或停止。
容器運(yùn)行管理器
對(duì)于管理容器的IT專業(yè)人士來(lái)說(shuō),可以使用容器運(yùn)行管理器這類工具來(lái)執(zhí)行某些特定任務(wù),例如啟動(dòng)和停止基于容器的應(yīng)用程序的運(yùn)行、監(jiān)控以及管理資源、日志記錄等,包括根據(jù)預(yù)定義策略來(lái)執(zhí)行某些自動(dòng)化類型的操作。
Docker收購(gòu)的Tutum就是一個(gè)具有內(nèi)置日志記錄功能的容器管理工具,能夠允許用戶訪問容器的輸出日志,并收集日志以供后期方便查看。Tutum還提供了可供用戶檢查容器狀態(tài)的監(jiān)控功能、一個(gè)可確保使用Tutum和Docker最新版功能的更新程序、一個(gè)API和一個(gè)控制面板。
容器管理的最佳實(shí)踐
除了選擇正確的工具外,還有一些容器管理方面的通用技巧。了解核心容器使用模式,有一些基于容器的應(yīng)用程序還是非常復(fù)雜的,需要大量的監(jiān)控和管理;而另一些應(yīng)用程序則相對(duì)更為簡(jiǎn)單,這些應(yīng)用程序可能不需要擴(kuò)展資源或者被嚴(yán)密監(jiān)控。運(yùn)行和維護(hù)容器管理工具的代價(jià)相對(duì)較為昂貴,所以應(yīng)當(dāng)只在確定真的需要它們時(shí)才具體實(shí)施,一般來(lái)說(shuō)所擁有容器的數(shù)量和類型將具體決定需求。
此外,其實(shí)還應(yīng)該做到不要過(guò)于關(guān)注工具,很多情況下使用容器技術(shù)反而過(guò)分關(guān)注可用工具,而不關(guān)心真正需要的功能。事實(shí)上隨著時(shí)間的推移,所使用的容器管理工具也會(huì)不斷更新變化,需要在實(shí)踐中不斷深入學(xué)習(xí),始終關(guān)注容器、管理工具以及程序才是最重要的,只有持續(xù)不斷地向自我提出更高要求,才能更好地或者更高效地使用這項(xiàng)技術(shù)。