通用的作業系統整合了大量軟體,預設開啟了許多服務,其中大部分軟體和服務並不是容器環境所必需的。因此基於通用作業系統部署容器業務,不僅會增大系統開銷,還會導致環境的不穩定性以及安全攻擊面的擴大。相較於傳統的通用作業系統,容器作業系統針對容器應用程式進行了深度裁剪和最佳化,提供了輕量級的容器最小運行環境。本文介紹中國移動在容器化系統所做的一些嘗試以及所取得的一些成果。
中國移動於2017年開展容器客製化作業系統的研發,基於大雲作業系統BC-LINUX進行深度客製化,並於當年5月份正式發表1.0版本,命名為「大雲容器化作業系統」。 BC-LINUX是中國行動基於CentOS開源社區,借助開源技術的開放優勢,透過客製化手段自主研發的企業級通用Linux作業系統,目前已經在中國行動內部部署規模近20000套。大雲容器化作業系統在通用系統的基礎上,透過核心優化和系統裁剪等技術手段,提供了精簡的容器運行環境,提升了系統的運行速度,實現了系統的最小化以及性能的最優化,如圖所示。
在系統易用性和精簡性之間做出平衡,大雲端容器化作業系統裁剪了無關的軟體包和服務,同時保留了系統基礎功能。在提供容器最小運作環境的基礎上,大雲端容器化作業系統保證了作業系統常見服務和功能的不缺失,減少了系統開銷,同時降低了系統運維難度;相較於通用系統,大雲容器化系統軟體包數量由3723個裁減為376個,服務數量由254個減為143個,安裝鏡像大小由4.31G減為770M,如圖所示。
#大雲端容器化作業系統整合了Docker元件,並提供11款主流開源中間件容器映像,實現了開箱即用。針對這11款開源元件提供版本更新、安全預警、漏洞修復和技術支援服務,並且定期掃描和更新修復容器鏡像中存在的安全漏洞,確保容器鏡像不存在安全問題,如圖所示。
針對容器使用場景,大雲容器化作業系統提供了最佳化的客製化核心。客製化核心基於核心社群最新長期支援版本4.9進行客製化開發,針對容器業務進行核心裁剪,增加了眾多針對XFS、Btrfs和Overlayfs的功能增強和效能最佳化,大雲容器化作業系統支援overlay2儲存驅動,相較於overlay來說,大雲容器化作業系統的overlay2在inode使用率上更有效率。此外,客製化核心中加入中國移動針對容器的多個補丁,實現了容器與宿主機系統部分網路配置參數的分離,滿足容器業務系統在網路高並發場景的調優需求,如圖所示。
大雲端容器化系統透過裁剪不必要的服務,減少了系統的安全攻擊面。同時系統內建中國移動自主研發的安全加固軟體,可全面掃描系統中存在的安全漏洞、安全配置問題,給予安全評估結果和修復建議,並可一鍵加固系統,開啟系統安全模式。
客製化內核基於4.9內核,高版本內核修復了眾多安全漏洞,如內核提權漏洞Dirty Cow(CVE-2016-5195)。存在這個漏洞的系統,在容器中可繞過系統的安全策略,取得主機系統的root權限,進而可以查看、修改甚至刪除宿主機中任何文件,從而對宿主機和其他容器造成安全隱患。
針對傳統升級手段中存在的動態函式庫和核心升級導致業務中斷的問題,大雲端容器化作業系統推出了熱修補技術。熱修補技術是一種不影響業務的線上缺陷和漏洞修復技術,可在不中斷服務和不重啟系統的情況下,實現動態庫和核心的線上升級,並且不會影響系統效能,顯著提高了業務系統的穩定性和可用性。
具體而言,動態庫熱升級解決了業務程序動態庫升級的問題,適用於所有進程的動態庫升級,操作簡單方便,可靠性高,並且支援多次重入和反向操作,如圖所示。
#核心熱升級技術,基於核心的ftrace機制動態添加探測點,實現函數層級的執行流程線上替換。此項技術使得核心升級無需重啟系統,最大程度減少了系統宕機時間。對於重要的安全漏洞,大雲端容器化作業系統可以快速回應。同時,系統支援回滾操作,可快速恢復核心至升級前狀態。
針對容器化作業系統,大雲端可提供持續的系統更新和技術支援服務,追蹤作業系統尤其Docker元件的安全漏洞,發布安全預警和漏洞更新修補程式包,如圖所示。
#大雲容器化作業系統自發布以來,已經在中國移動內部進行商用推廣,目前部署規模已經近兩百節點,使用Kubernetes容器管理平台,穩定運行6個月,支撐5000個容器,產品的安全性、穩定性和可靠性在專案中得到了充分驗證。
以上是中國移動容器客製化Linux作業系統的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!