容器技術與資源隔離

2022-04-22 13:51:05 字數 833 閱讀 1100

簡單的講就是,linux namespace 允許使用者在獨立程序之間隔離 cpu 等資源。程序的訪問許可權及可見性僅限於其所在的 namespaces 。因此,使用者無需擔心在乙個 namespace 內執行的程序與在另乙個 namespace 內執行的程序衝突。甚至可以同一臺機器上的不同容器中執行具有相同 pid 的程序。同樣的,兩個不同容器中的應用程式可以使用相同的埠。

與虛擬機器相比,容器更輕量且速度更快,因為它利用了 linux 底層作業系統在隔離的環境中執行。虛擬機器的 hypervisor 建立了乙個非常牢固的邊界,以防止應用程式突破它,而容器的邊界不那麼強大。另乙個區別是,由於 namespace 和 cgroups 功能僅在 linux 上可用,因此容器無法在其他作業系統上執行;docker 實際上使用了乙個技巧,並在非 linux 作業系統上安裝 linux 虛擬機器,然後在虛擬機器內執行容器。

雖然大多數it行業正在採用基於容器的基礎架構(雲原生解決方案),但必須了解該技術的侷限性。 傳統容器(如docker,linux containers(lxc)和rocket(rkt))並不是真正的沙箱,因為它們共享主機作業系統核心。 它們具有資源效率,但攻擊面和破壞的潛在影響仍然很大,特別是在多租戶雲環境中,共同定位屬於不同客戶的容器。

當主機作業系統為每個容器建立虛擬化使用者空間時,問題的根源是容器之間的弱分離。一直致力於設計真正的沙盒容器的研究和開發。 大多數解決方案重新構建容器之間的邊界以加強隔離。譬如來自ibm,google,amazon和openstack的四個獨特專案,這些專案使用不同的技術來實現相同的目標,為容器建立更強的隔離。

Hadoop YARN資源隔離技術

yarn對記憶體資源和cpu資源採用了不同的資源隔離方案。對於記憶體資源,它是一種限制性資源,它的量的大小直接決定應用程式的死活,因為應用程式到達記憶體限制,會發生oom,就會被殺死。cpu資源一般用cgroups進行資源控制,cgroups控制資源測試可以參見這篇博文cgroups控制cpu,記憶...

容器基礎(二) 隔離與限制

隔離 namespace 在linux容器中用來實現 隔離 的技術手段,它實際上修改了應用程序看待整個計算機 檢視 即它的 視線 被作業系統做了限制,只能 看到 某些指定的內容。但對於宿主機來說,這些被 隔離 了的程序跟其他程序並沒有太大區別,都由宿主機作業系統統一管理,只不過這些被隔離的程序擁有額...

yarn資源隔離

yarn框架原理見 大資料處理離不開hadoop集群的部署和管理,對於本來硬體資源就不多的創業團隊來說,做好資源的共享和隔離是很有必要的,畢竟不像bat那麼豪,那麼怎麼樣能把有限的節點同時分享給多組使用者使用而且互不影響呢,我們來研究一下yarn多佇列做資源隔離 使用過第一代hadoop的同學應該比...