帶你了解容器技術架構


近年來,隨着計算機技術的不斷升級,容器技術被廣泛接受和使用。與此同時,容器以及容器運行環境的安全成為了亟待研究和解決的問題。青藤雲安全認為,只有對容器有充分的認識,才能針對存在的問題和現象,進行針對性解決。

本文簡述,容器安全的技術架構,加深對容器理解。

下圖展示了容器技術架構的五個層:

1. 開發人員系統(生成鏡像並將其發送給測試和驗證)

2. 測試和驗證系統(驗證並核實鏡像的內容、鏡像簽名,並將鏡像發送到鏡像倉庫)

3. 鏡像倉庫(存儲鏡像並將鏡像按需分發給編排工具)

4. 編排工具(將鏡像轉換為容器,並將容器部署到主機)

5. 主機(根據編排工具的指示運行和終止鏡像)

             圖:容器技術架構的層、組件和生命周期

盡管在整個過程中涉及許多管理者系統角色,但該圖僅描述了內部鏡像倉庫和編排工具的管理者系統。

灰色的系統(開發人員系統、測試和驗證系統以及管理員系統)不在容器技術架構范圍之內,但確實與容器技術架構有着重要的交互。在大多數使用容器的組織機構中,開發和測試環境也利用容器,這種一致性是使用容器的主要優點之一。

理解容器技術架構的另一種方法是考慮容器生命周期的階段,如圖底部所示。下文將會對這三個階段進行更簡單的介紹。

由於組織機構通常一次性構建和部署很多不同的應用,所以,在一個組織機構內,這些生命周期的階段通常同時進行,而不應被視為成熟度的漸進式階段。相反,應將其視為連續運行引擎中的循環。按照這個比喻,每個應用都是引擎中的一個汽缸,不同的應用可能同時處於這個生命周期的不同階段。

1. 鏡像的創建、測試和驗證

在容器生命周期的第一階段,創建應用的組件,並將其放置在一個鏡像中(或者可能放置在多個鏡像中)。鏡像創建過程由將應用打包、轉交給測試的開發人員管理。鏡像創建通常使用能夠自動化管理工具(例如Jenkins[8]和TeamCity[9])來協助所謂的“持續集成”過程。

大多數容器技術采用聲明式方法來介紹應用的組件和要求。例如,用於Web服務器的鏡像不但包括Web服務器的可執行文件,而且還包括計算機可解析的數據,用來描述Web服務器的運行方法,如偵聽端口或服務器使用的配置參數。

鏡像創建后,組織機構通常進行測試和驗證工作。例如,自動化測試工具和人員會使用所創建的鏡像來驗證最終應用的功能,安全團隊會對這些鏡像進行認證。

為應用創建、測試和認證完全相同的復制件,保持其一致性,這是容器運行和安全性的主要效益之一。

2. 鏡像存儲和檢索

鏡像通常存儲在中央位置,以便各主機對其進行控制、共享、查找和重用。鏡像倉庫是一種服務,方便開發人員在創建鏡像后,將鏡像進行存儲、簽名和分類,實現鏡像標識和版本控制,有助於發現和重用,以及查找和下載其它人創建的鏡像。鏡像倉庫可以自托管,也可以作為一種服務來使用。

鏡像倉庫提供API,確保能夠實現常見鏡像相關任務的自動化。

一旦存儲到鏡像倉庫中,就可以輕松地獲取鏡像,然后由DevOps人員在其運行容器的任何環境中運行鏡像。

3. 容器部署與管理

編排工具讓DevOps人員或自動化工具,能夠從鏡像倉庫中獲取鏡像,將這些鏡像部署到容器中,並管理正在運行的容器。該部署過程會形成應用的一個可用版本,能夠運行並准備響應請求。將鏡像部署到容器中時,鏡像本身不會更改,而是將鏡像的一個副本放到容器中,並將一組應用靜止代碼轉換為運行實例。 編排工具提供的抽象性讓DevOps人員可以便捷地設定某個鏡像運行所需的容器數量、以及每個容器需要分配的資源,如內存、處理能力和磁盤。

編排工具還負責監控跨主機的容器資源消耗、作業執行和機器健康狀況。根據其配置,如果最初運行容器的主機出現故障,編排工具可能會在新主機上自動重啟容器。

當容器中的應用需要更新時,不會去更改現有的容器,而是將其銷毀,並從更新的鏡像中創建新的容器。這是使用容器關鍵一項不同之處:初始部署的基礎軟件不應隨時間而改變,而是通過一次性替換整個鏡像來完成更新。

這意味着,在創建新的鏡像版本時,開發人員通常會關注所有的漏洞管理,包括補丁和配置設置。對於容器,通常讓開發人員而不是運營團隊負責應用和鏡像的安全性。

容器管理包括安全管理和監控。但為非容器環境設計的安全控制通常不適用於容器。

理解容器技術架構的另一種方法是考慮容器生命周期的階段。本文從鏡像的創建、測試和驗證,鏡像存儲和檢索,容器部署與管理三個階段對容器技術結構進行了簡單的介紹。青藤雲安全也希望通過本文,讓大家對容器技術有更深刻的認識。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM