1. 程式人生 > 資訊 >NestOS 釋出:基於華為尤拉開源系統的雲底座作業系統

NestOS 釋出:基於華為尤拉開源系統的雲底座作業系統

11 月 3 日訊息,據 openEuler 釋出,NestOS 是一款在尤拉開源社群 Cloud Native SIG 孵化的雲底座作業系統,專注於提供最佳的容器主機,大規模下安全的執行容器化工作負載。

Nest 即“巢穴”,作為可以包容 podman(鼴鼠)、iSulad(螞蟻)、Docker(集裝箱)的“巢穴”,NestOS 即化身為可以搭載 iSulad、docker、podman 等基礎平臺的作業系統。

NestOS 將配置工具 ignition 與 rpm-ostree、OCI 支援、SElinux 強化等技術整合在一起,採用基於雙系統分割槽、容器技術和叢集架構的設計思路,可以適應各種不同的基礎設施環境,並與 OKD 緊密整合,針對執行 Kubernetes 進行了優化,使系統具備十分便捷的叢集組建能力。

NestOS 架構圖

NestOS 適用場景

叢集規模

NestOS 支援大規模叢集部署,分散式應用的資料同步和傳輸量會隨著節點的數量增加而增加,NestOS 可以很好的發揮自動升級,叢集管理的特性。同時判斷叢集是否適用 NestOS 的一個關鍵依據就是服務是否能夠容器化。

面向無狀態服務架構

要求系統中的所有服務對單次請求的處理不依賴其他請求。即處理一次請求所需的全部資訊,要麼都包含在這個請求裡,要麼可以從外部獲取,伺服器本身不儲存任何資訊。

微服務架構

微服務架構是面向無狀態服務架構的一種發展形式,提倡更加鬆耦合的 SOA 方式。這種部署結構與 NestOS 輕量,快速,分散式資料等特性十分吻合,善用 NestOS 的叢集化運維能力能夠節省不少遷入微服務架構的運維成本。

NestOS 技術特性

容器技術

搭載 iSulad、docker、podman 等主流容器基礎平臺,克服了由於使用者修改系統內容、使用者服務對系統元件依賴,以及系統重啟時服務中斷等種種導致升級過程不可靠的因素,最終以一種輕量級、定製化的作業系統呈現出來。

Ignition

Ignition 是一個與分發無關的配置實用程式,用於安裝系統和讀取配置檔案(JSON 格式)來初始化 NestOS。可配置的元件包括儲存和檔案系統,systemd 單元和使用者等。

NestOS-installer

NestOS-installer 是一個幫助安裝 NestOS 的程式,它可以安裝作業系統到目標磁碟,可使用 ignition 和首次引導核心引數對其進行自定義。同時可以列出可供下載的 NestOS 映象並且下載驗證各種雲平臺、虛擬化或者裸機平臺的作業系統映象。

Rpm-ostree

Rpm-ostree 可以看成是 rpm 和 ostree 的合體。一方面提供了基於 rpm 的軟體包安裝管理方式,另一方面提供了基於 ostree 的作業系統更新升級。每次對系統的更新都像 rpm-ostree 在提交一次“Transaction”,從而確保更新全部成功或全部失敗,並允許在更新系統後回滾到更新前的狀態。

Zincati

Zincati 是 NestOS 自動更新的代理,它作為 Cincinnati 和 rpm-ostree 的客戶端,負責自動更新/重啟機器。它支援自動更新代理、使用者自定義配置檔案和多種更新策略,具有可配置優先順序的日誌記錄。

雙系統分割槽

NestOS 兩個分割槽分別被設定成主動模式和被動模式,並在系統執行期間各司其職。主動分割槽負責系統執行,被動分割槽負責系統升級。一旦新版本的作業系統被髮布,一個完整的系統檔案將被下載至被動分割槽,並在系統下一次重啟時從新版本分割槽啟動,原來的被動分割槽將切換為主動分割槽,而之前的主動分割槽則被切換為被動分割槽,兩個分割槽扮演的角色將相互對調。同時在系統執行期間系統分割槽被設定成只讀狀態,確保了 NestOS 的安全性。

NestOS 專案地址:https://gitee.com/openeuler/NestOS