国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

KubeOS:面向云原生場景的容器操作系統

openEuler ? 來源:DIVE全球基礎軟件創新大會 ? 作者:李元戎 ? 2022-11-01 17:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在云原生場景下,容器和 Kubernetes 在開發、測試、生產中的應用越來越廣泛,傳統的操作系統往往會帶來安全性、運維開銷、OS 版本等方面的問題,容器操作系統即容器 OS 是針對云原生場景設計的一種輕量化操作系統。本次分享首先介紹容器 OS 的理念,然后分享在 openEuler 社區孵化的容器操作系統 KubeOS 的設計思路和解決的問題,最后深入介紹 KubeOS 的架構、功能和使用。

本文整理自華為操作系統開發工程師、KubeOS 開源項目負責人李元戎在DIVE全球基礎軟件創新大會2022的演講分享,主題為“KubeOS : 面向云原生場景的容器操作系統”。

分享主要分為三部分:

1. 云原?場景下 OS 管理問題與解決?法;

2.KubeOS:?向云原?場景的容器操作系統;

3. 未來的工作。

云原?場景下 OS 管理問題與解決?法

現在說起容器,大家想到的基本上都是 Docker。

Docker 在 2013 年開源以后就立即火爆了起來,可以說 Docker 將容器技術推向了巔峰。那么 Docker 技術到底解決了一個什么樣的問題呢?Docker 自己宣傳的口號是:一次構建到處運行。

它一舉解決了開發、測試、生產中環境不一致這困擾業界多年的問題。從更高的維度來說,Docker 其實解決的是軟件到底應該通過什么樣的方式進行交付。當軟件的交付方式變得清晰明確以后,那么我們做托管軟件的平臺也就變得非常簡單明了了。

Docker 提供了三個概念:容器、鏡像和鏡像倉庫,通過 Docker Client 可以以 Restful API 的方式去管理容器的全生命周期。那么 Docker 最核心的創新是什么呢?其實就是 Docker 鏡像這個概念,通過 Docker 容器鏡像,可以將一個應用軟件運行依賴的全部環境都打包在一起,讓這個程序通過 Docker 容器運行的時候可以與操作系統是無關的。這樣也就基本上實現了它所宣傳的 run anywhere。

84f8dffe-572b-11ed-a3b6-dac502259ad0.png

Docker 鏡像為了可以共享資源,在制作過程中引入了層的概念。也就是說如果想做一個新的容器鏡像,不需要從頭開始做,只需要找到一個有 Root FS 的 Base Image ,以后需要什么就可以一層一層的往上疊加。Docker 容器其實也是基于分層概念,容器運行的時候它就會在鏡像上面增加一個可寫層,也就是我們常說的容器層,然后容器層下面是鏡像層,鏡像層都是只讀的。容器鏡像的一個核心的特性就是 copy on right,可以把對于容器的修改全限制在容器層下,不會影響其他共享這個鏡像的容器。Docker 在單機上的打包、發送、運行的性能是很優秀的,但只在單機上運行并不能發揮它最大的價值。業界更希望基于 Docker 技術可以形成云化的集群系統,然后進行業務容器的調度和編排。那我們就要說接下來的 Kubernetes 了。

Kubernetes 現在可以說已經真正成為了全球的主流技術。2017 年的時候,Kubernetes、Swarm 和 Mesos 三家容器編排系統的大戰就基本上結束了,Kubernetes 成為了最后的贏家,成為了容器編排系統的事實標準。Kubernetes 的思想是將一切都視為資源,比如說 node、POD、deployment、service,這些日常的、內置的資源對于一般的系統部署升級和管理是夠用的。但是在一些特定的場景下,當內置的資源不滿足需求的時候,Kubernetes 又提供了一種擴展的機制,你可以把需要的新資源抽象成 Kubernetes 的 API 對象,然后注冊到集群中,和其他資源一起來使用,即 CRD 機制。說起 CRD 就不得不提 operator。其實從 Kubernetes 的設計和定義來看,它其實似乎更適用于無狀態的應用。

但是 CoreOS 公司它基于 Kubernetes 的聲明式 API 機制提出的 Kubernetes operator 可以有效解決有狀態的應用或者是分布式應用的狀態描述,在 operator 當中的 API 對象不再是描述單狀態應用的狀態,而是去描述分布式應用集群的狀態。也就是說它把一個完整的分布式應用的集群都算作 Kubernetes 它需要最終去維護的這種最終的狀態。當你定義的分布式應用集群的狀態發生改變以后,operator 會根據實現代碼去執行相應的邏輯功能,然后達到向我們預期的狀態不停演進的功能。

可以說容器和 Kubernetes 促進了云原生生態的發展,在基礎設施紛紛云化的情況下,云原生場景下 OS 管理的問題也就隨之而來了。

8513e998-572b-11ed-a3b6-dac502259ad0.png

首先是 Kubernetes 并不能對集群節點的 OS 進行管理,所以云原生場景下 OS 管理的第一個問題,Kubernetes 和 OS 是分別獨立進行管理的。Kubernetes 也需要進行更新維護,然后進行用戶權限控制,這和 OS 的管理其實非常類似。所以當運維人員分別對 Kubernetes 和 OS 進行管理的時候,他往往需要進行很多冗余操作。按理來說是希望它們互相能夠感知的,但是實際上這兩套系統互相協調非常困難,甚至它們之間根本就沒有協調。所以當 OS 升級影響到了節點可用性的時候,Kubernetes 無法進行感知。如果 OS 進行升級,又希望集群中業務不中斷,運維人員首先需要鎖定節點,讓工作負載不再分配到這個節點,然后需要把這個節點上的 POD 調入到其他節點,然后才能去升級這個節點,最后再把這個節點解鎖,恢復正常的應用,這無疑增加了運維的難度和開銷。

8537db8c-572b-11ed-a3b6-dac502259ad0.png

第二個問題就是 OS 的版本管理問題。一個通用的 Linux 操作系統,一般都會內置一個軟件更新升級的包管理器,通過這個包管理器,每一個包獨立進行安裝、升級、刪除,這對于操作系統來說非常靈活。

但是在云原生場景下,往往會帶來版本分裂的問題。就像圖中所示,一開始這個集群中兩個節點的包版本都是一致的。但是隨著使用,有的包升級了,有的包沒升級,或者升級的版本不一致。時間久了集群中每一臺節點都會有不同的軟件包,不同的版本,這樣造成的版本分裂問題是很嚴重的。

如果 OS 和業務耦合比較緊密的話,OS 進行大版本的升級也會比較困難。業界比較主流的思想是通過改造 OS 來解決以上問題。因為容器把應用運行所需要依賴的環境都打包到了容器鏡像里面。它對一個操作系統所需要的功能越來越少,所以就有了輕量級的操作系統。為了容器運行而設計的這種輕量級操作系統,我們叫它為容器 OS,也就是 Container OS,也可以叫做 Container specific OS。

那么對一個容器 OS 來說,都需要它有什么呢?首先肯定是有一個 Linux kernel,然后要有容器引擎,比如 Docker,然后還需要一些安全的機制,這些就夠了。所以容器 OS 第一個特點就是極簡化,它包含的軟件包比較少,相應的攻擊面和漏洞肯定就少,容器 OS 就更安全。第二個特點是不可變,只有在部署的時候可以修改,一旦部署就是固定的。第三個是原子更新,因為它不可變,所以只能整體進行更新。最后是應用以容器的形式運行。

KubeOS:?向云原?場景的 容器操作系統

近幾年容器 OS 又有了新的發展,Kubernetes OS 除了剛才講的容器 OS 的特征以外,最顯著的特征是集成了 Kubernetes 的某些社區版本。它會把 OS 的管理交由 Kubernetes 去控制,由 Kubernetes 來控制 OS 的更新。其實業界已經有一些主流的操作系統公司推出了這樣的容器 OS,KubeOS 就是 openEuler 推出的這樣一款容器 OS。

8561b38a-572b-11ed-a3b6-dac502259ad0.png

KubeOS 的鏡像都是基于 openEuler Repo 源進行構造的。KubeOS 部署以后,用戶可以在 master 節點上只通過命令行和 yaml 文件就去管理集群所有 worker node 上面的 OS 版本。因為 KubeOS 將 OS 作為 Kubernetes 的一個組件接入到集群中, 這樣 OS 和其它的業務容器就位于同等地位,可以通過 Kubernetes 統一去管理容器和 OS,實現 OS 和業務容器的協同調度。并且我們還基于 openEuler 的版本進行了一些定制化的改造,讓 KubeOS 可以進行原子化更新升級,避免版本分裂的問題。

8584e170-572b-11ed-a3b6-dac502259ad0.png

下面對 KubeOS 進行一個詳細的介紹。KubeOS 的第一個特性是將 OS 作為組件接入到 Kubernetes 中。我們利用 Kubernetes 的 API 擴展機制為 OS 設計了一個 CRD 的 API 對象,然后把它注冊到集群中,并且依托于 Kubernetes 的 operator 擴展機制定義了一個 OS controller,去對之前注冊那個 OS 對象進行管理和監控。這樣就讓 OS 和集群中其他的內置資源處于同等地位,都可以通過 kubernetes 進行管理。用戶只需要修改 OS 的 CR,然后輸入預期的 OS 版本和狀態,其他操作都可以由 KubeOS 和 Kubernetes 完成。這樣 OS 的管理就在云端進行了。

85a26394-572b-11ed-a3b6-dac502259ad0.png

KubeOS 的第二個特性是 OS 是進行原子升級的,KubeOS 中不提供包管理器,軟件包的變化即 OS 版本的變化,也就是說每一個 OS 的版本都會對應一個確定的 OS 鏡像,或者說一組確定的 RPM 包的組合。如圖所示,軟件包的更新即為 OS 版本的更新,這樣可以讓任何時候集群中的 OS 的版本是確定的、一致的,有助于大規模應用的部署。并且我們 OS 是盡量輕量化的,只包含 Kubernetes 和容器運行所需要的組件,這樣不僅減少攻擊面,讓 OS 更加安全,也可以進行快速的更新,快速的升級。

868ebff0-572b-11ed-a3b6-dac502259ad0.png

如圖是 KubeOS 的架構設計,KubeOS 一共分成三個模塊,第一個模塊 OS operator 部署在 master 節點上的,它是全局的 OS 管理器,會監控集群中所有節點的 OS 的狀態。當用戶去更改集群中 OS 信息的時候,比如說指定了新的版本,Operator 會感知到,然后把升級任務下發到各個節點上。OSProxy 它就是部署在每一個節點上,它就是單節點的 OS 管理器,會監控當前節點的狀態,當他接到 Operator 下發的升級任務時,會去做比如說封鎖節點、遷移 Pod 這些操作,并且把需要升級的 OS 信息轉發給 OS Agent,OS Agent 是真正的 OS 升級的執行單元,它接收來自于 OS Proxy 的相關信息,完成升級和重啟操作。

86a7dc24-572b-11ed-a3b6-dac502259ad0.png

如圖是 KubeOS 的文件系統布局的設計,首先是 Root 分區,因為 KubeOS 我們采用了雙分區升級的方式,每一個分區它會存放一個 OS 的版本,所以說分成了 RootA 和 RootB,每次升級的時候會下載 OS 鏡像到另外一個分區,在下次啟動的時候將啟動目錄切換到另外一個分區,就完成了雙分區的升級,并且 KubeOS 文件系統是只讀的,這也是為了安全性的考慮,但是我們還是提供了一個 persist 分區,用它存放持久性的用戶數據,它其中有一個 Union Path,它采用 overlay 的形式,在鏡像上增加疊加層,還有一個 Writable Path,它主要使用 bind mount 形式,直接在鏡像上面增加了一個可寫層,最后是 Boot 分區,存放的是 grub2 文件。

86eb2c2c-572b-11ed-a3b6-dac502259ad0.png

最后我們再介紹一下 KubeOS 的升級流程。首先第一步,用戶通過修改 OS 的 Yaml 文件,指定要升級的 OS 信息,比如 OS 的版本、存放鏡像的地址,以及一次升級的 OS 的數量。

當集群中 OS 的狀態發生了變化以后,OS Operator 就會感知到這個變化,去查詢集群中所有節點的狀態,若發現和當前節點的狀態不一致,就會把需要升級的節點標記為升級節點,相當于把任務下發到各個節點了。

OSProxy 監控發現當前的節點被標記為升級節點了,就開始執行升級操作,從集群中獲取要升級到的 OS 的版本,它把當前節點的所有 Pod 進行驅逐,并把當前節點鎖定,把 OS 的信息發送給 OS Agent,Os Agent 接收到相關的信息以后,從一開始用戶指定的升級鏡像存放的服務器下載鏡像,然后設置啟動分區,進行重啟和升級。升級以后 OS Proxy 看當前節點的狀態發現已經升級完成了,就把當前節點重新解鎖,并且取消升級標記。

未來的工作

我們接下來要做什么?首先我們需要去不斷豐富 KubeOS 的功能,比如提供系統配置下發的功能,提供更多的安全策略。第二點是要不斷完善,比如更全面的支持,提供支持更多的架構,更多的容器引擎等等。還有就是讓 KubeOS 的使用和部署變得更加方便,比如提供一鍵式的部署。

審核編輯:郭婷


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 華為
    +關注

    關注

    218

    文章

    36003

    瀏覽量

    262090
  • 操作系統
    +關注

    關注

    37

    文章

    7401

    瀏覽量

    129288

原文標題:KubeOS : 面向云原生場景的容器操作系統

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    海格通信加入中關村智能終端操作系統產業聯盟

    近日,海格通信(股票代碼:002465)加入中關村智能終端操作系統產業聯盟。雙方將在智能終端操作系統在技術、應用場景與產業生態層面加強聯合,開啟智能終端操作系統產業協同發展的新篇章。
    的頭像 發表于 01-20 17:04 ?1328次閱讀

    中科創達推出全新一代AI原生整車操作系統滴水OS 2.0 Pre

    整車操作系統。該系統憑借“融合體驗、AI原生、更快量產”三大核心優勢,通過創新的智能座艙顯示布局與智能交互設計,重新定義智能汽車的體驗邊界。尤為值得關注的是,滴水OS 2.0 Pre 與 AIBOX深度
    的頭像 發表于 01-10 16:01 ?1456次閱讀

    從內核到生態:一次看懂HarmonyOS 6如何重寫操作系統的“基礎代碼”

    在移動操作系統競爭進入“深水區”的當下,用戶對于系統體驗的期待早已不再局限于功能的簡單疊加,而是追求一種從底層架構革新帶來的全方位飛躍。HarmonyOS 6的正式發布,正是這樣一次對操作系統
    的頭像 發表于 12-31 09:09 ?261次閱讀
    從內核到生態:一次看懂HarmonyOS 6如何重寫<b class='flag-5'>操作系統</b>的“基礎代碼”

    EV10AS180A模數轉換器支持哪些操作系統

    與這些硬件接口進行交互,從而實現對EV10AS180A的控制和數據讀取。系統集成與應用場景:在將EV10AS180A集成到具體系統中時,用戶可能會根據系統需求選擇合適的
    發表于 11-18 09:18

    單片機的操作系統

    RTX ?:ARM官方推薦,與CMSIS-RTOS標準兼容,支持時間片輪轉調度,適合汽車電子等硬實時任務。 ? ? 都江堰操作系統(djyos) ?:事件驅動型內核,適用于高并發場景。 ? 選擇時需結合硬件資源(如CPU類型、內存大小)和開發需求(實時性、網絡支持等
    發表于 11-14 06:18

    支持LoongArch的操作系統(ABI2.0)

    支持LoongArch的操作系統匯總(ABI2.0) 下載操作系統時架構選擇loongarch64 或 loong64 或 loong。 1. 桌面系統 0x1 Debian http
    發表于 09-18 14:58

    樹莓派操作系統:版本、特性及設置完整指南!

    樹莓派操作系統是什么?樹莓派操作系統是由樹莓派基金會專為樹莓派開發的官方操作系統。它基于DebianLinux發行版,并針對樹莓派的ARM架構進行了專門優化。樹莓派操作系統有多個版本,
    的頭像 發表于 07-28 18:26 ?1425次閱讀
    樹莓派<b class='flag-5'>操作系統</b>:版本、特性及設置完整指南!

    Helm實現容器化運維高效包管理與應用部署

    在當今快速演變的云原生生態系統中,容器化技術已成為運維工程師不可或缺的核心能力。
    的頭像 發表于 07-14 11:16 ?813次閱讀

    鴻道Intewell實時操作系統有哪些應用場景

    鴻道Intewell工業操作系統作為一款國產實時操作系統(RTOS),在工業領域因其高實時性、高可靠性和強定制化能力,被廣泛應用于對系統響應速度和穩定性要求苛刻的場景。以下是其典型應用
    的頭像 發表于 06-26 10:15 ?719次閱讀

    云原生環境里Nginx的故障排查思路

    本文聚焦于云原生環境下Nginx的故障排查思路。隨著云原生技術的廣泛應用,Nginx作為常用的高性能Web服務器和反向代理服務器,在容器化和編排的環境中面臨著新的故障場景和挑戰。
    的頭像 發表于 06-17 13:53 ?969次閱讀
    <b class='flag-5'>云原生</b>環境里Nginx的故障排查思路

    從 Java 到 Go:面向對象的巨人與云原生的輕騎兵

    (Goroutine/Channel) 在 云原生基礎設施領域 占據主導地位,它也是 Java 開發者探索云原生技術棧的關鍵補
    的頭像 發表于 04-25 11:13 ?644次閱讀

    KaihongOS操作系統:ArkTS語言基礎

    ArkTS語言基礎 KaihongOS是面向場景的萬物智聯技術底座,在OpenHarmony基礎上技術創新和系統能力增強的跨設備的操作系統,它支持多種設備類型。ArkTS是Kaih
    發表于 04-23 06:31

    中國汽車報:睿賽德攜“程翧整車基礎軟件OS”亮相操作系統年會

    領域專家,圍繞具身智能與系統、硬件與內核、云原生與虛擬化等領域探討最新技術趨勢和未來發展方向。其中,近年來愈發重視自主可控操作系統發展的智能汽車領域,也成為本屆會議的討
    的頭像 發表于 04-01 21:00 ?958次閱讀
    中國汽車報:睿賽德攜“程翧整車基礎軟件OS”亮相<b class='flag-5'>操作系統</b>年會

    芯盾時代全線產品完成鴻蒙操作系統深度適配

    近日華為推出首款全面搭載原生鴻蒙操作系統HarmonyOS 5的手機HUAWEI Pura X,標志著華為終端已全面進入原生鴻蒙的時代,預示著華為終端產品將為用戶帶來更加流暢、智能和安全的使用體驗。
    的頭像 發表于 03-28 09:38 ?960次閱讀

    模型原生操作系統:機遇、挑戰與展望 CCCF精選

    本文立足人工智能時代用戶、應用和系統的需求,分析“外掛式模型”演進路徑下的操作系統發展困局,提出通過“模型-系統-芯片”的全棧協同設計來構建模型原生
    的頭像 發表于 03-14 17:46 ?1158次閱讀
    模型<b class='flag-5'>原生</b><b class='flag-5'>操作系統</b>:機遇、挑戰與展望  CCCF精選