Rust 編寫專為容器而設(shè)計(jì)的操作系統(tǒng) Bottlerocket ,已 8.3k+ star!
大家好,我是漁夫。
今天分享主題是 Bottlerocket 操作系統(tǒng)。它是一個(gè)免費(fèi)的開源基于 Linux 的操作系統(tǒng),專為托管容器(如Kubernetes)而設(shè)計(jì)的操作系統(tǒng)。
工作原理:
最少
Bottlerocket 第一個(gè)目標(biāo)“最少”。托管容器對(duì)操作系統(tǒng)的要求不高,托管容器就是 Bottlerocket 的全部目標(biāo)。在通用 Linux 發(fā)行版中默認(rèn)安裝的許多軟件包、工具、解釋器和依賴項(xiàng)對(duì)于僅托管容器來說根本不是必需的。通過排除這些無關(guān)緊要的軟件,運(yùn)營和安全開銷就會(huì)減少。
Bottlerocket 將不同編排器、平臺(tái)和架構(gòu)的復(fù)雜性和要求管理到每個(gè)兼容組合(稱為變體)的特定版本中。Bottlerocket 本身沒有 shell,也不需要 shell,但你依然可以通過特權(quán)“主機(jī)”容器(具有 shell)與系統(tǒng)交互,從主機(jī)容器中,探索底層操作系統(tǒng),甚至可以通過 API 更改正在運(yùn)行的系統(tǒng)的設(shè)置。
安全更新
Bottlerocket 第二個(gè)目標(biāo)“安全更新”。它設(shè)計(jì)是可更新的,但它沒有包管理器,而且也不需要包管理器。它的更新通過下載到特定分區(qū)的映像傳遞,比如你準(zhǔn)備好更新時(shí),讓編排器耗盡節(jié)點(diǎn),然后告訴 Bottlerocket 應(yīng)用更新并在準(zhǔn)備就緒時(shí)重新啟動(dòng),Bottlerocket 將自動(dòng)交換分區(qū)并使用新版本啟動(dòng),這樣變得非常易用,靈活了。
如果在更新過程中出現(xiàn)問題,Bottlerocket 更新系統(tǒng)可讓你恢復(fù)到之前正常運(yùn)行的版本,并且設(shè)置保持不變。支持手動(dòng)管理,也可以通過 Bottlerocket 特定于編排器的工具進(jìn)行管理:Bottlerocket Update Operator(brupop)和ECS 更新程序。
安全為重點(diǎn)
最后是一個(gè)目標(biāo)是“安全為重點(diǎn)”。最小化和可更新是 Bottlerocket 注重安全性的重要方面。使用鏡像提供的變體意味著不需要可能改變系統(tǒng)并引入安全問題的軟件包注冊(cè)表或管理器。
Bottlerocket 的獨(dú)特功能是用 Rust和少量 Golang 編寫的。兩者都是編譯語言,內(nèi)置了針對(duì)內(nèi)存 安全問題的保護(hù)。此外,由于 Bottlerocket 是通過鏡像交付的,所有代碼都經(jīng)過預(yù)編譯,因此不需要 shell 和解釋器,從而關(guān)閉了執(zhí)行未經(jīng)驗(yàn)證的代碼的不良途徑。
Bottlerocket 的根文件系統(tǒng)是不可變的。dm-verity提供對(duì)根文件系統(tǒng)的透明完整性檢查,如果檢測(cè)到對(duì)底層塊設(shè)備的任何更改,內(nèi)核將重新啟動(dòng)。此外,Bottlerocket 為可變文件系統(tǒng)提供了始終啟用、強(qiáng)制執(zhí)行、限制性的SELinux策略,有助于防止容器執(zhí)行危險(xiǎn)操作,即使以 root 身份運(yùn)行也是如此。
最新消息:已支持 NVIDIA Fabric Manager
在 2024 年 5 月 17 日,AWS 他們宣布專為容器構(gòu)建的 Linux 操作系統(tǒng) Bottlerocket 現(xiàn)已支持 NVIDIA Fabric Manager,讓用戶能夠利用多 GPU 配置的強(qiáng)大功能來處理 AI 和機(jī)器學(xué)習(xí)工作負(fù)載。Bottlerocket 用戶現(xiàn)在可以無縫地利用其連接的 GPU 作為高性能計(jì)算結(jié)構(gòu),從而實(shí)現(xiàn)每個(gè)高性能處理器實(shí)例中的所有 GPU 之間高效且低延遲的通信。
大家都知道,現(xiàn)在深度學(xué)習(xí)模型日益復(fù)雜,想在合理時(shí)間范圍內(nèi)訓(xùn)練它們所需的計(jì)算資源也成了呈指數(shù)級(jí)增長。AWS 為了應(yīng)對(duì)這種計(jì)算需求的增長,運(yùn)行 AI 和機(jī)器學(xué)習(xí)工作負(fù)載的客戶已轉(zhuǎn)向多 GPU 實(shí)現(xiàn),利用 NVIDIA 的 NVSwitch 和 NVLink 技術(shù)在連接的 GPU 之間創(chuàng)建統(tǒng)一的內(nèi)存結(jié)構(gòu)。
Bottlerocket NVIDIA 變體中的 Fabric Manager 支持允許用戶配置此結(jié)構(gòu),使所有 GPU 都可以用作單個(gè)高性能池,而不是單獨(dú)的單元。這使 Bottlerocket 用戶能夠在高性能處理器實(shí)例上運(yùn)行多 GPU 設(shè)置,從而顯著加快復(fù)雜神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度。
這樣會(huì)給用戶帶來這些好處:
- 靈活性,多 GPU 支持
- 統(tǒng)一內(nèi)存結(jié)構(gòu)
- 加速復(fù)雜神經(jīng)網(wǎng)絡(luò)訓(xùn)練
- 低延遲通信,高性能
- 開箱即用的 CIS 強(qiáng)化
- 降低管理開銷和運(yùn)營成本
更多信息參考官網(wǎng),入門安裝等操作都有相應(yīng)文檔。