官术网_书友最值得收藏!

4.2.3 應用容器化方法

企業應用中JavaEE類應用的打包形式通常是War包、Jar包,Spring Boot類應用的打包形式通常是Fat Jar。應用容器化在本質上是將打包的應用放到包含應用運行環境的容器鏡像中運行。在應用系統容器化的過程中會涉及三類鏡像:

·基礎鏡像:指支持應用運行的基礎系統環境的鏡像,包括已經安裝了必要的組件和工具以及包含了與運行相關的腳本和參數等。例如OpenJDK、Tomcat、Nodejs、Python等鏡像。

·應用鏡像:指在基礎鏡像之上對應用進行構建、容器化封裝,封裝之后的鏡像是包含應用的,直接或者傳入配置就可以啟動運行。

·其他技術組件鏡像:應用部署、運行所依賴的應用服務器、數據庫、消息中間件等技術組件。例如AMQ、Redis、MySQL、Jenkins等。

對于第一類和第三類的鏡像,建議最好使用可信鏡像源倉庫,如紅帽官方鏡像(https://access.redhat.com/containers/)或者其他官方鏡像。當然,完全可以自行構建這些鏡像。在OpenShift中應用容器化主要指對第二類應用鏡像的制作,主要有三種方法:本地構建、CI構建、S2I構建。

·本地構建:工程師編寫Dockerfile,并在一臺或多臺主機上手工執行docker/podman build命令構建應用鏡像。這種方式非常簡單易行,適合開發人員本地測試以及開發測試環境構建鏡像調試。

·CI構建:Jenkins集群在CI流程中調用Maven執行構建,Maven通過插件按指定的Dockerfile生成應用的容器鏡像。這種方法的不足之處是資源利用率較低,適用的場景是傳統持續集成。

·OpenShift Source-to-Image(S2I)構建:OpenShift在隔離的容器環境中進行應用的構建編譯并生成應用的容器鏡像。S2I適用于容器場景下的持續集成,也很方便,但前提是我們需要有現成的S2I Builder鏡像。紅帽官方會提供很多S2I Builder鏡像。如果客戶需要的Builder鏡像紅帽官網沒有提供,則需要自行制作。

由于CI構建主要由Jenkins或Tekton完成,我們將會在后續DevOps章節中介紹這部分內容。

本章接下來的內容將重點介紹如何使用本地構建和OpenShift S2I實現應用容器化。在正式介紹應用容器化之前,先介紹制作容器鏡像的最佳實踐,在進行應用容器化時也將遵循這些準則。

主站蜘蛛池模板: 黄浦区| 梅州市| 喀喇沁旗| 道孚县| 万宁市| 苍梧县| 沅江市| 海宁市| 昌江| 洛川县| 商城县| 巴青县| 汤阴县| 定兴县| 普格县| 祁阳县| 建阳市| 嘉禾县| 鲁甸县| 彭泽县| 阿合奇县| 桃江县| 电白县| 扶余县| 楚雄市| 彩票| 合水县| 阜平县| 平山县| 凤阳县| 廉江市| 谢通门县| 镶黄旗| 武夷山市| 广汉市| 施甸县| 莎车县| 托里县| 昌都县| 巴中市| 招远市|