一種基于應(yīng)用容器的應(yīng)用管理方法及系統(tǒng)的制作方法
【專利摘要】一種基于應(yīng)用容器的應(yīng)用管理方法及系統(tǒng),所述方法應(yīng)用于應(yīng)用管理系統(tǒng)中的容器調(diào)度器,所述應(yīng)用管理系統(tǒng)包括云控制平臺、所述容器調(diào)度器和包括至少一臺宿主機的集群,所述方法包括:容器調(diào)度器接收云控制平臺發(fā)送的應(yīng)用創(chuàng)建指令,將應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。能夠提高應(yīng)用部署的效率。
【專利說明】
一種基于應(yīng)用容器的應(yīng)用管理方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及云技術(shù)領(lǐng)域,尤其涉及一種基于應(yīng)用容器的應(yīng)用管理方法及系統(tǒng)。
【背景技術(shù)】
[0002]在虛擬技術(shù)領(lǐng)域,Docker是一個開源的應(yīng)用容器(英文全稱:Applicat1nContainer)引擎,讓開發(fā)者可以打包他們的應(yīng)用到可移植的應(yīng)用容器中,然后發(fā)布到任何流行的Linux機器上。簡單的說,Docker技術(shù)為構(gòu)建在Linux容器(英文全稱:LinuxContainer,英文簡稱:LXC)之上,且基于進程應(yīng)用容器(英文全稱:Process Container)的輕量級虛擬機(英文全稱:Virtual Machine,英文簡稱:VM)解決方案,即將應(yīng)用和應(yīng)用所依賴的運行環(huán)境打包成標準的應(yīng)用容器或鏡像,根據(jù)許可限制或特定要求將應(yīng)用部署到特定的計算機,執(zhí)行特定的任務(wù)。其中,應(yīng)用容器使用沙箱機制,應(yīng)用容器之間彼此相互隔離,每個應(yīng)用容器中運行一個應(yīng)用或一組應(yīng)用,幾乎沒有性能開銷,并且不依賴于任何語言和系統(tǒng)。
[0003]但使用Docker技術(shù)在集群部署應(yīng)用時,應(yīng)用部署人員需要先在服務(wù)器或每臺宿主機上安裝與應(yīng)用相關(guān)的運行環(huán)境,例如數(shù)據(jù)庫(MySQL),重申(英文全稱:RedistrictingSystem,英文簡稱:Redis),湯姆貓(Tomcat)等運行環(huán)境,以及進行相應(yīng)的參數(shù)配置,并且還需要根據(jù)應(yīng)用對運行環(huán)境的需求,安裝和配置相應(yīng)的第三方支撐軟件,以支撐該運行環(huán)境,另外在集群內(nèi)部署應(yīng)用時,需要應(yīng)用部署人員分別在每臺宿主機上創(chuàng)建應(yīng)用容器副本,無法一鍵在集群內(nèi)創(chuàng)建多個應(yīng)用容器副本??梢?,整個部署過程繁瑣、效率較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種基于應(yīng)用容器的應(yīng)用管理方法及系統(tǒng),能夠解決現(xiàn)有技術(shù)中基于容器部署應(yīng)用的效率較低的問題。
[0005]第一方面提供一種基于應(yīng)用容器的應(yīng)用管理方法,所述方法應(yīng)用于應(yīng)用管理系統(tǒng)中的容器調(diào)度器,所述應(yīng)用管理系統(tǒng)包括云控制平臺、所述容器調(diào)度器和包括至少一臺宿主機的集群,所述方法包括:
[0006]容器調(diào)度器接收云控制平臺發(fā)送的應(yīng)用創(chuàng)建指令;
[0007]將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0008]在一些可能的設(shè)計中,在部署完目標應(yīng)用容器后,容器調(diào)度器還可以對目標應(yīng)用容器的容器資源進行管理,例如刪除容器、增加容器、增加或減少容器的硬件資源,以及重新創(chuàng)建容器等。其中,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。以下分別進行說明:
[0009]1、容器調(diào)度器根據(jù)云控制平臺發(fā)送的容器資源管理指令所指示的內(nèi)容管理容器資源
[0010]a、應(yīng)用部署人員根據(jù)需要在云控制平臺管理容器資源。
[0011]b、應(yīng)用部署人員根據(jù)獲取的目標應(yīng)用容器的運行狀態(tài)管理容器資源。
[0012]然后,應(yīng)用部署人員會將用于指示管理容器資源的信息發(fā)送給容器調(diào)度器,使得容器調(diào)度器根據(jù)所述容器資源管理指令管理所述目標應(yīng)用容器的容器資源。
[0013]2、容器調(diào)度器根據(jù)獲取的目標應(yīng)用容器的運行狀態(tài)自動管理容器資源
[0014]具體為:通過運行在宿主機上的宿主機守護模塊獲取所述目標應(yīng)用容器的運行狀態(tài);
[0015]在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源。
[0016]可選的,所述運行狀態(tài)包括軟負載和工作狀態(tài)。在第2種情況中,根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源,包括以下之一:
[0017]在所述工作狀態(tài)為失效狀態(tài)時,使用所述目標鏡像文件重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器;
[0018]在所述軟負載超過第一閾值時,執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源;
[0019]在所述軟負載低于第二閾值時,執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源;
[0020]在所述軟負載低于第三閾值時,將所述目標應(yīng)用容器關(guān)閉并刪除。
[0021]通過根據(jù)應(yīng)用容器的軟負載動態(tài)的調(diào)整容器資源,實現(xiàn)負載均衡。另外,通過動態(tài)的管理容器資源,使得在集群中的宿主機失效或應(yīng)用容器失效被關(guān)閉時,容器調(diào)度器能立即在原宿主機上重新創(chuàng)建新的應(yīng)用容器,提高應(yīng)用服務(wù)的可靠性。
[0022]可選的,在管理容器資源過程中,還可以判斷是否需要進行告警,以便通知運營維護人員及時維護整個系統(tǒng)的容器資源的調(diào)配,在確定所述目標應(yīng)用容器的運行狀態(tài)滿足預(yù)設(shè)告警條件時,將用于指示所述目標應(yīng)用容器滿足所述預(yù)設(shè)告警條件的告警信息發(fā)送至所述云控制平臺,例如可以在管理控制臺界面中以聲光報警進行呈現(xiàn),同時還可以通過短信、綁定的微信賬號等推送告警信息,具體本文不作限定。
[0023]在一些可能的設(shè)計中,為進一步提高應(yīng)用容器運行時的穩(wěn)定性,還可以在所述目標應(yīng)用容器失效或運行所述目標應(yīng)用容器的第一宿主機失效時,啟用所述目標應(yīng)用容器的備份應(yīng)用容器,或者在第一宿主機所屬的集群內(nèi)中的任一宿主機上創(chuàng)建所述目標應(yīng)用容器的副本。
[0024]在一些可能的設(shè)計中,在部署完目標應(yīng)用容器后,還可以根據(jù)需求對目標應(yīng)用容器進行更新,具體如下:
[0025]1、通過修改目標鏡像文件實現(xiàn)對目標應(yīng)用進行更新。
[0026]容器調(diào)度器接收所述云控制平臺發(fā)送的應(yīng)用修改指令,所述應(yīng)用修改指令用于指示對所述目標鏡像文件的修改;
[0027]并根據(jù)所述應(yīng)用修改指令更新所述目標鏡像文件,并向所述集群內(nèi)部署的所述目標應(yīng)用容器推送修改信息,以使所述目標宿主機根據(jù)更新后的所述目標鏡像文件創(chuàng)建新的目標應(yīng)用容器。
[0028]2、通過上傳更新的文件包實現(xiàn)對目標應(yīng)用容器的應(yīng)用文件進行更新。
[0029]容器調(diào)度器接收所述云控制平臺發(fā)送的應(yīng)用更新指令,所述應(yīng)用更新指令用于指示對所述目標應(yīng)用容器的應(yīng)用文件的更新;
[0030]并根據(jù)所述應(yīng)用更新指令向所述集群內(nèi)部署的所述目標應(yīng)用容器推送更新消息,以使所述目標應(yīng)用容器獲取所述更新文件,更新目標應(yīng)用容器的應(yīng)用文件。
[0031]以上第一方面從容器調(diào)度器的角度對一種基于應(yīng)用容器的應(yīng)用管理方法進行說明,第二方面從云控制平臺的角度對一種基于應(yīng)用容器的應(yīng)用管理方法進行描述,所述方法應(yīng)用于應(yīng)用管理系統(tǒng)中的云控制平臺,所述應(yīng)用管理系統(tǒng)包括所述云控制平臺、容器調(diào)度器和包括至少一臺宿主機的集群,所述方法包括:
[0032]獲取目標鏡像文件;
[0033]對所述目標鏡像文件對應(yīng)的目標應(yīng)用進行應(yīng)用服務(wù)配置,具體為:配置目標應(yīng)用的應(yīng)用參數(shù)、目標應(yīng)用的環(huán)境變量和目標應(yīng)用的端口映射;
[0034]發(fā)送應(yīng)用創(chuàng)建指令至所述容器調(diào)度器,以使所述容器調(diào)度器將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0035]在一些可能的設(shè)計中,在部署完目標應(yīng)用容器后,云控制平臺還可以對容器資源進行管理,例如刪除容器、增加容器、增加或減少容器的硬件資源,以及重新創(chuàng)建容器等。其中,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0036]云控制平臺在對容器資源進行管理后,將容器資源管理指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器根據(jù)所述容器資源管理指令的指示內(nèi)容管理所述目標應(yīng)用容器的容器資源。
[0037]可選的,應(yīng)用部署人員可以在云控制平臺上根據(jù)需求自行管理容器資源,還可以是根據(jù)目標應(yīng)用容器的運行狀態(tài)管理容器資源,故云控制平臺在將容器資源管理指令發(fā)送至所述容器調(diào)度器之前,所述方法還包括:
[0038]云控制平臺獲取所述目標應(yīng)用容器的運行狀態(tài);
[0039]在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,云控制平臺根據(jù)所述運行狀態(tài)管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源;
[0040]所述容器資源管理指令至少包含以下項之一:重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器、關(guān)閉并刪除所述目標應(yīng)用容器、分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0041]可選的,所述運行狀態(tài)包括軟負載和工作狀態(tài),所述云控制平臺根據(jù)所述運行狀態(tài)管理所述目標應(yīng)用容器的容器資源,包括以下之一:
[0042]在所述軟負載超過第一閾值時,執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源;
[0043]在所述軟負載低于第二閾值時,執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源。
[0044]通過根據(jù)應(yīng)用容器的軟負載動態(tài)的調(diào)整容器資源,實現(xiàn)負載均衡。另外,通過動態(tài)的管理容器資源,并指示給容器調(diào)度器使得在集群中的宿主機失效或應(yīng)用容器失效被關(guān)閉時,容器調(diào)度器能立即在原宿主機上重新創(chuàng)建新的應(yīng)用容器,提高應(yīng)用服務(wù)的可靠性。
[0045]可選的,在管理容器資源過程中,還可以判斷是否需要進行告警,以便通知運營維護人員及時維護整個系統(tǒng)的容器資源的調(diào)配,在確定所述目標應(yīng)用容器的運行狀態(tài)滿足預(yù)設(shè)告警條件時,將用于指示所述目標應(yīng)用容器滿足所述預(yù)設(shè)告警條件的告警信息發(fā)送至所述云控制平臺,例如可以在管理控制臺界面中以聲光報警進行呈現(xiàn),同時還可以通過短信、綁定的微信賬號等推送告警信息,具體本文不作限定。
[0046]在一些可能的設(shè)計中,在部署完目標應(yīng)用容器后,還可以根據(jù)需求對目標應(yīng)用容器進行更新,具體如下:
[0047]1、通過修改目標鏡像文件實現(xiàn)對目標應(yīng)用進行更新。
[0048]云控制平臺獲取所述目標鏡像文件;
[0049]對所述目標鏡像文件進行修改;
[0050]將修改后的所述目標鏡像文件上傳至存儲所述目標鏡像文件的文件系統(tǒng),并將應(yīng)用修改指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器根據(jù)應(yīng)用修改指令更新所述目標鏡像文件,并向所述集群內(nèi)部署的所述目標應(yīng)用容器推送修改信息,以使所述目標宿主機根據(jù)更新后的所述目標鏡像文件創(chuàng)建新的目標應(yīng)用容器。
[0051]2、通過上傳更新的文件包實現(xiàn)對目標應(yīng)用容器的應(yīng)用文件進行更新。
[0052]云控制平臺獲取所述目標應(yīng)用容器的應(yīng)用文件的更新文件;
[0053]根據(jù)所述更新文件中的應(yīng)用標識指示的目標應(yīng)用,將所述更新文件上傳至存儲所述目標鏡像文件的文件系統(tǒng);
[0054]并將應(yīng)用更新指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器向所述集群內(nèi)部署的所述目標應(yīng)用容器推送更新消息,以使所述目標應(yīng)用容器獲取所述更新文件,更新目標應(yīng)用容器的應(yīng)用文件。
[0055]在更新目標應(yīng)用容器時,不需要將目標應(yīng)用容器中的目標應(yīng)用退出。另外,升級目標應(yīng)用需要更新目標應(yīng)用容器,只需要將更新文件上傳至文件系統(tǒng),然后由容器調(diào)度器將更新要求推送至各目標應(yīng)用容器,隨后,目標應(yīng)用容器中的自開發(fā)的基礎(chǔ)服務(wù)自動獲取應(yīng)用部署人員上傳的更新文件,并動態(tài)更新到目標應(yīng)用容器中指定的文件夾,從而避免現(xiàn)有技術(shù)中需要頻繁通過安全外殼SSH或遠程桌面登錄應(yīng)用服務(wù)器所造成的Linux密碼或其他密碼泄露,以及減少安全隱患。
[0056]本發(fā)明第三方面提供一種控制組件,具有實現(xiàn)對應(yīng)于上述第一方面提供的基于應(yīng)用容器的應(yīng)用管理方法的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊,所述模塊可以是軟件和/或硬件。
[0057]一種可能的設(shè)計中,所述控制組件包括:
[0058]獲取模塊,用于接收云控制平臺發(fā)送的應(yīng)用創(chuàng)建指令;
[0059]發(fā)送模塊,用于將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,并使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0060]—種可能的設(shè)計中,所述控制組件包括:
[0061]相互連接的處理器、存儲器、接收器和發(fā)射器;
[0062]其中,所述存儲器用于存儲程序代碼,所述處理器用于調(diào)用所述存儲器中的程序代碼來執(zhí)行以下操作:
[0063]利用所述接收器接收云控制平臺發(fā)送的應(yīng)用創(chuàng)建指令;
[0064]利用所述發(fā)射器將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0065]本發(fā)明第四方面提供一種云控制平臺,具有實現(xiàn)對應(yīng)于上述第二方面提供的基于應(yīng)用容器的應(yīng)用管理方法的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊,所述模塊可以是軟件和/或硬件。
[0066]一種可能的設(shè)計中,所述云控制平臺包括:
[0067]獲取模塊,用于獲取目標鏡像文件;
[0068]處理模塊,用于對所述目標鏡像文件對應(yīng)的目標應(yīng)用進行應(yīng)用服務(wù)配置;
[0069]發(fā)送模塊,用于發(fā)送應(yīng)用創(chuàng)建指令至所述容器調(diào)度器,以使所述容器調(diào)度器將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,并使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0070]一種可能的設(shè)計中,所述云控制平臺包括:
[0071]相互連接的處理器、存儲器、接收器和發(fā)射器;
[0072]其中,所述存儲器用于存儲程序代碼,所述處理器用于調(diào)用所述存儲器中的程序代碼來執(zhí)行以下操作:
[0073]利用所述接收器獲取目標鏡像文件;
[0074]并對所述目標鏡像文件對應(yīng)的目標應(yīng)用進行應(yīng)用服務(wù)配置;
[0075]利用所述發(fā)射器發(fā)送應(yīng)用創(chuàng)建指令至所述容器調(diào)度器,以使所述容器調(diào)度器將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0076]本發(fā)明第五方面提供一種應(yīng)用管理系統(tǒng),具有實現(xiàn)上述基于應(yīng)用容器的應(yīng)用管理方法的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊,所述模塊可以是軟件和/或硬件。
[0077]一種可能的設(shè)計中,所述應(yīng)用管理系統(tǒng)包括:
[0078]如第三方面所述的控制組件、如第四方面所述的云控制平臺,以及包括至少一臺宿主機的集群。
[0079]相較于現(xiàn)有技術(shù),本發(fā)明提供的方案中,容器調(diào)度器接收云控制平臺發(fā)送的應(yīng)用創(chuàng)建指令,根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,容器調(diào)度器使用所述目標鏡像文件創(chuàng)建目標應(yīng)用容器,不需要預(yù)先在每臺宿主機上安裝支撐軟件和運行環(huán)境,容器調(diào)度器即可在集群內(nèi)部署目標應(yīng)用容器,一定程度上減少應(yīng)用部署操作和提高應(yīng)用部署的效率。
【附圖說明】
[0080]圖1為本實施例中的應(yīng)用管理系統(tǒng)的一種結(jié)構(gòu)不意圖;
[0081]圖2為本實施例中的基于應(yīng)用容器的應(yīng)用管理方法的一種流程示意圖;
[0082]圖3為本實施例中的基于應(yīng)用容器的應(yīng)用管理方法的另一種流程示意圖;
[0083]圖4為本實施例中的進行應(yīng)用服務(wù)配置的一種界面圖;
[0084]圖5為本實施例中的基于應(yīng)用容器的應(yīng)用管理方法的另一種流程示意圖;
[0085]圖6為本實施例中的控制組件的一種結(jié)構(gòu)示意圖;
[0086]圖7為本實施例中的云控制平臺的一種示意圖;
[0087]圖8為本實施例中的應(yīng)用管理系統(tǒng)的一種結(jié)構(gòu)不意圖;
[0088]圖9為本實施例中的實現(xiàn)基于應(yīng)用容器的應(yīng)用管理方法的裝置的實體裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0089]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0090]本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的實施例能夠以除了在這里圖示或描述的內(nèi)容以外的順序?qū)嵤4送猓g(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或模塊的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或模塊,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或模塊,本文中所出現(xiàn)的模塊的劃分,僅僅是一種邏輯上的劃分,實際應(yīng)用中實現(xiàn)時可以有另外的劃分方式,例如多個模塊可以結(jié)合成或集成在另一個系統(tǒng)中,或一些特征可以忽略,或不執(zhí)行,另外,所顯示的或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,模塊之間的間接耦合或通信連接可以是電性或其他類似的形式,本文中均不作限定。并且,作為分離部件說明的模塊或子模塊可以是也可以不是物理上的分離,可以是也可以不是物理模塊,或者可以分不到多個電路模塊中,可以根據(jù)實際的需要選擇其中的部分或全部模塊來實現(xiàn)本發(fā)明實施例方案的目的。
[0091]本發(fā)明實施例提供了一種基于應(yīng)用容器的應(yīng)用管理方法及系統(tǒng),用于云技術(shù)領(lǐng)域,能夠提高基于容器部署應(yīng)用的效率。以下進行詳細說明。
[0092]如圖1所示,本文中的應(yīng)用管理系統(tǒng)包括云控制平臺和集群系統(tǒng)。
[0093]其中,云控制平臺用于實現(xiàn)集群管理,應(yīng)用管理,應(yīng)用發(fā)布,應(yīng)用服務(wù)部署,應(yīng)用服務(wù)啟停、擴容,應(yīng)用狀態(tài)監(jiān)控等功能,為應(yīng)用部署人員或管理員提供應(yīng)用部署的交互界面,應(yīng)用部署人員或管理員無需關(guān)心集群系統(tǒng)底層的實現(xiàn),可以直接在交互界面完成應(yīng)用部署的一系列操作。
[0094]云控制平臺包括:
[0095]宿主機管理模塊,用于管理多個集群或區(qū)域集群,比如北京機房集群、上海機房集群、深圳機房集群,集群數(shù)據(jù)保存到數(shù)據(jù)庫中。還可以顯示指定集群下的所有宿主機列表及詳細信息,數(shù)據(jù)可通過應(yīng)用程序接口(英文全稱:英文簡稱:API)從集群系統(tǒng)的后臺即控制組件讀取。還可以顯示當前Docker鏡像倉庫中的鏡像文件列表,并可為鏡像文件設(shè)置圖標、環(huán)境變量、端口映射、版本等信息?;A(chǔ)鏡像是應(yīng)用運行的基礎(chǔ)環(huán)境,鏡像文件保存到控制組件的鏡像倉庫中。應(yīng)用部署人員或管理員還可以通過云控制平臺查看用戶密碼修改、系統(tǒng)操作日志以及應(yīng)用容器的告警信息等。
[0096]應(yīng)用服務(wù)管理模塊,用于管理用戶的應(yīng)用信息,應(yīng)用信息包括應(yīng)用的基本信息、所需的基礎(chǔ)鏡像、環(huán)境變量、需要導出的端口號、應(yīng)用負載均衡設(shè)置、應(yīng)用健康檢查設(shè)置功能等。還可以負責不同版本的鏡像文件或升級文件的上傳、更新等管理。還可以在應(yīng)用的鏡像文件上傳后,實現(xiàn)應(yīng)用的部署,例如點擊“部署應(yīng)用”菜單后,根據(jù)交互界面顯示的配置向?qū)?,對?yīng)用的資源、參數(shù)、容器節(jié)點數(shù)進行配置,然后可在交互界面中點擊“啟動”或“停止”按鈕進行應(yīng)用的啟停操作。
[0097]應(yīng)用容器監(jiān)控界面,用于定期通過API從控制組件的監(jiān)控信息采集模塊獲取監(jiān)控數(shù)據(jù),并以圖形化界面顯示在瀏覽器端。
[0098]集群系統(tǒng)包括控制組件、至少一個集群,每個集群包括至少一臺宿主機,其中,控制組件用于控制集群內(nèi)的宿主機,控制組件包括容器調(diào)度器、鏡像倉庫、監(jiān)控信息采集模塊以及緩存,容器調(diào)度器用于管理集群內(nèi)部署的應(yīng)用容器,例如創(chuàng)建應(yīng)用容器、刪除應(yīng)用容器、增加應(yīng)用容器以及容器資源的管理等,集群系統(tǒng)內(nèi)可以設(shè)置至少一個容器調(diào)度器,每個集群可以設(shè)置至少一個容器調(diào)度器(包括主容器調(diào)度器、從容器調(diào)度器或備份容器調(diào)度器),集群之間的容器資源的管理彼此隔離,具體容器調(diào)度器的設(shè)置本文不作限定。鏡像倉庫用于存儲鏡像文件、應(yīng)用容器的運行環(huán)境等信息;監(jiān)控信息采集模塊用于從集群內(nèi)的宿主機中采集宿主機上運行的各應(yīng)用容器的運行狀態(tài),運行狀態(tài)包括:宿主機的處理器、內(nèi)存、磁盤空間和網(wǎng)絡(luò)輸入輸出(英文全稱:Input/Output,英文簡稱:I/O)信息,以及各宿主機上運行的各個應(yīng)用容器的處理器、內(nèi)存、網(wǎng)絡(luò)I/O信息等;緩存用于存儲宿主機上運行的各應(yīng)用容器的運行狀態(tài)。
[0099]應(yīng)用容器包括應(yīng)用的運行環(huán)境和應(yīng)用,應(yīng)用容器中運行一個自開發(fā)的基礎(chǔ)服務(wù),該基礎(chǔ)服務(wù)可以向網(wǎng)絡(luò)接入服務(wù)匯報應(yīng)用容器的網(wǎng)絡(luò)地址、健康狀況等信息。網(wǎng)絡(luò)接入服務(wù)為應(yīng)用提供服務(wù)訪問入口功能。應(yīng)用容器也可以稱為容器。
[0100]每臺宿主機上可以部署至少一個應(yīng)用容器,這些應(yīng)用容器可以是提供同一應(yīng)用服務(wù)的容器,也可以是提供不同的應(yīng)用服務(wù)的容器,具體不限定。當需要運行指定的應(yīng)用時,由宿主機中的Docker容器引擎自動從鏡像倉庫拉取創(chuàng)建應(yīng)用容器所需要的鏡像文件到宿主機中。
[0101]可選的,所述集群系統(tǒng)還可以包括網(wǎng)絡(luò)接入模塊,用于用戶訪問宿主機上部署的應(yīng)用容器中的應(yīng)用。
[0102]為解決現(xiàn)有機制中的技術(shù)問題,本發(fā)明實施例主要提供以下技術(shù)方案:
[0103]1、應(yīng)用部署人員在云控制平臺創(chuàng)建應(yīng)用信息,并將獲取到的鏡像文件上傳至鏡像倉庫。
[0104]具體來說,應(yīng)用部署人員可以使用現(xiàn)有的應(yīng)用模版直接在云控制平臺創(chuàng)建應(yīng)用的鏡像文件,也可以是從網(wǎng)絡(luò)數(shù)據(jù)庫等渠道獲取已經(jīng)創(chuàng)建好的鏡像文件,然后在云控制平臺創(chuàng)建相關(guān)的應(yīng)用信息。
[0105]2、在云控制平臺設(shè)置運行該鏡像文件對應(yīng)的應(yīng)用的應(yīng)用服務(wù)配置,然后將指示應(yīng)用服務(wù)配置的指令發(fā)送給容器調(diào)度器,使得容器調(diào)度器根據(jù)指令中的應(yīng)用服務(wù)配置自動的創(chuàng)建包含該應(yīng)用、該應(yīng)用的運行環(huán)境的應(yīng)用容器,并在集群內(nèi)的宿主機上部署該應(yīng)用容器。
[0106]上述方案中,在部署應(yīng)用容器時,應(yīng)用部署人員只需要通過云控制平臺的交互界面上預(yù)定義的向?qū)讲僮?,為?yīng)用進行應(yīng)用服務(wù)配置和啟用該應(yīng)用,即可不用參與具體的運行環(huán)境的安裝和配置、應(yīng)用的安裝和配置等復(fù)雜操作,后續(xù)所有的應(yīng)用容器部署工作都由集群系統(tǒng)自動完成,從而提高部署應(yīng)用容器的效率。
[0107]請參照圖2,以下對本發(fā)明提供一種基于應(yīng)用容器的應(yīng)用管理方法進行舉例說明,應(yīng)用部署人員登錄云控制平臺,建立宿主機集群信息,配置系統(tǒng)參數(shù)(如:用戶信息、應(yīng)用分類信息、基礎(chǔ)鏡像信息等),創(chuàng)建應(yīng)用的基本信息(如:應(yīng)用介紹,應(yīng)用圖標、端口、環(huán)境變量設(shè)置等),然后設(shè)置應(yīng)用的運行環(huán)境鏡像與運行環(huán)境鏡像的版本信息,在交互界面中上傳應(yīng)用版本文件(可以是壓縮文件格式),完成應(yīng)用版本文件上傳后,在集群內(nèi)部署應(yīng)用容器的具體過程如下:
[0108]101、云控制平臺獲取目標鏡像文件,對所述目標鏡像文件對應(yīng)的目標應(yīng)用進行應(yīng)用服務(wù)配置。
[0109]其中,目標鏡像文件可以由應(yīng)用部署人員使用現(xiàn)有的應(yīng)用模版創(chuàng)建,也可以是從網(wǎng)絡(luò)數(shù)據(jù)庫或其他渠道獲取已經(jīng)創(chuàng)建好的目標鏡像文件,例如直接拷貝的方式,具體獲取目標鏡像文件的方式本文不作限定。
[0110]應(yīng)用服務(wù)配置主要包括:配置目標應(yīng)用的應(yīng)用參數(shù)、目標應(yīng)用的環(huán)境變量和目標應(yīng)用的端口映射。其中,配置目標應(yīng)用的應(yīng)用參數(shù)包括應(yīng)用名稱、應(yīng)用版本、服務(wù)名稱、宿主機集群、資源配置、容器節(jié)點數(shù)、云盤空間以及負載方式;目標應(yīng)用的環(huán)境變量包括管理員名稱和管理員密碼;目標應(yīng)用的端口映射包括網(wǎng)絡(luò)端口、綁定的域名和公網(wǎng)訪問權(quán)限。
[0111]102、云控制平臺發(fā)送應(yīng)用創(chuàng)建指令至所述容器調(diào)度器。
[0112]應(yīng)用創(chuàng)建指令用于指示容器調(diào)度器啟用目標應(yīng)用的服務(wù),為目標應(yīng)用創(chuàng)建相應(yīng)的目標應(yīng)用容器。
[0113]103、容器調(diào)度器接收云控制平臺發(fā)送的應(yīng)用創(chuàng)建指令,根據(jù)資源調(diào)度策略將所述應(yīng)用創(chuàng)建指令推送至集群內(nèi)的目標宿主機,以實現(xiàn)在所述集群內(nèi)部署所述目標應(yīng)用容器。
[0114]其中,目標宿主機包括集群內(nèi)的至少一臺待部署目標應(yīng)用容器的宿主機,目標宿主機的選擇由容器調(diào)度器根據(jù)預(yù)配置的資源調(diào)度策略計算的到。
[0115]104、目標宿主機接收到應(yīng)用創(chuàng)建指令后獲取目標鏡像文件,并使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0116]其中,在所述集群內(nèi)部署所述目標應(yīng)用容器包括:容器調(diào)度器通過資源調(diào)度算法選擇待部署目標應(yīng)用容器的目標宿主機,然后將應(yīng)用創(chuàng)建指令推送到這些目標宿主機,以實現(xiàn)在待部署目標應(yīng)用容器的宿主機上部署目標應(yīng)用容器。還可以根據(jù)需要在同一臺宿主機上部署至少一個目標應(yīng)用容器,具體不作限定。另外,若上述目標應(yīng)用比較復(fù)雜,還可以將目標應(yīng)用拆分為多個分布式組件,并分別為每個分布式組件創(chuàng)建一個應(yīng)用容器,然后建立這些應(yīng)用容器之間的通信,實現(xiàn)負載均衡。
[0117]本發(fā)明實施例中,云控制平臺為目標應(yīng)用進行應(yīng)用服務(wù)配置,并將啟用目標應(yīng)用、以及創(chuàng)建相應(yīng)的目標應(yīng)用容器的應(yīng)用創(chuàng)建指令發(fā)送給容器調(diào)度器,容器調(diào)度器選擇目標宿主機,目標宿主機獲取目標鏡像文件,并使用所述目標鏡像文件創(chuàng)建目標應(yīng)用容器,實現(xiàn)不需要預(yù)先在每臺宿主機上安裝支撐軟件和運行環(huán)境,容器調(diào)度器即可自動在集群內(nèi)部署目標應(yīng)用容器,一定程度上減少部署操作和提高應(yīng)用部署的效率,也減少了傳統(tǒng)的命令式人工部署的錯誤操作概率。
[0118]可選的,在一些發(fā)明實施例中,在部署完目標應(yīng)用容器后,云控制平臺或容器調(diào)度器還可以對目標應(yīng)用容器的容器資源進行管理,例如刪除容器、增加容器、增加或減少容器的硬件資源,以及重新創(chuàng)建容器等。其中,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。以下分別進行說明:
[0119]1、容器調(diào)度器根據(jù)云控制平臺發(fā)送的容器資源管理指令所指示的內(nèi)容管理容器資源。
[0120]a、應(yīng)用部署人員根據(jù)需要在云控制平臺管理容器資源。
[0121]b、應(yīng)用部署人員根據(jù)獲取的目標應(yīng)用容器的運行狀態(tài)管理容器資源。
[0122]然后,應(yīng)用部署人員會將用于指示管理容器資源的信息的容器資源管理指令發(fā)送給容器調(diào)度器,使得容器調(diào)度器根據(jù)所述容器資源管理指令管理所述目標應(yīng)用容器的容器資源。
[0123]需要說明的是,對于云控制平臺而言,僅僅針對容器資源的相關(guān)參數(shù)進行設(shè)置,最終對容器資源的配置由容器調(diào)度器執(zhí)行。
[0124]所述運行狀態(tài)包括軟負載和工作狀態(tài),所述云控制平臺根據(jù)所述運行狀態(tài)管理所述目標應(yīng)用容器的容器資源,包括以下之一:
[0125]在所述軟負載超過第一閾值時,執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源;
[0126]在所述軟負載低于第二閾值時,執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源。
[0127]通過根據(jù)應(yīng)用容器的軟負載動態(tài)的調(diào)整容器資源,實現(xiàn)負載均衡。另外,通過動態(tài)的管理容器資源,并指示給容器調(diào)度器使得在集群中的宿主機失效或應(yīng)用容器失效被關(guān)閉時,容器調(diào)度器能立即在原宿主機上重新創(chuàng)建新的應(yīng)用容器,提高應(yīng)用服務(wù)的可靠性。
[0128]可選的,在管理容器資源過程中,云控制平臺還可以判斷是否需要進行告警,以便通知運營維護人員及時維護整個系統(tǒng)的容器資源的調(diào)配,在確定所述目標應(yīng)用容器的運行狀態(tài)滿足預(yù)設(shè)告警條件時,將用于指示所述目標應(yīng)用容器滿足所述預(yù)設(shè)告警條件的告警信息發(fā)送至所述云控制平臺,例如可以在管理控制臺界面中以聲光報警進行呈現(xiàn),同時還可以通過短信、綁定的微信賬號等推送告警信息,具體本文不作限定。
[0129]2、容器調(diào)度器根據(jù)獲取的目標應(yīng)用容器的運行狀態(tài)自動管理容器資源。
[0130]具體為:通過運行在宿主機上的宿主機守護模塊獲取所述目標應(yīng)用容器的運行狀態(tài);
[0131 ]在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源。
[0132]其中,所述容器資源管理指令至少包含以下項之一:重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器、關(guān)閉并刪除所述目標應(yīng)用容器、分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0133]可選的,所述運行狀態(tài)包括軟負載和工作狀態(tài),對于容器調(diào)度器而言,在根據(jù)運行狀態(tài)自動管理應(yīng)用容器時,第2種情況中,容器調(diào)度器根據(jù)所述運行狀態(tài)管理和預(yù)設(shè)配置規(guī)則所述目標應(yīng)用容器的容器資源,包括以下之一:
[0134]在所述工作狀態(tài)為失效狀態(tài)時,使用所述目標鏡像文件重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器;
[0135]在所述軟負載超過第一閾值時,執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源;
[0136]在所述軟負載低于第二閾值時,執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源;
[0137]在所述軟負載低于第三閾值時,將所述目標應(yīng)用容器關(guān)閉并刪除。
[0138]通過根據(jù)應(yīng)用容器的軟負載動態(tài)的調(diào)整容器資源,實現(xiàn)負載均衡。另外,通過動態(tài)的管理容器資源,使得在集群中的宿主機失效或應(yīng)用容器失效被關(guān)閉時,容器調(diào)度器能立即在原宿主機上重新創(chuàng)建新的應(yīng)用容器,提高應(yīng)用服務(wù)的可靠性??梢岳斫獾氖?,上述第一閾值、第二閾值和第三閾值從左至右,按從小到大排列。
[0139]可選的,在管理容器資源過程中,還可以判斷是否需要進行告警,以便通知運營維護人員及時維護整個系統(tǒng)的容器資源的調(diào)配,在確定所述目標應(yīng)用容器的運行狀態(tài)滿足預(yù)設(shè)告警條件時,將用于指示所述目標應(yīng)用容器滿足所述預(yù)設(shè)告警條件的告警信息發(fā)送至所述云控制平臺,例如可以在管理控制臺界面中以聲光報警進行呈現(xiàn),同時還可以通過短信、綁定的微信賬號等推送告警信息,具體本文不作限定。
[0140]可選的,在一些發(fā)明實施例中,在部署完目標應(yīng)用容器后,容器調(diào)度器還可以根據(jù)需求對目標應(yīng)用容器進行更新,具體如下:
[0141]一、對于云控制平臺:
[0142]1、通過修改目標鏡像文件實現(xiàn)對目標應(yīng)用進行更新。
[0143]具體的,云控制平臺獲取所述目標鏡像文件;
[0144]對所述目標鏡像文件進行修改;
[0145]將修改后的所述目標鏡像文件上傳至存儲所述目標鏡像文件的文件系統(tǒng),并將應(yīng)用修改指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器根據(jù)應(yīng)用修改指令更新所述目標鏡像文件,并向所述集群內(nèi)部署的所述目標應(yīng)用容器推送修改信息,以使所述目標宿主機根據(jù)更新后的所述目標鏡像文件創(chuàng)建新的目標應(yīng)用容器。
[0146]2、通過上傳更新的文件包實現(xiàn)對目標應(yīng)用容器的應(yīng)用文件進行更新。
[0147]具體的,云控制平臺獲取所述目標應(yīng)用容器的應(yīng)用文件的更新文件;
[0148]根據(jù)所述更新文件中的應(yīng)用標識指示的目標應(yīng)用,將所述更新文件上傳至存儲所述目標鏡像文件的文件系統(tǒng);
[0149]并將應(yīng)用更新指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器向所述集群內(nèi)部署的所述目標應(yīng)用容器推送更新消息,以使所述目標應(yīng)用容器獲取所述更新文件,更新目標應(yīng)用容器的應(yīng)用文件。
[0150]二、對于容器調(diào)度器:
[0151 ] 1、通過修改目標鏡像文件實現(xiàn)對目標應(yīng)用進行更新。
[0152]具體的,容器調(diào)度器接收所述云控制平臺發(fā)送的應(yīng)用修改指令,所述應(yīng)用修改指令用于指示對所述目標鏡像文件的修改;
[0153]根據(jù)所述應(yīng)用修改指令更新所述目標鏡像文件,并向所述集群內(nèi)部署的所述目標應(yīng)用容器推送修改信息,以使所述目標宿主機根據(jù)更新后的所述目標鏡像文件創(chuàng)建新的目標應(yīng)用容器。
[0154]2、通過上傳更新的文件包實現(xiàn)對目標應(yīng)用容器的應(yīng)用文件進行更新。
[0155]具體的,容器調(diào)度器接收所述云控制平臺發(fā)送的應(yīng)用更新指令,所述應(yīng)用更新指令用于指示對所述目標應(yīng)用容器的應(yīng)用文件的更新;
[0156]根據(jù)所述應(yīng)用更新指令向所述集群內(nèi)部署的所述目標應(yīng)用容器推送更新消息,以使所述目標應(yīng)用容器獲取所述應(yīng)用文件的更新文件,更新目標應(yīng)用容器的應(yīng)用文件,即從文件系統(tǒng)拉取該更新文件,并更新到目標應(yīng)用容器里的應(yīng)用卷文件系統(tǒng)中。
[0157]以上一、二兩種情況中,在更新目標鏡像文件時,不需要將目標應(yīng)用容器中的目標應(yīng)用退出,即不會影響目標應(yīng)用的正常運行。另外,升級目標應(yīng)用需要更新目標應(yīng)用容器,只需要將更新文件上傳至文件系統(tǒng),然后由容器調(diào)度器將應(yīng)用更新指令推送至各目標應(yīng)用容器,隨后,目標應(yīng)用容器中的自開發(fā)的基礎(chǔ)服務(wù)自動獲取應(yīng)用部署人員上傳的更新文件,并動態(tài)更新到目標應(yīng)用容器中指定的文件夾,從而避免現(xiàn)有技術(shù)中需要頻繁通過安全外殼(英文全稱:Secure Shell,英文簡稱:SSH)或遠程桌面登錄應(yīng)用服務(wù)器所造成的Linux密碼或其他密碼泄露,一定程度上減少安全隱患。
[0158]可選的,在一些發(fā)明實施例中,應(yīng)用訪問者還可以通過網(wǎng)絡(luò)接入模塊來訪問應(yīng)用容器中的應(yīng)用服務(wù),網(wǎng)絡(luò)接入模塊偵聽網(wǎng)絡(luò)請求,當接收到訪問請求后,根據(jù)訪問請求中的網(wǎng)絡(luò)端口、臨時文件(cookie)或統(tǒng)一資源定位符(英文全稱:Uniform Resource Locator,英文簡稱:URL)等路徑在內(nèi)存中查詢匹配的應(yīng)用容器A,然后將訪問請求轉(zhuǎn)發(fā)到該應(yīng)用容器A中。如果內(nèi)存中未能查詢到匹配的應(yīng)用容器,則從緩存中查找匹配的應(yīng)用容器,然后將訪問請求轉(zhuǎn)發(fā)到該應(yīng)用容器。
[0159]為便于理解本發(fā)明實施例,可參考圖3、圖4及圖5所示的應(yīng)用部署的流程圖。
[0160]其中,圖3為從應(yīng)用服務(wù)配置到在宿主機上部署應(yīng)用容器、刪除應(yīng)用容器、更新應(yīng)用容器文件的流程圖。
[0161]圖4為進行應(yīng)用服務(wù)配置的一個具體實施圖,由圖4可知,選擇部署的應(yīng)用名稱為Z-FMS表單流程管理系統(tǒng),應(yīng)用版本為1.0,主機集群為深圳電信I,為該應(yīng)用配置的資源為中央處理器(英文全稱:,英文簡稱:CPU)*2核和內(nèi)存512兆字節(jié)(英文全稱:MegaByte,英文簡稱:MB),容器節(jié)點數(shù)為10,所占云盤空間為I千兆字節(jié)(英文全稱:Gigabyte,英文簡稱:GB),環(huán)境變量配置和端口映射配置的內(nèi)容可自行定義,本文不作限定,圖4僅為本發(fā)明舉出的一個具體實施例,不作為對本發(fā)明的限定。
[0162]圖5為整個應(yīng)用管理系統(tǒng)的內(nèi)部交互流程圖,圖5中的應(yīng)用接入點即為網(wǎng)絡(luò)接入模塊。圖5中,管理員可通過登錄云控制平臺管理集群、基礎(chǔ)鏡像、資源管理等,應(yīng)用部署人員可以通過登錄云控制平臺進行應(yīng)用部署的相關(guān)應(yīng)用服務(wù)配置,然后將啟動應(yīng)用的指令通過云控制平臺發(fā)送給容器調(diào)度器,使得容器調(diào)度器在集群內(nèi)創(chuàng)建應(yīng)用容器。應(yīng)用訪問者可以通過預(yù)留的應(yīng)用接入點訪問某個應(yīng)用容器中的應(yīng)用。
[0163]以上對本發(fā)明中一種基于應(yīng)用容器的應(yīng)用管理方法進行說明,以下分別對執(zhí)行上述應(yīng)用容器管理的控制組件60、云控制平臺70、及應(yīng)用管理系統(tǒng)80進行描述。
[0164]—、參照圖6,對控制組件60進行說明,所述控制組件60應(yīng)用于應(yīng)用管理系統(tǒng),所述應(yīng)用管理系統(tǒng)80包括云控制平臺70、所述控制組件60和包括至少一臺宿主機的集群,控制組件60包括:
[0165]獲取模塊601,用于接收云控制平臺70發(fā)送的應(yīng)用創(chuàng)建指令;
[0166]處理模塊602,用于根據(jù)資源調(diào)度策略和所述獲取模塊601接收到的所述應(yīng)用創(chuàng)建指令在所述集群內(nèi)選擇待部署目標應(yīng)用容器的目標宿主機;
[0167]發(fā)送模塊603,用于將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0168]本發(fā)明實施例中,處理模塊602根據(jù)接收到的應(yīng)用創(chuàng)建指令選擇目標宿主機,并將應(yīng)用創(chuàng)建指令推送至目標宿主機,以使目標宿主機獲取目標鏡像文件,使用所述目標鏡像文件創(chuàng)建目標應(yīng)用容器,不需要預(yù)先在每臺宿主機上安裝支撐軟件和運行環(huán)境,容器調(diào)度器即可在集群內(nèi)部署目標應(yīng)用容器,一定程度上減少部署操作和提高應(yīng)用部署的效率。
[0169]可選的,所述處理模塊602還用于:
[0170]通過所述獲取模塊601接收所述云控制平臺70發(fā)送的容器資源管理指令;
[0171]并根據(jù)所述容器資源管理指令管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0172]可選的,所述處理模塊602還用于:
[0173]通過所述獲取模塊601獲取所述目標應(yīng)用容器的運行狀態(tài);
[0174]在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0175]可選的,所述運行狀態(tài)包括軟負載和工作狀態(tài),所述處理模塊602具體執(zhí)行以下之
[0176]在所述工作狀態(tài)為失效狀態(tài)時,使用所述目標鏡像文件重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器;
[0177]在所述軟負載超過第一閾值時,執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源;
[0178]在所述軟負載低于第二閾值時,執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源;
[0179]在所述軟負載低于第三閾值時,將所述目標應(yīng)用容器關(guān)閉并刪除。
[0180]可選的,所述處理模塊602還用于:
[0181 ]在所述目標應(yīng)用容器失效或運行所述目標應(yīng)用容器的第一宿主機失效時,啟用所述目標應(yīng)用容器的備份應(yīng)用容器,或者在第一宿主機所屬的集群內(nèi)中的任一宿主機上創(chuàng)建所述目標應(yīng)用容器的副本。
[0182]二、參照圖7,對云控制平臺70進行說明,所述云控制平臺70應(yīng)用于應(yīng)用管理系統(tǒng)80,所述應(yīng)用管理系統(tǒng)80包括所述云控制平臺70、容器調(diào)度器和包括至少一臺宿主機的集群,云控制平臺70包括:
[0183]獲取模塊701,用于獲取目標鏡像文件;
[0184]處理模塊702,用于對所述獲取模塊701獲取到的所述目標鏡像文件對應(yīng)的目標應(yīng)用進行應(yīng)用服務(wù)配置;
[0185]發(fā)送模塊703,用于發(fā)送應(yīng)用創(chuàng)建指令至所述容器調(diào)度器,以使所述容器調(diào)度器根據(jù)所述應(yīng)用創(chuàng)建指令在集群內(nèi)選擇待部署目標應(yīng)用容器的目標宿主機,并將應(yīng)用創(chuàng)建指令推送至目標宿主機,以使所述目標宿主機根據(jù)應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0186]本發(fā)明實施例中,處理模塊702為目標應(yīng)用進行應(yīng)用服務(wù)配置,并通過發(fā)送模塊703將啟用目標應(yīng)用、以及創(chuàng)建相應(yīng)的目標應(yīng)用容器的應(yīng)用創(chuàng)建指令發(fā)送給容器調(diào)度器,容器調(diào)度器獲取目標鏡像文件,并使用所述目標鏡像文件創(chuàng)建目標應(yīng)用容器,實現(xiàn)不需要預(yù)先在每臺宿主機上安裝支撐軟件和運行環(huán)境,容器調(diào)度器即可自動在集群內(nèi)部署目標應(yīng)用容器,一定程度上減少部署操作和提高應(yīng)用部署的效率,也減少了傳統(tǒng)的命令式人工部署的錯誤操作概率。
[0187]可選的,所述處理模塊702具體用于:
[0188]配置目標應(yīng)用的應(yīng)用參數(shù)、目標應(yīng)用的環(huán)境變量和目標應(yīng)用的端口映射。
[0189]可選的,所述處理模塊702具體用于:
[0190]在使用所述目標鏡像文件在所述集群內(nèi)部署所述目標應(yīng)用容器時,根據(jù)所述目標鏡像文件中的集群標識選擇所述集群標識指示的目標集群類型。
[0191]可選的,所述處理模塊702還用于:
[0192]通過所述發(fā)送模塊703將容器資源管理指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器根據(jù)所述容器資源管理指令的指示內(nèi)容管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0193]可選的,所述處理模塊702在通過所述發(fā)送模塊703將容器資源管理指令發(fā)送至所述容器調(diào)度器之前,還用于:
[0194]通過所述獲取模塊701獲取所述目標應(yīng)用容器的運行狀態(tài);
[0195]在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,根據(jù)所述運行狀態(tài)管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源;
[0196]所述容器資源管理指令至少包含以下項之一:重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器、關(guān)閉并刪除所述目標應(yīng)用容器、分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0197]可選的,所述運行狀態(tài)包括軟負載和工作狀態(tài),所述處理模塊702具體執(zhí)行以下之
[0198]在所述軟負載超過第一閾值時,執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源;
[0199]在所述軟負載低于第二閾值時,執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源。
[0200]三、參考圖8,所述應(yīng)用管理系統(tǒng)80包括:
[0201]如圖6所述的控制組件60;
[0202]如圖7所述的云控制平臺70;
[0203]包括至少一臺宿主機的集群。
[0204]其中,控制組件60包括容器調(diào)度器601.
[0205]所述云控制平臺70,用于獲取目標鏡像文件,并對所述獲取模塊獲取到的所述目標鏡像文件對應(yīng)的目標應(yīng)用進行應(yīng)用服務(wù)配置,以及發(fā)送應(yīng)用創(chuàng)建指令至所述容器調(diào)度器601;
[0206]所述容器調(diào)度器601,用于根據(jù)所述云控制平臺70發(fā)送的所述應(yīng)用創(chuàng)建指令在集群內(nèi)選擇待部署目標應(yīng)用容器的目標宿主機,并將應(yīng)用創(chuàng)建指令推送至目標宿主機,以使所述目標宿主機根據(jù)應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。
[0207]其中,在使用所述目標鏡像文件在所述集群內(nèi)部署所述目標應(yīng)用容器時,所述云控制平臺70具體用于:
[0208]根據(jù)所述目標鏡像文件中的集群標識選擇所述集群標識指示的目標集群類型。
[0209]可選的,在一些發(fā)明實施例中,在部署完目標應(yīng)用容器后,云控制平臺70或容器調(diào)度器601還可以對目標應(yīng)用容器的容器資源進行管理,例如刪除容器、增加容器、增加或減少容器的硬件資源,以及重新創(chuàng)建容器等。其中,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。以下分別進行說明:
[0210]1、容器調(diào)度器601根據(jù)云控制平臺70發(fā)送的容器資源管理指令所指示的內(nèi)容管理容器資源。
[0211]a、應(yīng)用部署人員根據(jù)需要在云控制平臺70管理容器資源。
[0212]b、應(yīng)用部署人員根據(jù)獲取的目標應(yīng)用容器的運行狀態(tài)管理容器資源。
[0213]然后,應(yīng)用部署人員會將用于指示管理容器資源的信息的容器資源管理指令發(fā)送給容器調(diào)度器601,使得容器調(diào)度器根據(jù)所述容器資源管理指令管理所述目標應(yīng)用容器的容器資源。
[0214]需要說明的是,對于云控制平臺而言,僅僅針對容器資源的相關(guān)參數(shù)進行設(shè)置,最終對容器資源的配置由容器調(diào)度器執(zhí)行。
[0215]具體關(guān)于云控制平臺70根據(jù)運行狀態(tài)來管理容器資源的相關(guān)說明,以及判斷是否需要進行告警,均可以參考上述圖2所對應(yīng)的方式實施例,此處不再贅述。
[0216]2、容器調(diào)度器601根據(jù)獲取的目標應(yīng)用容器的運行狀態(tài)自動管理容器資源。
[0217]具體為:通過運行在宿主機上的宿主機守護模塊獲取所述目標應(yīng)用容器的運行狀態(tài);
[0218]在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源。
[0219]其中,所述容器資源管理指令至少包含以下項之一:重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器、關(guān)閉并刪除所述目標應(yīng)用容器、分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。
[0220]具體關(guān)于容器調(diào)度器601根據(jù)運行狀態(tài)自動管理容器資源的相關(guān)說明,以及判斷是否需要進行告警,均可以參考上述圖2所對應(yīng)的方式實施例,此處不再贅述。
[0221]可選的,在一些發(fā)明實施例中,在部署完目標應(yīng)用容器后,容器調(diào)度器601還可以根據(jù)需求對目標應(yīng)用容器進行修改或升級,具體如下:
[0222]一、對于云控制平臺70:
[0223]1、通過修改目標鏡像文件實現(xiàn)對目標應(yīng)用進行更新。
[0224]具體的,云控制平臺獲取所述目標鏡像文件;
[0225]對所述目標鏡像文件進行修改;
[0226]將修改后的所述目標鏡像文件上傳至存儲所述目標鏡像文件的文件系統(tǒng),并將應(yīng)用修改指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器601根據(jù)應(yīng)用修改指令更新所述目標鏡像文件,并向所述集群內(nèi)部署的所述目標應(yīng)用容器推送修改信息,以使所述目標宿主機根據(jù)更新后的所述目標鏡像文件創(chuàng)建新的目標應(yīng)用容器。
[0227]2、通過上傳更新的文件包實現(xiàn)對目標應(yīng)用容器的應(yīng)用文件進行更新。
[0228]具體的,云控制平臺獲取所述目標應(yīng)用容器的應(yīng)用文件的更新文件;
[0229]根據(jù)所述更新文件中的應(yīng)用標識指示的目標應(yīng)用,將所述更新文件上傳至存儲所述目標鏡像文件的文件系統(tǒng);
[0230]并將應(yīng)用更新指令發(fā)送至所述容器調(diào)度器601,以使所述容器調(diào)度器601向所述集群內(nèi)部署的所述目標應(yīng)用容器推送更新消息,以使所述目標應(yīng)用容器獲取所述更新文件,更新目標應(yīng)用容器的應(yīng)用文件。
[0231]二、對于容器調(diào)度器601:
[0232]1、通過修改目標鏡像文件實現(xiàn)對目標應(yīng)用進行更新。
[0233]具體的,容器調(diào)度器601接收所述云控制平臺發(fā)送的應(yīng)用修改指令,所述應(yīng)用修改指令用于指示對所述目標鏡像文件的修改;
[0234]并根據(jù)所述應(yīng)用修改指令更新所述目標鏡像文件,并向所述集群內(nèi)部署的所述目標應(yīng)用容器推送修改信息,以使所述目標宿主機根據(jù)更新后的所述目標鏡像文件創(chuàng)建新的目標應(yīng)用容器。
[0235]2、通過上傳更新的文件包實現(xiàn)對目標應(yīng)用容器的應(yīng)用文件進行更新。
[0236]具體的,容器調(diào)度器601接收所述云控制平臺發(fā)送的應(yīng)用更新指令,所述應(yīng)用更新指令用于指示對所述目標應(yīng)用容器的應(yīng)用文件的更新;
[0237]并根據(jù)所述應(yīng)用更新指令向所述集群內(nèi)部署的所述目標應(yīng)用容器推送更新消息,以使所述目標應(yīng)用容器獲取所述應(yīng)用文件的更新文件,更新目標應(yīng)用容器的應(yīng)用文件。
[0238]以上一、二兩種情況中,在更新目標應(yīng)用容器時,不需要將目標應(yīng)用容器中的目標應(yīng)用退出,另外,升級目標應(yīng)用需要更新目標應(yīng)用容器,只需要將更新文件上傳至文件系統(tǒng),然后由容器調(diào)度器601將應(yīng)用更新指令推送至各目標應(yīng)用容器,隨后,目標應(yīng)用容器中的自開發(fā)的基礎(chǔ)服務(wù)自動獲取應(yīng)用部署人員上傳的更新文件,并動態(tài)更新到目標應(yīng)用容器中指定的文件夾,從而避免現(xiàn)有技術(shù)中需要頻繁通過SSH或遠程桌面登錄應(yīng)用服務(wù)器所造成的Linux密碼或其他密碼泄露,一定程度上減少安全隱患。
[0239]需要說明的是,在本發(fā)明各實施例(包括圖6及圖7所示的各實施例)中所有的獲取模塊對應(yīng)的實體設(shè)備可以為接s收器,所有的發(fā)送模塊對應(yīng)的實體設(shè)備可以為發(fā)射器,所有的處理模塊對應(yīng)的實體設(shè)備可以為處理器。圖6以及圖7所示的各裝置均可以具有如圖9所示的結(jié)構(gòu),當其中一種裝置具有如圖9所示的結(jié)構(gòu)時,圖9中的處理器、發(fā)射器和接收器實現(xiàn)前述對應(yīng)該裝置的裝置實施例提供的處理模塊、發(fā)送模塊和獲取模塊相同或相似的功能,圖9中的存儲器存儲處理器執(zhí)行上述基于應(yīng)用容器的應(yīng)用管理方法時需要調(diào)用的程序代碼。
[0240]本發(fā)明還提供一種計算機存儲介質(zhì),該介質(zhì)存儲有程序,該程序執(zhí)行時包括上述基于應(yīng)用容器的應(yīng)用管理方法中的部分或者全部步驟。
[0241 ]本發(fā)明還提供一種計算機存儲介質(zhì),該介質(zhì)存儲有程序,該程序執(zhí)行時包括上述控制組件或云控制平臺或應(yīng)用管理系統(tǒng)執(zhí)行上述基于應(yīng)用容器的應(yīng)用管理方法中的部分或者全部步驟。
[0242]例如,本文中的控制組件的結(jié)構(gòu)中包括處理器、接收器和發(fā)射器,所述處理器被配置為支持控制組件執(zhí)行上述方法中相應(yīng)的功能。所述接收器和所述發(fā)射器用于支持控制組件與云控制平臺之間的通信,向云控制平臺發(fā)送上述方法中所涉及的信息或者指令。所述控制組件還可以包括存儲器,所述存儲器用于與處理器耦合,其保存運營商服務(wù)器必要的程序代碼和數(shù)據(jù)。云控制平臺類似,不再贅述。
[0243]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0244]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0245]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0246]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0247]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0248]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0249]以上對本發(fā)明所提供的技術(shù)方案進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【主權(quán)項】
1.一種基于應(yīng)用容器的應(yīng)用管理方法,其特征在于,所述方法應(yīng)用于應(yīng)用管理系統(tǒng)中的容器調(diào)度器,所述應(yīng)用管理系統(tǒng)包括云控制平臺、所述容器調(diào)度器和包括至少一臺宿主機的集群,所述方法包括: 所述容器調(diào)度器接收云控制平臺發(fā)送的應(yīng)用創(chuàng)建指令; 所述容器調(diào)度器將所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述容器調(diào)度器接收所述云控制平臺發(fā)送的容器資源管理指令; 所述容器調(diào)度器根據(jù)所述容器資源管理指令管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括: 所述容器調(diào)度器獲取所述目標應(yīng)用容器的運行狀態(tài); 在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,所述容器調(diào)度器根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述運行狀態(tài)包括軟負載和工作狀態(tài),所述根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源,包括以下之一: 在所述工作狀態(tài)為失效狀態(tài)時,所述容器調(diào)度器使用所述目標鏡像文件重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器; 在所述軟負載超過第一閾值時,所述容器調(diào)度器執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源; 在所述軟負載低于第二閾值時,所述容器調(diào)度器執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源; 在所述軟負載低于第三閾值時,將所述目標應(yīng)用容器關(guān)閉并刪除。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 在所述目標應(yīng)用容器失效或運行所述目標應(yīng)用容器的第一宿主機失效時,所述容器調(diào)度器啟用所述目標應(yīng)用容器的備份應(yīng)用容器,或者在第一宿主機所屬的集群內(nèi)中的任一宿主機上創(chuàng)建所述目標應(yīng)用容器的副本。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 所述容器調(diào)度器接收所述云控制平臺發(fā)送的應(yīng)用修改指令,所述應(yīng)用修改指令用于指示對所述目標鏡像文件的修改; 并根據(jù)所述應(yīng)用修改指令更新所述目標鏡像文件,并向所述集群內(nèi)部署的所述目標應(yīng)用容器推送修改信息,以使所述目標宿主機根據(jù)更新后的所述目標鏡像文件創(chuàng)建新的目標應(yīng)用容器。7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述方法還包括: 所述容器調(diào)度器接收所述云控制平臺發(fā)送的應(yīng)用更新指令,所述應(yīng)用更新指令用于指示對所述目標應(yīng)用容器的文件的更新; 所述容器調(diào)度器根據(jù)所述應(yīng)用更新指令向所述集群內(nèi)部署的所述目標應(yīng)用容器推送更新消息,以使所述目標應(yīng)用容器更獲取所述更新文件,更新目標應(yīng)用容器的應(yīng)用文件。8.—種基于應(yīng)用容器的應(yīng)用管理系統(tǒng),其特征在于,所述應(yīng)用管理系統(tǒng)包括云控制平臺、容器調(diào)度器和包括至少一臺宿主機的集群; 所述云控制平臺,用于獲取目標鏡像文件,并對所述獲取模塊獲取到的所述目標鏡像文件對應(yīng)的目標應(yīng)用進行應(yīng)用服務(wù)配置,以及發(fā)送應(yīng)用創(chuàng)建指令至所述容器調(diào)度器; 所述容器調(diào)度器,用于將所述云控制平臺發(fā)送的所述應(yīng)用創(chuàng)建指令推送至所述集群內(nèi)的目標宿主機,以使所述目標宿主機根據(jù)所述應(yīng)用創(chuàng)建指令獲取目標鏡像文件,使用所述目標鏡像文件為所述目標鏡像文件對應(yīng)的目標應(yīng)用創(chuàng)建目標應(yīng)用容器。9.根據(jù)權(quán)利要求8所述的應(yīng)用管理系統(tǒng),其特征在于,所述云控制平臺具體用于: 在使用所述目標鏡像文件在所述集群內(nèi)部署所述目標應(yīng)用容器時,根據(jù)所述目標鏡像文件中的集群標識選擇所述集群標識指示的目標集群類型。10.根據(jù)權(quán)利要求9所述的應(yīng)用管理系統(tǒng),其特征在于,所述云控制平臺還用于: 將容器資源管理指令發(fā)送至所述容器調(diào)度器,以使所述容器調(diào)度器根據(jù)所述容器資源管理指令的指示內(nèi)容管理所述目標應(yīng)用容器的容器資源; 所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。11.根據(jù)權(quán)利要求10所述的應(yīng)用管理系統(tǒng),其特征在于,所述云控制平臺在將容器資源管理指令發(fā)送至所述容器調(diào)度器之前,還用于: 獲取所述目標應(yīng)用容器的運行狀態(tài); 在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,根據(jù)所述運行狀態(tài)管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源; 所述容器資源管理指令至少包含以下項之一:重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器、關(guān)閉并刪除所述目標應(yīng)用容器、分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。12.根據(jù)權(quán)利要求11所述的應(yīng)用管理系統(tǒng),其特征在于,所述運行狀態(tài)包括軟負載和工作狀態(tài),所述云控制平臺具體執(zhí)行以下之一: 在所述軟負載超過第一閾值時,執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源; 在所述軟負載低于第二閾值時,執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源。13.根據(jù)權(quán)利要求9至12任一所述的應(yīng)用管理系統(tǒng),所述容器調(diào)度器還用于: 獲取所述目標應(yīng)用容器的運行狀態(tài); 在確定所述運行狀態(tài)滿足預(yù)設(shè)管理條件時,根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源,所述容器資源至少包括如下項之一:分配給所述目標應(yīng)用的應(yīng)用容器數(shù)目、所述目標應(yīng)用容器的數(shù)目,或所述目標應(yīng)用容器運行時所需的硬件資源。14.根據(jù)權(quán)利要求13所述的應(yīng)用管理系統(tǒng),所述運行狀態(tài)包括軟負載和工作狀態(tài),所述根據(jù)所述運行狀態(tài)和預(yù)設(shè)配置規(guī)則管理所述目標應(yīng)用容器的容器資源,包括以下之一: 在所述工作狀態(tài)為失效狀態(tài)時,所述容器調(diào)度器使用所述目標鏡像文件重新創(chuàng)建包含所述目標應(yīng)用的第一應(yīng)用容器; 在所述軟負載超過第一閾值時,所述容器調(diào)度器執(zhí)行以下中的至少一項:增加分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)目、將所述目標應(yīng)用容器中的目標應(yīng)用迀移至第二應(yīng)用容器,或增加所述目標應(yīng)用運行所需的硬件資源; 在所述軟負載低于第二閾值時,所述容器調(diào)度器執(zhí)行以下中的至少一項:減少分配給所述目標應(yīng)用的應(yīng)用容器的數(shù)量、減少所述目標應(yīng)用容器的數(shù)目,或減少所述目標應(yīng)用運行所需的硬件資源; 在所述軟負載低于第三閾值時,將所述目標應(yīng)用容器關(guān)閉并刪除。
【文檔編號】G06F9/455GK106020930SQ201610318896
【公開日】2016年10月12日
【申請日】2016年5月13日
【發(fā)明人】包瓊林, 劉祥濤, 姚子建, 趙彥暉, 孫淏添
【申請人】深圳市中潤四方信息技術(shù)有限公司