Rust 編寫專為容器而設計的操作系統 Bottlerocket ,已 8.3k+ star!
大家好,我是漁夫。
今天分享主題是 Bottlerocket 操作系統。它是一個免費的開源基于 Linux 的操作系統,專為托管容器(如Kubernetes)而設計的操作系統。
工作原理:

最少
Bottlerocket 第一個目標“最少”。托管容器對操作系統的要求不高,托管容器就是 Bottlerocket 的全部目標。在通用 Linux 發行版中默認安裝的許多軟件包、工具、解釋器和依賴項對于僅托管容器來說根本不是必需的。通過排除這些無關緊要的軟件,運營和安全開銷就會減少。

Bottlerocket 將不同編排器、平臺和架構的復雜性和要求管理到每個兼容組合(稱為變體)的特定版本中。Bottlerocket 本身沒有 shell,也不需要 shell,但你依然可以通過特權“主機”容器(具有 shell)與系統交互,從主機容器中,探索底層操作系統,甚至可以通過 API 更改正在運行的系統的設置。
安全更新
Bottlerocket 第二個目標“安全更新”。它設計是可更新的,但它沒有包管理器,而且也不需要包管理器。它的更新通過下載到特定分區的映像傳遞,比如你準備好更新時,讓編排器耗盡節點,然后告訴 Bottlerocket 應用更新并在準備就緒時重新啟動,Bottlerocket 將自動交換分區并使用新版本啟動,這樣變得非常易用,靈活了。

如果在更新過程中出現問題,Bottlerocket 更新系統可讓你恢復到之前正常運行的版本,并且設置保持不變。支持手動管理,也可以通過 Bottlerocket 特定于編排器的工具進行管理:Bottlerocket Update Operator(brupop)和ECS 更新程序。
安全為重點
最后是一個目標是“安全為重點”。最小化和可更新是 Bottlerocket 注重安全性的重要方面。使用鏡像提供的變體意味著不需要可能改變系統并引入安全問題的軟件包注冊表或管理器。
Bottlerocket 的獨特功能是用 Rust和少量 Golang 編寫的。兩者都是編譯語言,內置了針對內存 安全問題的保護。此外,由于 Bottlerocket 是通過鏡像交付的,所有代碼都經過預編譯,因此不需要 shell 和解釋器,從而關閉了執行未經驗證的代碼的不良途徑。

Bottlerocket 的根文件系統是不可變的。dm-verity提供對根文件系統的透明完整性檢查,如果檢測到對底層塊設備的任何更改,內核將重新啟動。此外,Bottlerocket 為可變文件系統提供了始終啟用、強制執行、限制性的SELinux策略,有助于防止容器執行危險操作,即使以 root 身份運行也是如此。
最新消息:已支持 NVIDIA Fabric Manager
在 2024 年 5 月 17 日,AWS 他們宣布專為容器構建的 Linux 操作系統 Bottlerocket 現已支持 NVIDIA Fabric Manager,讓用戶能夠利用多 GPU 配置的強大功能來處理 AI 和機器學習工作負載。Bottlerocket 用戶現在可以無縫地利用其連接的 GPU 作為高性能計算結構,從而實現每個高性能處理器實例中的所有 GPU 之間高效且低延遲的通信。
大家都知道,現在深度學習模型日益復雜,想在合理時間范圍內訓練它們所需的計算資源也成了呈指數級增長。AWS 為了應對這種計算需求的增長,運行 AI 和機器學習工作負載的客戶已轉向多 GPU 實現,利用 NVIDIA 的 NVSwitch 和 NVLink 技術在連接的 GPU 之間創建統一的內存結構。
Bottlerocket NVIDIA 變體中的 Fabric Manager 支持允許用戶配置此結構,使所有 GPU 都可以用作單個高性能池,而不是單獨的單元。這使 Bottlerocket 用戶能夠在高性能處理器實例上運行多 GPU 設置,從而顯著加快復雜神經網絡的訓練速度。
這樣會給用戶帶來這些好處:
- 靈活性,多 GPU 支持
- 統一內存結構
- 加速復雜神經網絡訓練
- 低延遲通信,高性能
- 開箱即用的 CIS 強化
- 降低管理開銷和運營成本
更多信息參考官網,入門安裝等操作都有相應文檔。
























