在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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 的使用和部署變得更加方便,比如提供一鍵式的部署。

審核編輯:郭婷


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

    關注

    216

    文章

    34558

    瀏覽量

    253268
  • 操作系統
    +關注

    關注

    37

    文章

    6905

    瀏覽量

    123850

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

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

收藏 人收藏

    評論

    相關推薦

    華為原生鴻蒙操作系統正式發布,徹底擺脫內核依賴

    電子發燒友網報道(文/黃山明)近日,華為正式發布了原生鴻蒙操作系統,也是國內首個移動操作系統,這讓其成為繼蘋果iOS與Android系統后,全球第三大移動
    的頭像 發表于 10-24 01:07 ?3445次閱讀

    云原生AI服務怎么樣

    云原生AI服務,是指采用云原生的原則和技術來構建、部署和管理人工智能應用及工作負載的方法和模式。那么,云原生AI服務怎么樣呢?下面,AI部落小編帶您了解。
    的頭像 發表于 01-23 10:47 ?138次閱讀

    云原生LLMOps平臺作用

    云原生LLMOps平臺是一種基于云計算基礎設施和開發工具,專門用于構建、部署和管理大型語言模型(LLM)全生命周期的平臺。以下,是對云原生LLMOps平臺作用的梳理,由AI部落小編整理。
    的頭像 發表于 01-06 10:21 ?124次閱讀

    如何選擇云原生機器學習平臺

    當今,云原生機器學習平臺因其彈性擴展、高效部署、低成本運營等優勢,逐漸成為企業構建和部署機器學習應用的首選。然而,市場上的云原生機器學習平臺種類繁多,功能各異,如何選擇云原生機器學習平臺呢?下面,AI部落小編帶您探討。
    的頭像 發表于 12-25 11:54 ?179次閱讀

    什么是云原生MLOps平臺

    云原生MLOps平臺,是指利用云計算的基礎設施和開發工具,來構建、部署和管理機器學習模型的全生命周期的平臺。以下,是對云原生MLOps平臺的介紹,由AI部落小編整理。
    的頭像 發表于 12-12 13:13 ?186次閱讀

    華為原生鴻蒙操作系統正式發布

    10月22日晚,華為舉行了一場盛大的發布會,正式推出了其原生鴻蒙操作系統HarmonyOS NEXT,也被稱為鴻蒙5.0。這一發布標志著鴻蒙系統在功能和體驗上實現了重大飛躍。
    的頭像 發表于 10-23 16:52 ?708次閱讀

    鴻蒙生態設備超10億!原生鴻蒙發布,國產操作系統實現自主可控

    10月22日晚間,原生鴻蒙之夜暨華為全場景新品發布會正式召開,華為常務董事、終端BG董事長、智能汽車解決方案BU董事長余承東宣布,搭載鴻蒙操作系統,包括Open Harmony的生態設備超過10億。我們實現了同一個
    的頭像 發表于 10-23 12:04 ?1870次閱讀
    鴻蒙生態設備超10億!<b class='flag-5'>原生</b>鴻蒙發布,國產<b class='flag-5'>操作系統</b>實現自主可控

    面向功能安全應用的汽車開源操作系統解決方案

    在SAE 2024國際汽車安全大會上,Elektrobit的Linux專家王紅燕在操作系統與芯片技術的分論壇上為大家帶來了“面向功能安全應用的汽車開源操作系統解決方案”主題演講。
    的頭像 發表于 09-27 09:21 ?564次閱讀
    <b class='flag-5'>面向</b>功能安全應用的汽車開源<b class='flag-5'>操作系統</b>解決方案

    云原生和非云原生哪個好?六大區別詳細對比

    云原生和非云原生各有優劣,具體選擇取決于應用場景云原生利用云計算的優勢,通過微服務、容器化和自動化運維等技術,提高了應用的可擴展性、更新速
    的頭像 發表于 09-13 09:53 ?483次閱讀

    開啟全新AI時代 智能嵌入式系統快速發展——“第六屆國產嵌入式操作系統技術與產業發展論壇”圓滿結束

    粵港澳大灣區國家技術創新中心操作系統業務負責人柯善風做了“國創面向工業機器人的OS解決方案和落地實踐”專題報告。柯善風介紹國創中心的發展情況,分享了面向工業場景、自主可控、中立普惠
    發表于 08-30 17:24

    京東云原生安全產品重磅發布

    “安全產品那么多,我怎么知道防住了?”“大家都說自己是云原生的,我看都是換湯不換藥”在與客戶溝通云原生安全方案的時候,經常會遇到這樣的吐槽。越來越的客戶已經開始了云原生化的技術架構改造,也意識到
    的頭像 發表于 07-26 10:36 ?559次閱讀
    京東<b class='flag-5'>云原生</b>安全產品重磅發布

    從積木式到裝配式云原生安全

    云原生安全風險 隨著云原生架構的快速發展,核心能力逐漸穩定,安全問題日趨緊急。在云原生安全領域不但有新技術帶來的新風險,傳統IT基礎設施下的安全威脅也依然存在。要想做好云原生安全,就要
    的頭像 發表于 07-26 10:35 ?367次閱讀
    從積木式到裝配式<b class='flag-5'>云原生</b>安全

    基于DPU與SmartNic的云原生SDN解決方案

    個輕量級,可移植的運行環境,逐漸成為云原生時代基礎設施的事實標準。Kubernetes通過網絡插件(CNI,Container Network Interface)實現靈活地配置和管理集群中的容器網絡,確保容器之間的有效通信和網
    的頭像 發表于 07-22 11:44 ?807次閱讀
    基于DPU與SmartNic的<b class='flag-5'>云原生</b>SDN解決方案

    中科創達全球首發面向中央計算的AI原生整車操作系統—滴水OS

    2024年4月26日,作為全球領先的智能操作系統及端側智能產品和技術提供商,中科創達在北京國際車展上全球首發面向中央計算的AI原生整車操作系統——滴水OS,旨在賦能汽車產業擁抱AI大模
    的頭像 發表于 04-28 09:58 ?998次閱讀

    云原生是大模型“降本增效”的解藥嗎?

    云原生AI正當時
    的頭像 發表于 02-20 09:31 ?449次閱讀
    主站蜘蛛池模板: 在线观看黄日本高清视频 | 国模精品视频一区二区三区 | 伊人色综合久久天天爱 | 精品无码中出一区二区 | 天天摸夜夜摸爽爽狠狠婷婷97 | 中文字幕日本一区波多野不卡 | 国产视频观看 | jdav视频在线观看 | 国产福利2021最新在线观看 | 好吊色7777sao在线视频观看 | 日本怡红 | 青草久操 | 黄免费看| 国产三级网站在线观看 | 流不尽奶水的大乳h | 手机看片精品国产福利盒子 | 天天摸日日碰天天看免费 | 欧美人与zoxxxx另类9 | 国产福利资源 | 俄罗斯欧美色黄激情 | 4438x色| 尻老逼 | 色免费看| 手机看片国产在线 | 天天看天天爽天天摸天天添 | 夜夜摸天天操 | 国产成人夜间影院在线观看 | 操爽视频 | 午夜影院免费在线观看 | 国语自产免费精品视频一区二区 | 中文字幕亚洲一区婷婷 | 91大神在线精品视频一区 | 2019天天操天天干天天透 | 六月婷婷色| 国产福利午夜自产拍视频在线 | 99精品热视频 | 性夜黄a爽爽免费视频国产 羞羞答答xxdd影院欧美 | 四虎永久免费在线 | 国产精品japanese人妖 | 老师下面好湿好紧好滑好想要 | 韩国男女无遮挡高清性视频 |